{"id":44714469,"url":"https://github.com/jeanpaul20/aethon-mission-control","last_synced_at":"2026-02-17T16:03:04.004Z","repository":{"id":338458225,"uuid":"1152107704","full_name":"JeanPaul20/aethon-mission-control","owner":"JeanPaul20","description":"AI-powered coding orchestrator for VS Code — refine prompts, multi-model proposals, training data export","archived":false,"fork":false,"pushed_at":"2026-02-15T13:21:55.000Z","size":233,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-15T17:31:20.838Z","etag":null,"topics":["ai","ai-agents","ai-assistant","code-review","copilot","machine-learning","ollama","orchestrator","prompt-engineering","training-data","typescript","vscode-extension"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JeanPaul20.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-07T11:27:53.000Z","updated_at":"2026-02-15T13:21:58.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/JeanPaul20/aethon-mission-control","commit_stats":null,"previous_names":["jeanpaul20/aethon-mission-control"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/JeanPaul20/aethon-mission-control","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeanPaul20%2Faethon-mission-control","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeanPaul20%2Faethon-mission-control/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeanPaul20%2Faethon-mission-control/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeanPaul20%2Faethon-mission-control/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JeanPaul20","download_url":"https://codeload.github.com/JeanPaul20/aethon-mission-control/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeanPaul20%2Faethon-mission-control/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29549225,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T14:33:00.708Z","status":"ssl_error","status_checked_at":"2026-02-17T14:32:58.657Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ai-agents","ai-assistant","code-review","copilot","machine-learning","ollama","orchestrator","prompt-engineering","training-data","typescript","vscode-extension"],"created_at":"2026-02-15T13:24:11.769Z","updated_at":"2026-02-17T16:03:03.997Z","avatar_url":"https://github.com/JeanPaul20.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"media/aethon-icon.png\" alt=\"Aethon\" width=\"128\" height=\"128\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eAethon Mission Control\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cem\u003eAI-powered coding orchestrator for VS Code.\u003c/em\u003e\u003cbr/\u003e\n  \u003ca href=\"https://github.com/JeanPaul20/aethon-mission-control\"\u003eGitHub\u003c/a\u003e · \u003ca href=\"https://github.com/JeanPaul20/aethon-mission-control/issues\"\u003eIssues\u003c/a\u003e · \u003ca href=\"TRAINING_PIPELINE.md\"\u003eTraining Pipeline\u003c/a\u003e · \u003ca href=\"LICENSE\"\u003eMIT License\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\nAI-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.\n\n## Features\n\n- **`@aethon`** — Chat participant in GitHub Copilot Chat\n- **Prompt Refinement** — Iteratively refine rough ideas into precise task descriptions\n- **/finalize** — Save refined tasks to `.aethon/` for tracking\n- **/propose** — Get parallel code proposals from multiple AI models (Copilot + Ollama + Infomaniak + custom providers)\n- **/evaluate** — Score and synthesize the best approach (supports Copilot, Ollama, Infomaniak, and custom providers)\n- **/export** — Export training data to Alpaca/ShareGPT/DPO (local-only by default; see [Training Pipeline](TRAINING_PIPELINE.md))\n- **Security Scanner** — Auto-scans proposals for hardcoded secrets, SQL injection, XSS, and more\n- **Domain Auto-tagging** — Training data is automatically tagged with the detected domain (auth, api, database, ui, etc.)\n- **Human Feedback Loop** — Thumbs-up/down on Copilot Chat responses is logged for DPO datasets\n- **Git Hook Integration** — Pre-commit hook auto-exports training data on every commit\n- **Task README** — Auto-generated README-task-*.md summarizes each task lifecycle\n- **Knowledge System** — Inject your coding principles into every prompt\n- **Memory Logger** — Self-learning training data (JSONL) for continuous improvement\n- **Dashboard** — Visual overview of workflow, commands, and usage stats\n\n## New in v0.12.0\n\n- **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.\n- **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.\n- **Typed DI container** — `ServiceToken\u003cT\u003e` provides compile-time type safety. `container.get(Tokens.outputChannel)` returns `OutputChannel` — no more manual `\u003cT\u003e` casts.\n- **CentralPathResolver split** — Internals extracted into 3 focused classes (`WorkspaceResolver`, `SpecialFolderResolver`, `PathStringUtils`). Public API unchanged.\n- **HTTP keep-alive** — `HttpAethonGateway` reuses TCP connections across requests for lower latency.\n- **AutoUpdate ETag + backoff** — GitHub release checks use ETag/304 to avoid rate limits. Exponential backoff on failures (30s → 30min).\n- **ESLint import/no-cycle** — Circular dependency detection at lint time.\n- **proposeHandler strategy map** — Model configuration refactored to declarative strategy pattern.\n- **State-driven webview** — Chat UI rendering centralized through a single `render()` function.\n\n\u003cdetails\u003e\n\u003csummary\u003eWhat was new in v0.11.0\u003c/summary\u003e\n\n- **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.\n- **`/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.\n- **Self-improvement prompt** — New `SELF_IMPROVEMENT_PROMPT.md` template for feeding to any AI for targeted Aethon improvement proposals.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWhat was new in v0.10.2\u003c/summary\u003e\n\n- **Infomaniak client centralized** — All Infomaniak API client construction now goes through one factory method (`InfomaniakClient.fromSettings()`), eliminating 6 scattered config-read sites.\n- **Dead code cleanup** — Removed 35 unused variables, imports, and parameters across 19 source files following strict TypeScript checking.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWhat was new in v0.10.1\u003c/summary\u003e\n\n- **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.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWhat was new in v0.10.0\u003c/summary\u003e\n\n- **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.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWhat was new in v0.9.1\u003c/summary\u003e\n\n- **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.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWhat was new in v0.9.0\u003c/summary\u003e\n\n- **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.\n- **Network scan** — Run \"Aethon: Scan for Ollama Servers\" to auto-discover Ollama instances on your local network (ports 11434, 8080, 3000, 8000, 8888).\n- **Copilot orchestrator** — The orchestrator planner/verifier can now use Copilot models. Set `aethon.orchestratorProvider` to `copilot` and it works.\n- **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.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWhat was new in v0.8.0\u003c/summary\u003e\n\n- **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.\n- **Configure Proposal Models** — New command (Settings sidebar or command palette) walks you through each active provider and saves your model choices permanently.\n- **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.\n- **Training export fix** — Proposal files are now correctly discovered by the training data exporter (suffix match instead of prefix match).\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWhat was new in v0.7.3\u003c/summary\u003e\n\n- **`/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.\n- **Release state tracking** — Active releases persist across VS Code restarts. Abort anytime with `@aethon /release abort`.\n- **Command palette** — \"Aethon: Release Manager\" added.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWhat was new in v0.7.2\u003c/summary\u003e\n\n- **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.\n- **Skip knowledge on iterations** — Refinement iterations no longer re-inject knowledge (already baked into the prompt). Saves ~7,000 tokens per iteration.\n- **Privacy-first training export** — Training data stays local by default. HuggingFace push requires explicit opt-in, uses modal warning, and always creates private repos.\n- **Knowledge numbering convention** — Standard files use `00–49`, user custom files use `50–99`. User files are never overwritten by updates.\n- **Training Pipeline documentation** — New [TRAINING_PIPELINE.md](TRAINING_PIPELINE.md) with full pipeline guide, privacy model, and local fine-tuning examples.\n- **Hardened `.gitignore`** — Protects against accidental upload of training data, secrets, personal notes, and temp files.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWhat was new in v0.7.1\u003c/summary\u003e\n\n- **Fixed \"Endpoint not found for model auto\" error** — Critical fix for users with \"Auto select AI\" enabled in Copilot Chat\n- **Smart model selection** — The extension now intelligently respects your model choice, checks settings for preferences, and prompts only when needed\n- **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\"\n- **Automated release pipeline** — GitHub Actions workflow auto-creates releases, uploads `.vsix`, and tracks issues on tag push\n- **Automated issue tracking** — `scripts/create-issue.js` enables programmatic GitHub issue creation/closing for full audit trail\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWhat was new in v0.7.0\u003c/summary\u003e\n\n- **AI Provider dropdowns** — Four dropdowns in the Settings sidebar let you pick which AI handles each role: proposal, evaluation, orchestrator planning, and orchestrator coding.\n- **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.\n- **Orchestrator planner provider** — Dedicated `aethon.orchestratorProvider` setting — no longer tied to `evaluationProvider`.\n- **Provider labels** — Each dropdown shows whether a provider is local, cloud, or Swiss cloud.\n- **Dynamic labels in output** — Orchestrator messages show exactly which AI is planning, coding, and verifying.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWhat was new in v0.6.1 / v0.6.2\u003c/summary\u003e\n\n**v0.6.2**\n- **Dashboard version display** — Version number shown next to 🎯 Aethon title in the sidebar dashboard.\n- **Auto-update proxy fix** — Replaced Node.js `https` module with `fetch()` API to avoid VS Code proxy errors.\n\n**v0.6.1**\n- **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.\n- **Configurable interval** — Set how often to check (default: every 6 hours). Disable entirely via `aethon.autoUpdate.enabled`.\n- **Manual check** — Run `Aethon: Check for Updates` from the command palette anytime.\n- **Skip version** — Dismiss a specific release and you won't be prompted again for it.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWhat was new in v0.6.0\u003c/summary\u003e\n\n1. **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.\n2. **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.\n3. **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.\n4. **AnonymizationService in propose/evaluate** — Cloud-bound messages are automatically sanitized: API keys, file paths, company names, and custom patterns are stripped before sending.\n5. **Privacy Dashboard** — `/status` shows a table with each provider's privacy level, code access policy (Full source vs Task only), and online status.\n6. **Privacy Report** — After `/propose`, a report shows exactly which providers had source code withheld and why.\n7. **Custom providers via settings** — Configure unlimited OpenAI-compatible providers in `aethon.customProviders` with per-provider privacy classification.\n8. **Provider presets** — Built-in presets for Groq, Together AI, Mistral, HuggingFace, and OpenRouter — just add your API key.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWhat was new in v0.5.0\u003c/summary\u003e\n\n1. **Security \u0026 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.\n2. **Auto-tag domain** — Training entries are auto-tagged with a domain (`auth`, `api`, `database`, `ui`, `security`, `testing`, `deployment`, `performance`, `general`).\n3. **Git hook integration** — Run command `Aethon: Install Git Hook` to add a pre-commit hook that auto-exports training data.\n4. **Human feedback loop** — Copilot Chat thumbs-up/down feedback is captured and logged to memory.jsonl for DPO training.\n5. **Local LLMs in `/propose`** — New `aethon.proposalProvider` setting: `copilot`, `ollama`, or `both` for parallel proposals.\n6. **MLflow / W\u0026B export** — `/export` now offers to push experiment metrics to MLflow Tracking or Weights \u0026 Biases dashboards.\n7. **Auto-generate task README** — After `/finalize` or `/evaluate`, a comprehensive README-task-*.md is generated.\n\n\u003c/details\u003e\n\n## Usage\n\n1. Open Copilot Chat (Ctrl+Shift+I)\n2. Type `@aethon` followed by your rough coding idea\n3. Iterate on the refinement until satisfied\n4. Use `/finalize` to save, `/propose` to get proposals, `/evaluate` to compare\n\n## Settings\n\n| Setting | Default | Description |\n|---------|---------|-------------|\n| **Storage** | | |\n| `aethon.centralFolder` | *(globalStorage)* | Override root folder for all Aethon data |\n| `aethon.knowledgeFolderPath` | | Custom path for knowledge files |\n| `aethon.memoryFolderPath` | | Custom path for memory / training data |\n| **Backend** | | |\n| `aethon.backendPort` | `3123` | Port for the local orchestrator backend |\n| `aethon.mockMode` | `false` | Use mock backend instead of live server |\n| **Privacy / Anonymization** | | |\n| `aethon.cloudEscalationMode` | `ask` | When to escalate to cloud (`always` / `ask` / `never`) |\n| `aethon.alwaysAnonymizeBeforeCloud` | `true` | Strip sensitive data before cloud calls |\n| `aethon.anonymizeFilePaths` | `true` | Mask file paths in cloud payloads |\n| `aethon.anonymizeCompanyNames` | `true` | Mask company names in cloud payloads |\n| `aethon.anonymizationPatterns` | `[]` | Extra regex patterns to mask |\n| `aethon.anonymizationMaxChars` | `8000` | Max characters sent in a single cloud payload |\n| **AI Providers** | | |\n| `aethon.evaluationProvider` | `copilot` | Provider for `/evaluate` (`copilot`, `ollama`, `infomaniak`, or `custom`) |\n| `aethon.proposalProvider` | `copilot` | Provider for `/propose` (`copilot`, `ollama`, `infomaniak`, `custom`, `both`, or `all`) |\n| `aethon.copilotProposalModels` | `[]` | Pre-selected Copilot models for `/propose` (skip picker) |\n| `aethon.ollamaProposalModels` | `[]` | Pre-selected Ollama models for `/propose` (skip picker) |\n| `aethon.infomaniakProposalModels` | `[]` | Pre-selected Infomaniak models for `/propose` (skip picker) |\n| `aethon.orchestratorProvider` | `ollama` | Provider for `/orchestrate` planner/verifier (`ollama`, `infomaniak`, `custom`, or `copilot`) |\n| `aethon.orchestratorCoderProvider` | `copilot` | Provider for orchestrator coding steps (`copilot`, `ollama`, `infomaniak`, or `custom`) |\n| `aethon.ollamaEndpoint` | `http://localhost:11434` | Primary Ollama server URL |\n| `aethon.ollamaEndpoints` | `[]` | Additional Ollama servers (`[{ url, label, apiKey }]`). Use \"Scan for Ollama Servers\" to auto-discover. |\n| `aethon.ollamaModel` | `codellama` | Default Ollama model |\n| `aethon.ollamaApiKey` | | API key for primary Ollama (empty for local) |\n| **Infomaniak AI** | | |\n| `aethon.infomaniakProductId` | | Infomaniak AI Product ID |\n| `aethon.infomaniakApiKey` | | Infomaniak API key (ai-tools scope) |\n| `aethon.infomaniakModel` | `llm` | Default Infomaniak model |\n| `aethon.infomaniakEndpoint` | `https://api.infomaniak.com` | Infomaniak API endpoint |\n| **Custom Providers** | | |\n| `aethon.customProviders` | `[]` | Array of OpenAI-compatible provider configs (see docs) |\n| **Export / Tracking** | | |\n| `aethon.hfToken` | | HuggingFace write token for dataset push |\n| `aethon.hfDatasetRepo` | | HuggingFace dataset repo (e.g. `user/aethon-data`) |\n| `aethon.mlflowTrackingUri` | | MLflow tracking server URL (e.g. `http://localhost:5000`) |\n| `aethon.wandbApiKey` | | Weights \u0026 Biases API key |\n| `aethon.wandbProject` | `aethon-training` | W\u0026B project name |\n| **Auto-Update** | | |\n| `aethon.autoUpdate.enabled` | `true` | Check GitHub for new releases automatically |\n| `aethon.autoUpdate.checkIntervalHours` | `6` | Hours between update checks (1–168) |\n| `aethon.autoUpdate.includePrerelease` | `false` | Include pre-release versions |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeanpaul20%2Faethon-mission-control","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeanpaul20%2Faethon-mission-control","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeanpaul20%2Faethon-mission-control/lists"}