chati-dev 3.1.0 → 3.2.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 CHANGED
@@ -10,7 +10,7 @@
10
10
  <a href="https://www.npmjs.com/package/chati-dev"><img src="https://img.shields.io/npm/v/chati-dev?color=blue&label=npm" alt="npm"></a>
11
11
  <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a>
12
12
  <a href="https://nodejs.org/"><img src="https://img.shields.io/badge/node-%3E%3D20.0.0-brightgreen.svg" alt="Node.js"></a>
13
- <a href="#multi-cli-support"><img src="https://img.shields.io/badge/LLM-Claude%20%7C%20Gemini%20%7C%20Codex%20%7C%20GitHub%20Copilot-blueviolet.svg" alt="Multi-LLM"></a>
13
+ <a href="#multi-cli-support"><img src="https://img.shields.io/badge/LLM-Claude%20%7C%20Gemini%20%7C%20Codex-blueviolet.svg" alt="Multi-LLM"></a>
14
14
  <a href="#internationalization"><img src="https://img.shields.io/badge/i18n-EN%20%7C%20PT%20%7C%20ES%20%7C%20FR-informational.svg" alt="i18n"></a>
15
15
  <a href="https://github.com/Chati-dev/Chati.dev/actions/workflows/ci.yml"><img src="https://github.com/Chati-dev/Chati.dev/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
16
16
  <a href=".github/CONTRIBUTING.md"><img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg" alt="Contributions Welcome"></a>
@@ -58,7 +58,6 @@ Chati.dev introduces **Agent-Driven Development**: a pipeline where each agent o
58
58
  - [Claude Code](https://docs.anthropic.com/en/docs/claude-code/overview) (recommended)
59
59
  - [Gemini CLI](https://github.com/google-gemini/gemini-cli)
60
60
  - [Codex CLI](https://github.com/openai/codex)
61
- - [GitHub Copilot CLI](https://docs.github.com/en/copilot)
62
61
 
63
62
  ### 1. Install in your project
64
63
 
@@ -74,7 +73,7 @@ The wizard guides you through 4 steps:
74
73
  |------|-------------|
75
74
  | **Language** | English, Portuguese, Spanish, or French |
76
75
  | **Project Type** | Greenfield (new) or Brownfield (existing) |
77
- | **AI Provider** | Claude, Gemini, Codex, or GitHub Copilot — auto-configures optimal models per agent |
76
+ | **AI Provider** | Claude, Gemini, or Codex — auto-configures optimal models per agent |
78
77
  | **Confirm** | Review summary and proceed |
79
78
 
80
79
  ### 2. Activate the orchestrator
@@ -121,14 +120,14 @@ npx chati-dev status --watch # Auto-refresh every 5s
121
120
  | Feature | What it means |
122
121
  |---------|--------------|
123
122
  | **13 Specialized Agents** | Each agent has a defined mission, success criteria, and handoff protocol — not one AI trying to do everything |
124
- | **Multi-CLI Architecture** | Choose your AI provider at install time: Claude, Gemini, Codex, or GitHub Copilot. Each agent gets the optimal model for that provider |
123
+ | **Multi-CLI Architecture** | Choose your AI provider at install time: Claude, Gemini, or Codex. Each agent gets the optimal model for that provider |
125
124
  | **Quality Gates** | Every phase is validated before moving forward. 3-tier verdicts: APPROVED, NEEDS_REVISION, or BLOCKED |
126
125
  | **Context Persistence** | Sessions survive restarts. Close your IDE, come back next week — the system remembers everything |
127
126
  | **Session Lock** | Once activated, you stay inside the system. No accidentally "falling out" into generic AI mode |
128
127
  | **Multi-Terminal** | Autonomous agents run in parallel in separate terminals. Detail, Architect, and UX agents work simultaneously |
129
128
  | **Memory System** | The system learns from mistakes. Gotchas are captured automatically and recalled when relevant |
130
129
  | **Execution Profiles** | Three profiles — explore (read-only), guided (default), autonomous (gate >= 90%) — with safety net and circuit breaker |
131
- | **IDE-Agnostic** | Works with Claude Code, VS Code, Cursor, Gemini CLI, GitHub Copilot, and AntiGravity |
130
+ | **IDE-Agnostic** | Works with Claude Code, VS Code, Cursor, Gemini CLI, and AntiGravity |
132
131
  | **4 Languages** | Interface supports English, Portuguese, Spanish, and French. Artifacts are always generated in English |
133
132
  | **Supply Chain Security** | Every file is cryptographically signed (Ed25519). Tampered packages are blocked on install |
134
133
 
@@ -145,7 +144,6 @@ Chati.dev is provider-agnostic. You choose your AI provider during installation,
145
144
  | **Claude** | `claude` | Opus | Sonnet / Haiku | Default |
146
145
  | **Gemini** | `gemini` | Pro | Flash | Full support |
147
146
  | **Codex** | `codex` | Codex | Codex Mini | Full support |
148
- | **GitHub Copilot** | `copilot` | Sonnet 4.5 | GPT-5 | Full support |
149
147
 
150
148
  ### How Model Assignment Works
151
149
 
@@ -160,7 +158,6 @@ When you select a provider, the system maps each agent to the best available mod
160
158
  Claude: architect → opus, brief → sonnet, greenfield-wu → haiku
161
159
  Gemini: architect → pro, brief → flash, greenfield-wu → flash
162
160
  Codex: architect → codex, brief → codex-mini
163
- GitHub Copilot: architect → claude-sonnet, brief → claude-sonnet
164
161
  ```
165
162
 
166
163
  ### CLI Invocation Syntax
@@ -172,7 +169,6 @@ Each provider uses its own CLI syntax. Chati.dev handles this transparently:
172
169
  | Claude | `claude --print --model <id>` | `claude --print --model claude-opus-4-6` |
173
170
  | Gemini | `gemini --model <id>` | `gemini --model gemini-2.5-pro` |
174
171
  | Codex | `codex exec -m <id>` | `codex exec -m gpt-5.3-codex` |
175
- | GitHub Copilot | `copilot -p --model <id>` | `copilot -p --model claude-sonnet-4.5` |
176
172
 
177
173
  Prompts are piped via stdin for all providers. You can override individual agent models in `chati.dev/config.yaml` under `agent_overrides`.
178
174
 
@@ -290,7 +286,6 @@ The system is governed by a **19-article Constitution** that enforces agent beha
290
286
  | **VS Code** | `.vscode/chati.md` → orchestrator |
291
287
  | **Cursor** | `.cursor/rules/chati.md` → orchestrator |
292
288
  | **Gemini CLI** | `.gemini/commands/chati.toml` → orchestrator |
293
- | **GitHub Copilot** | `.github/agents/chati.md` → orchestrator |
294
289
  | **AntiGravity** | Platform agent config → orchestrator |
295
290
 
296
291
  All IDEs use a thin router file that points to the same orchestrator. Your project works the same regardless of which IDE you use.
@@ -1,8 +1,8 @@
1
1
  # chati.dev Configuration
2
- version: "3.0.1"
2
+ version: "3.2.0"
3
3
  installed_at: "2026-02-07T10:00:00Z"
4
- updated_at: "2026-02-17T00:00:00Z"
5
- installer_version: "3.0.1"
4
+ updated_at: "2026-02-19T00:00:00Z"
5
+ installer_version: "3.2.0"
6
6
  project_type: greenfield
7
7
  language: en
8
8
  ides: [claude-code]
@@ -18,8 +18,6 @@ providers:
18
18
  codex:
19
19
  enabled: false
20
20
  model_default: codex
21
- copilot:
22
- enabled: false
23
21
 
24
22
  # Per-agent provider/model overrides (optional — inherits from AGENT_MODELS default)
25
23
  # agent_overrides:
@@ -282,7 +282,7 @@ The pipeline operates in three execution modes that control agent permissions. M
282
282
 
283
283
  6. Autonomous spawn capability varies by IDE:
284
284
  - Full autonomy: Claude Code, AntiGravity, Gemini CLI
285
- - Continuation file: Cursor, VS Code, GitHub Copilot (user loads with /chati resume)
285
+ - Continuation file: Cursor, VS Code (user loads with /chati resume)
286
286
 
287
287
  **Enforcement: BLOCK** — Bracket violations (injecting L3/L4 in CRITICAL) degrade agent quality.
288
288
 
@@ -368,11 +368,10 @@ The orchestrator SHALL select the optimal AI model for each agent to balance qua
368
368
 
369
369
  8. Model selections are logged in session.yaml under `model_selections[]` for cost tracking and optimization.
370
370
 
371
- 9. Four provider categories are recognized for multi-CLI execution:
371
+ 9. Three provider categories are recognized for multi-CLI execution:
372
372
  - **claude**: Primary provider. Deep reasoning, complex analysis, code generation. Full hook support, MCP support.
373
373
  - **gemini**: Large-context provider. Codebase analysis, discovery, document review. 1M token context window. Full hook support, MCP support.
374
374
  - **codex**: Rapid-coding provider. Fast code generation, sandbox execution. No hook support, MCP support.
375
- - **copilot**: Multi-model provider. Reads CLAUDE.md, GEMINI.md, and AGENTS.md natively. Full hook support, MCP support.
376
375
 
377
376
  10. Claude is the default and primary provider. Multi-CLI is opt-in via `config.yaml` `providers` section. When only `claude` is enabled, the system behaves identically to v2.x.
378
377
 
@@ -44,7 +44,7 @@ Extracted from `chati.dev/constitution.md` (19 Articles). Read the full constitu
44
44
  - Circuit breaker: CLOSED -> OPEN (3 failures) -> HALF_OPEN (probe)
45
45
 
46
46
  ## Multi-CLI Governance (Article XIX)
47
- - 4 providers: Claude, Gemini, Codex, GitHub Copilot
47
+ - 3 providers: Claude, Gemini, Codex
48
48
  - Provider selected at install time, auto-configures optimal models per agent
49
49
  - Resolution chain: agent_overrides > agent default > primary provider
50
50
  - Context files auto-generated for non-Claude providers (GEMINI.md, AGENTS.md)
@@ -19,7 +19,6 @@ installer:
19
19
  llm_provider_claude: "Claude (Anthropic) — Best for structured reasoning"
20
20
  llm_provider_gemini: "Gemini (Google) — 1M token context window"
21
21
  llm_provider_codex: "Codex (OpenAI) — Optimized for code generation"
22
- llm_provider_copilot: "Copilot (GitHub) — Multi-model, GitHub integrated"
23
22
  llm_provider_not_installed: "(CLI not detected)"
24
23
  llm_provider_label: "AI Provider"
25
24
  will_install: "Will install:"
@@ -19,7 +19,6 @@ installer:
19
19
  llm_provider_claude: "Claude (Anthropic) — Mejor para razonamiento estructurado"
20
20
  llm_provider_gemini: "Gemini (Google) — Ventana de contexto de 1M tokens"
21
21
  llm_provider_codex: "Codex (OpenAI) — Optimizado para generacion de codigo"
22
- llm_provider_copilot: "Copilot (GitHub) — Multi-modelo, integrado con GitHub"
23
22
  llm_provider_not_installed: "(CLI no detectada)"
24
23
  llm_provider_label: "Proveedor de IA"
25
24
  will_install: "Se instalara:"
@@ -19,7 +19,6 @@ installer:
19
19
  llm_provider_claude: "Claude (Anthropic) — Ideal pour le raisonnement structure"
20
20
  llm_provider_gemini: "Gemini (Google) — Fenetre de contexte de 1M tokens"
21
21
  llm_provider_codex: "Codex (OpenAI) — Optimise pour la generation de code"
22
- llm_provider_copilot: "Copilot (GitHub) — Multi-modele, integre a GitHub"
23
22
  llm_provider_not_installed: "(CLI non detecte)"
24
23
  llm_provider_label: "Fournisseur IA"
25
24
  will_install: "Sera installe:"
@@ -19,7 +19,6 @@ installer:
19
19
  llm_provider_claude: "Claude (Anthropic) — Melhor para raciocinio estruturado"
20
20
  llm_provider_gemini: "Gemini (Google) — Janela de contexto de 1M tokens"
21
21
  llm_provider_codex: "Codex (OpenAI) — Otimizado para geracao de codigo"
22
- llm_provider_copilot: "Copilot (GitHub) — Multi-modelo, integrado ao GitHub"
23
22
  llm_provider_not_installed: "(CLI nao detectada)"
24
23
  llm_provider_label: "Provedor de IA"
25
24
  will_install: "Sera instalado:"
@@ -138,7 +138,7 @@ If Smart Continuation is insufficient, the orchestrator spawns a new session:
138
138
  |-----|---------|---------|
139
139
  | Claude Code | Automatic via PreCompact hook | Task tool subagent or CLI spawn |
140
140
  | AntiGravity | Automatic via platform hooks | New agent session via platform API |
141
- | Cursor / VS Code / GitHub Copilot | Automatic via context detection | Continuation file for manual resume |
141
+ | Cursor / VS Code | Automatic via context detection | Continuation file for manual resume |
142
142
  | Gemini CLI | Automatic via context detection | CLI spawn |
143
143
 
144
144
  ---
@@ -168,7 +168,7 @@ If Smart Continuation is insufficient, the orchestrator spawns a new session:
168
168
 
169
169
  When agents execute on different CLI providers, context injection adapts to the provider's capabilities:
170
170
 
171
- ### Hook-Based Providers (Claude Code, Gemini CLI, GitHub Copilot CLI)
171
+ ### Hook-Based Providers (Claude Code, Gemini CLI)
172
172
  - PRISM context injected via `UserPromptSubmit` hook
173
173
  - Mode governance enforced via `PreToolUse` hook
174
174
  - Constitution guard enforced via `PreToolUse` hook
@@ -186,7 +186,6 @@ When agents execute on different CLI providers, context injection adapts to the
186
186
  | Claude Code | CLAUDE.md | Native (already exists) |
187
187
  | Gemini CLI | GEMINI.md | Auto-generated from CLAUDE.md |
188
188
  | Codex CLI | AGENTS.md | Auto-generated from CLAUDE.md |
189
- | GitHub Copilot CLI | All three | Reads CLAUDE.md, GEMINI.md, AGENTS.md natively |
190
189
 
191
190
  ### Cross-Provider Handoff
192
191
  Handoff format is identical regardless of which provider executed the agent. The two-layer structure (Article VIII) ensures any provider can read any handoff. Session state in `.chati/session.yaml` is the single source of truth — all providers read from and write to the same session file.
@@ -62,12 +62,6 @@
62
62
  "enabled": { "type": "boolean", "default": false },
63
63
  "model_default": { "type": "string", "default": "codex" }
64
64
  }
65
- },
66
- "copilot": {
67
- "type": "object",
68
- "properties": {
69
- "enabled": { "type": "boolean", "default": false }
70
- }
71
65
  }
72
66
  }
73
67
  },
@@ -57,7 +57,7 @@
57
57
  "ides": {
58
58
  "type": "array",
59
59
  "items": {
60
- "enum": ["claude-code", "vscode", "antigravity", "cursor", "gemini-cli", "github-copilot"]
60
+ "enum": ["claude-code", "vscode", "antigravity", "cursor", "gemini-cli", "codex-cli"]
61
61
  },
62
62
  "description": "Configured IDEs"
63
63
  },
@@ -169,7 +169,7 @@
169
169
  "recommended": { "enum": ["opus", "sonnet", "haiku"], "description": "Recommended model" },
170
170
  "actual": { "enum": ["opus", "sonnet", "haiku"], "description": "Model actually used" },
171
171
  "reason": { "type": "string", "description": "Why this model was selected (default, upgrade condition, no downgrade)" },
172
- "provider": { "type": "string", "description": "CLI provider used (claude, gemini, codex, copilot)" },
172
+ "provider": { "type": "string", "description": "CLI provider used (claude, gemini, codex)" },
173
173
  "timestamp": { "type": "string", "format": "date-time" }
174
174
  }
175
175
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chati-dev",
3
- "version": "3.1.0",
3
+ "version": "3.2.0",
4
4
  "description": "AI-Powered Multi-Agent Orchestration System — Structured vibe coding for Full Stack Development",
5
5
  "type": "module",
6
6
  "bin": {
@@ -40,7 +40,6 @@
40
40
  "claude",
41
41
  "gemini",
42
42
  "codex",
43
- "copilot",
44
43
  "multi-llm",
45
44
  "orchestration",
46
45
  "fullstack"
@@ -54,12 +54,6 @@ export const IDE_CONFIGS = {
54
54
  format: 'toml',
55
55
  description: 'Gemini CLI',
56
56
  },
57
- 'github-copilot': {
58
- agentsDir: '.github/agents/',
59
- extension: '.md',
60
- format: 'markdown',
61
- description: 'GitHub Copilot',
62
- },
63
57
  };
64
58
 
65
59
  // ---------------------------------------------------------------------------
@@ -8,7 +8,6 @@
8
8
  * Provider conventions (verified Feb 2026):
9
9
  * - Gemini CLI: auto-loads GEMINI.md, uses .gemini/commands/*.toml, no rules/
10
10
  * - Codex CLI: auto-loads AGENTS.md, uses .agents/skills/chati/SKILL.md for $chati
11
- * - Copilot CLI: auto-loads AGENTS.md + CLAUDE.md + GEMINI.md natively (no COPILOT.md needed)
12
11
  */
13
12
 
14
13
  import { existsSync, readFileSync, writeFileSync } from 'fs';
@@ -139,8 +138,6 @@ export function generateAgentsMd(content) {
139
138
  * CLAUDE.md from the project root, and writes the appropriate context
140
139
  * files (GEMINI.md, AGENTS.md) when their providers are active.
141
140
  *
142
- * Copilot CLI does not need its own context file — it natively reads
143
- * AGENTS.md, CLAUDE.md, and GEMINI.md.
144
141
  *
145
142
  * @param {string} projectDir - Project root directory
146
143
  * @param {string} [baseContent] - Optional base content (used when CLAUDE.md doesn't exist on disk)
@@ -164,7 +161,6 @@ export function generateContextFiles(projectDir, baseContent = null) {
164
161
  const enabledProviders = resolveEnabledProviders(projectDir);
165
162
 
166
163
  // Provider-to-generator mapping
167
- // Note: Copilot is intentionally excluded — it reads AGENTS.md + CLAUDE.md + GEMINI.md natively
168
164
  const generators = {
169
165
  gemini: {
170
166
  filename: 'GEMINI.md',
@@ -57,11 +57,6 @@ const PROVIDER_META = {
57
57
  contextFile: 'AGENTS.md',
58
58
  localFile: '.chati/session.yaml',
59
59
  },
60
- copilot: {
61
- cliName: 'GitHub Copilot CLI',
62
- contextFile: 'AGENTS.md',
63
- localFile: '.chati/session.yaml',
64
- },
65
60
  };
66
61
 
67
62
  // ---------------------------------------------------------------------------
@@ -136,9 +131,10 @@ function buildReplacementConfig(provider) {
136
131
  { pattern: /(\|\s*)haiku(\s*\|)/g, replacement: `$1${minimal}$2` },
137
132
 
138
133
  // Upgrade/downgrade conditions in prose: "sonnet if ...", "opus if ..."
139
- { pattern: /opus if /g, replacement: `${deep} if ` },
140
- { pattern: /sonnet if /g, replacement: `${light} if ` },
141
- { pattern: /haiku if /g, replacement: `${minimal} if ` },
134
+ // Negative lookbehind prevents double-prefix when deep model contains a tier name (e.g. claude-sonnet)
135
+ { pattern: /(?<!-)opus if /g, replacement: `${deep} if ` },
136
+ { pattern: /(?<!-)sonnet if /g, replacement: `${light} if ` },
137
+ { pattern: /(?<!-)haiku if /g, replacement: `${minimal} if ` },
142
138
 
143
139
  // Constitution/governance model tier definitions
144
140
  { pattern: /\*\*opus\*\*:/g, replacement: `**${deep}**:` },
@@ -186,7 +182,7 @@ function buildReplacementConfig(provider) {
186
182
  *
187
183
  * @param {string} content - Original file content (Claude Code version)
188
184
  * @param {string} filePath - Relative path within chati.dev/ (e.g. 'orchestrator/chati.md')
189
- * @param {string} provider - Target provider: 'gemini', 'codex', 'copilot'
185
+ * @param {string} provider - Target provider: 'gemini', 'codex'
190
186
  * @returns {string} Adapted content for the target provider
191
187
  */
192
188
  export function adaptFrameworkFile(content, filePath, provider) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * IDE Configuration Mapping (6 IDEs)
2
+ * IDE Configuration Mapping (5 IDEs)
3
3
  * Defines where chati.dev agents are deployed per IDE
4
4
  */
5
5
  export const IDE_CONFIGS = {
@@ -57,15 +57,6 @@ export const IDE_CONFIGS = {
57
57
  mcpConfigFile: '.gemini/settings.json',
58
58
  formatNotes: 'TOML command format',
59
59
  },
60
- 'github-copilot': {
61
- name: 'GitHub Copilot',
62
- description: 'GitHub AI pair programmer',
63
- recommended: false,
64
- configPath: '.github/agents/',
65
- rulesFile: '.github/copilot-instructions.md',
66
- mcpConfigFile: null,
67
- formatNotes: 'GitHub Copilot agent format',
68
- },
69
60
  };
70
61
 
71
62
  /**
@@ -3,7 +3,7 @@ import { join, dirname } from 'path';
3
3
  import { fileURLToPath } from 'url';
4
4
  import { IDE_CONFIGS } from '../config/ide-configs.js';
5
5
  import { generateClaudeMCPConfig } from '../config/mcp-configs.js';
6
- import { generateSessionYaml, generateConfigYaml, generateClaudeMd, generateClaudeLocalMd, generateCodexSkill, generateGeminiRouter, generateCopilotAgent } from './templates.js';
6
+ import { generateSessionYaml, generateConfigYaml, generateClaudeMd, generateClaudeLocalMd, generateCodexSkill, generateGeminiRouter } from './templates.js';
7
7
  import { generateContextFiles } from '../config/context-file-generator.js';
8
8
  import { adaptFrameworkFile, ADAPTABLE_FILES } from '../config/framework-adapter.js';
9
9
  import { verifyManifest } from './manifest.js';
@@ -317,13 +317,6 @@ Pass through all context: session state, handoffs, artifacts, and user input.
317
317
  } else if (ideKey === 'gemini-cli') {
318
318
  // Gemini CLI: TOML command file (native format for /chati command)
319
319
  writeFileSync(join(targetDir, '.gemini', 'commands', 'chati.toml'), generateGeminiRouter(), 'utf-8');
320
- } else if (ideKey === 'github-copilot') {
321
- // GitHub Copilot: agent file (.github/agents/chati.md) for @chati invocation
322
- writeFileSync(join(targetDir, '.github', 'agents', 'chati.md'), generateCopilotAgent(), 'utf-8');
323
-
324
- // Copilot instructions file (auto-loaded by Copilot CLI)
325
- createDir(dirname(join(targetDir, config.rulesFile)));
326
- writeFileSync(join(targetDir, config.rulesFile), generateProviderInstructions(config.name), 'utf-8');
327
320
  } else {
328
321
  // VS Code, Cursor, AntiGravity — generic rules file
329
322
  if (config.rulesFile) {
@@ -335,7 +328,7 @@ Pass through all context: session state, handoffs, artifacts, and user input.
335
328
 
336
329
  /**
337
330
  * Generate provider-agnostic instructions file content.
338
- * Used for non-Claude IDEs (.github/copilot-instructions.md, .vscode/chati/rules.md, etc.)
331
+ * Used for non-Claude IDEs (.vscode/chati/rules.md, .cursorrules, etc.)
339
332
  */
340
333
  function generateProviderInstructions(providerName) {
341
334
  return `# Chati.dev System Rules
@@ -80,15 +80,6 @@ export const PROVIDER_MODEL_MAPS = {
80
80
  dev: 'codex', 'qa-implementation': 'codex', devops: 'mini',
81
81
  },
82
82
  },
83
- copilot: {
84
- deep: 'claude-sonnet', light: 'claude-sonnet', minimal: 'gpt-5',
85
- agents: {
86
- orchestrator: 'claude-sonnet', 'greenfield-wu': 'gpt-5', 'brownfield-wu': 'claude-sonnet',
87
- brief: 'claude-sonnet', detail: 'claude-sonnet', architect: 'claude-sonnet', ux: 'claude-sonnet',
88
- phases: 'claude-sonnet', tasks: 'claude-sonnet', 'qa-planning': 'claude-sonnet',
89
- dev: 'claude-sonnet', 'qa-implementation': 'claude-sonnet', devops: 'claude-sonnet',
90
- },
91
- },
92
83
  };
93
84
 
94
85
  /**
@@ -110,7 +101,6 @@ export function generateConfigYaml(config) {
110
101
  claude: { enabled: true, primary: provider === 'claude' },
111
102
  gemini: { enabled: provider === 'gemini' || selectedIDEs.includes('gemini-cli'), model_default: 'pro', primary: provider === 'gemini' },
112
103
  codex: { enabled: provider === 'codex' || selectedIDEs.includes('codex-cli'), model_default: 'codex', primary: provider === 'codex' },
113
- copilot: { enabled: provider === 'copilot' || selectedIDEs.includes('github-copilot'), primary: provider === 'copilot' },
114
104
  },
115
105
  };
116
106
 
@@ -230,47 +220,6 @@ User input: {{args}}
230
220
  `;
231
221
  }
232
222
 
233
- /**
234
- * Generate GitHub Copilot agent file (.github/agents/chati.md)
235
- *
236
- * Copilot CLI uses .github/agents/*.md for custom agents.
237
- * The user invokes with @chati in the Copilot CLI.
238
- */
239
- export function generateCopilotAgent() {
240
- return `# Chati.dev Orchestrator
241
-
242
- You are the Chati.dev orchestrator agent for GitHub Copilot CLI.
243
-
244
- ## CRITICAL — Language Override
245
-
246
- Read \`.chati/session.yaml\` field \`language\` BEFORE anything else.
247
- ALL responses MUST be in this language. This overrides any global setting.
248
-
249
- | Value | Language |
250
- |-------|----------|
251
- | \`en\` | English |
252
- | \`pt\` | Portugues |
253
- | \`es\` | Espanol |
254
- | \`fr\` | Francais |
255
-
256
- If session.yaml does not exist or has no language field, default to English.
257
-
258
- ## Load
259
-
260
- The orchestrator and all agent files are **pre-configured for GitHub Copilot CLI**.
261
- No translation needed — follow all instructions as written.
262
-
263
- Read and execute the full orchestrator at \`chati.dev/orchestrator/chati.md\`.
264
-
265
- **NEVER create or reference CLAUDE.md, CLAUDE.local.md, or .claude/ directories.**
266
-
267
- **Context to pass:**
268
- - \`.chati/session.yaml\` (session state — includes language)
269
- - \`chati.dev/artifacts/handoffs/\` (latest handoff)
270
- - \`chati.dev/config.yaml\` (version info)
271
- `;
272
- }
273
-
274
223
  /**
275
224
  * Generate CLAUDE.local.md content (runtime state — auto-gitignored, never committed)
276
225
  */
@@ -5,4 +5,3 @@
5
5
  export * as claude from './claude-adapter.js';
6
6
  export * as gemini from './gemini-adapter.js';
7
7
  export * as codex from './codex-adapter.js';
8
- export * as copilot from './copilot-adapter.js';
@@ -75,21 +75,6 @@ const PROVIDERS = {
75
75
  },
76
76
  adapter: adapters.codex,
77
77
  },
78
- copilot: {
79
- name: 'copilot',
80
- command: 'copilot',
81
- baseArgs: ['-p'],
82
- modelFlag: '--model',
83
- stdinSupport: true,
84
- hooksSupport: false,
85
- mcpSupport: true,
86
- contextFile: null,
87
- modelMap: {
88
- 'claude-sonnet': 'claude-sonnet-4.5',
89
- 'gpt-5': 'gpt-5',
90
- },
91
- adapter: adapters.copilot,
92
- },
93
78
  };
94
79
 
95
80
  // ---------------------------------------------------------------------------
@@ -99,7 +84,7 @@ const PROVIDERS = {
99
84
  /**
100
85
  * Get a provider configuration by name.
101
86
  *
102
- * @param {string} name - Provider name (claude, gemini, codex, copilot)
87
+ * @param {string} name - Provider name (claude, gemini, codex)
103
88
  * @returns {ProviderConfig}
104
89
  * @throws {Error} When provider is not found
105
90
  */
@@ -86,7 +86,7 @@ export function cleanParentEnv(env) {
86
86
  * @property {string} agent - Agent name (e.g. "architect")
87
87
  * @property {string} taskId - Task identifier
88
88
  * @property {string} [model] - LLM model tier name (e.g. opus, pro, codex, claude-sonnet)
89
- * @property {string} [provider] - CLI provider name (claude, gemini, codex, copilot)
89
+ * @property {string} [provider] - CLI provider name (claude, gemini, codex)
90
90
  * @property {string} [prompt] - Full prompt string (from prompt-builder, piped via stdin)
91
91
  * @property {object} [contextPayload] - Context to inject via env var
92
92
  * @property {string[]} [writeScope] - Override write scope
@@ -22,7 +22,7 @@ export function parseProviderConfig(projectDir) {
22
22
  }
23
23
 
24
24
  const raw = readFileSync(configPath, 'utf-8');
25
- const providers = ['claude', 'gemini', 'codex', 'copilot'];
25
+ const providers = ['claude', 'gemini', 'codex'];
26
26
  const enabled = [];
27
27
  let primary = 'claude';
28
28
 
@@ -24,7 +24,6 @@ const FALLBACK_EN = {
24
24
  llm_provider_claude: 'Claude (Anthropic) — Best for structured reasoning',
25
25
  llm_provider_gemini: 'Gemini (Google) — 1M token context window',
26
26
  llm_provider_codex: 'Codex (OpenAI) — Optimized for code generation',
27
- llm_provider_copilot: 'Copilot (GitHub) — Multi-model, GitHub integrated',
28
27
  llm_provider_not_installed: '(CLI not detected)',
29
28
  llm_provider_label: 'AI Provider',
30
29
  will_install: 'Will install:',
@@ -19,7 +19,6 @@ const PROVIDER_TO_IDE = {
19
19
  claude: ['claude-code'],
20
20
  gemini: ['gemini-cli'],
21
21
  codex: ['codex-cli'],
22
- copilot: ['github-copilot'],
23
22
  };
24
23
 
25
24
  const __dirname = dirname(fileURLToPath(import.meta.url));
@@ -89,7 +88,6 @@ export async function runWizard(targetDir, options = {}) {
89
88
  'claude-code': 'Created .claude/commands/ (thin router)',
90
89
  'gemini-cli': 'Created .gemini/commands/ (TOML command)',
91
90
  'codex-cli': 'Created .agents/skills/chati/ (Codex skill)',
92
- 'github-copilot': 'Created .github/agents/ (Copilot agent)',
93
91
  };
94
92
  const commandStep = commandStepMap[primaryIDE] || t('installer.created_commands');
95
93
  showStep(commandStep);
@@ -132,7 +130,6 @@ export async function runWizard(targetDir, options = {}) {
132
130
 
133
131
  // Show quick start — same experience across all providers
134
132
  const invokeCmdMap = {
135
- 'github-copilot': '@chati',
136
133
  'codex-cli': '$chati',
137
134
  };
138
135
  const invokeCmd = invokeCmdMap[primaryIDE] || '/chati';
@@ -67,7 +67,6 @@ export async function stepLlmProvider() {
67
67
  { name: 'claude', label: t('installer.llm_provider_claude') },
68
68
  { name: 'gemini', label: t('installer.llm_provider_gemini') },
69
69
  { name: 'codex', label: t('installer.llm_provider_codex') },
70
- { name: 'copilot', label: t('installer.llm_provider_copilot') },
71
70
  ];
72
71
 
73
72
  // Check availability of each provider
@@ -110,7 +109,7 @@ export async function stepConfirmation(config) {
110
109
  const { projectName, projectType, language, llmProvider, selectedMCPs, selectedIDEs } = config;
111
110
 
112
111
  const langName = SUPPORTED_LANGUAGES.find(l => l.value === language)?.label || language;
113
- const providerNames = { claude: 'Claude (Anthropic)', gemini: 'Gemini (Google)', codex: 'Codex (OpenAI)', copilot: 'Copilot (GitHub)' };
112
+ const providerNames = { claude: 'Claude (Anthropic)', gemini: 'Gemini (Google)', codex: 'Codex (OpenAI)' };
114
113
  const providerDisplay = providerNames[llmProvider] || llmProvider;
115
114
  const ideNames = (selectedIDEs || ['claude-code'])
116
115
  .map(id => IDE_CONFIGS[id]?.name || id)
@@ -1,28 +0,0 @@
1
- /**
2
- * @fileoverview GitHub Copilot CLI adapter.
3
- *
4
- * Translates chati.dev spawning config into Copilot CLI
5
- * command, arguments, and environment variables.
6
- */
7
-
8
- /**
9
- * Build Copilot CLI command and arguments.
10
- *
11
- * @param {import('../spawner.js').SpawnConfig} config
12
- * @param {import('../cli-registry.js').ProviderConfig} provider
13
- * @returns {{ command: string, args: string[], stdinPrompt: string|null }}
14
- */
15
- export function buildCommand(config, provider) {
16
- const args = [...provider.baseArgs];
17
-
18
- if (config.model) {
19
- const resolvedModel = provider.modelMap[config.model] || config.model;
20
- args.push(provider.modelFlag, resolvedModel);
21
- }
22
-
23
- return {
24
- command: provider.command,
25
- args,
26
- stdinPrompt: config.prompt || null,
27
- };
28
- }