@emaxe/agento 0.1.1 → 0.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.
Files changed (46) hide show
  1. package/AGENTS.md +340 -0
  2. package/CHANGELOG.md +102 -0
  3. package/README.md +231 -31
  4. package/README.ru.md +427 -0
  5. package/dist/src/adapters/base.d.ts +3 -1
  6. package/dist/src/adapters/base.d.ts.map +1 -1
  7. package/dist/src/adapters/claude-code.d.ts +1 -0
  8. package/dist/src/adapters/claude-code.d.ts.map +1 -1
  9. package/dist/src/adapters/claude-code.js +5 -2
  10. package/dist/src/adapters/claude-code.js.map +1 -1
  11. package/dist/src/adapters/codex.d.ts +1 -0
  12. package/dist/src/adapters/codex.d.ts.map +1 -1
  13. package/dist/src/adapters/codex.js +3 -1
  14. package/dist/src/adapters/codex.js.map +1 -1
  15. package/dist/src/adapters/opencode.d.ts +1 -0
  16. package/dist/src/adapters/opencode.d.ts.map +1 -1
  17. package/dist/src/adapters/opencode.js +30 -1
  18. package/dist/src/adapters/opencode.js.map +1 -1
  19. package/dist/src/adapters/qwen.d.ts +1 -0
  20. package/dist/src/adapters/qwen.d.ts.map +1 -1
  21. package/dist/src/adapters/qwen.js +9 -4
  22. package/dist/src/adapters/qwen.js.map +1 -1
  23. package/dist/src/cli/commands/launch.d.ts.map +1 -1
  24. package/dist/src/cli/commands/launch.js +13 -0
  25. package/dist/src/cli/commands/launch.js.map +1 -1
  26. package/dist/src/cli/commands/provider.d.ts.map +1 -1
  27. package/dist/src/cli/commands/provider.js +7 -3
  28. package/dist/src/cli/commands/provider.js.map +1 -1
  29. package/dist/src/config/schema.d.ts +176 -29
  30. package/dist/src/config/schema.d.ts.map +1 -1
  31. package/dist/src/config/schema.js +17 -2
  32. package/dist/src/config/schema.js.map +1 -1
  33. package/dist/src/config/store.d.ts.map +1 -1
  34. package/dist/src/config/store.js +25 -1
  35. package/dist/src/config/store.js.map +1 -1
  36. package/dist/src/tui/screens/LaunchAgent.d.ts.map +1 -1
  37. package/dist/src/tui/screens/LaunchAgent.js +21 -4
  38. package/dist/src/tui/screens/LaunchAgent.js.map +1 -1
  39. package/dist/src/tui/screens/MainMenu.js +1 -1
  40. package/dist/src/tui/screens/Profiles.d.ts.map +1 -1
  41. package/dist/src/tui/screens/Profiles.js +5 -4
  42. package/dist/src/tui/screens/Profiles.js.map +1 -1
  43. package/dist/src/tui/screens/Providers.d.ts.map +1 -1
  44. package/dist/src/tui/screens/Providers.js +40 -20
  45. package/dist/src/tui/screens/Providers.js.map +1 -1
  46. package/package.json +4 -2
package/README.ru.md ADDED
@@ -0,0 +1,427 @@
1
+ # AgentO — Менеджер конфигураций AI-агентов
2
+
3
+ [![npm version](https://badge.fury.io/js/@emaxe%2fagento.svg)](https://www.npmjs.com/package/@emaxe/agento)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+
6
+ > Управляйте конфигурациями AI-агентов с помощью профилей и провайдеров. Переключайтесь между моделями, провайдерами и агентами без лишних усилий.
7
+
8
+ AgentO — это CLI-инструмент для централизованного управления конфигурациями популярных AI-агентов для программирования. Задайте API-провайдеры один раз, создайте профили с разными комбинациями моделей и переключайтесь между ними одной командой.
9
+
10
+ **English version:** [README.md](README.md)
11
+
12
+ ## Поддерживаемые агенты
13
+
14
+ | Агент | Команда | Формат конфига | Поддерживаемые провайдеры | Особенности |
15
+ |-------|---------|----------------|---|-------------|
16
+ | [Claude Code](https://github.com/anthropics/claude-code) | `claude` | JSON | `anthropic`, `fireworks` | Поддержка уровней (small/base/smart) |
17
+ | [OpenCode](https://github.com/opencode-ai/opencode) | `opencode` | JSON | `anthropic`, `openai-compatible`, `fireworks` | Полная поддержка function calling через Vercel AI SDK; пробрасывает модальности |
18
+ | [Qwen CLI](https://github.com/QwenLM/qwen) | `qwen` | JSON | `openai-compatible`, `fireworks` | Структура OpenAI-совместимого API; пробрасывает модальности |
19
+ | [Codex CLI](https://github.com/openai/codex) | `codex` | TOML | Все типы | Инжект переменных окружения. Скрыт по умолчанию (флаг `--dev`). |
20
+
21
+ ## Поддерживаемые типы провайдеров
22
+
23
+ | Тип провайдера | Совместимые агенты | Примеры |
24
+ |---|---|---|
25
+ | `anthropic` | claude-code | Anthropic |
26
+ | `openai-compatible` | opencode, qwen | OpenAI, Together.ai, Cerebras, Perplexity, DeepSeek и т. д. |
27
+ | `fireworks` | claude-code, opencode, qwen, codex | Fireworks AI (поддерживает все 3 типа API) |
28
+
29
+ **Примечание:** `claude-code` работает только с типами `anthropic` и `fireworks` (требование Anthropic SDK). Для других OpenAI-совместимых провайдеров используйте `opencode` или `qwen`.
30
+
31
+ ## Флаги возможностей моделей
32
+
33
+ Каждая модель внутри провайдера хранит три флага возможностей:
34
+
35
+ - **`image`** — модель принимает изображения на вход
36
+ - **`video`** — модель принимает видео на вход
37
+ - **`audio`** — модель принимает аудио на вход
38
+
39
+ Значения по умолчанию при добавлении: `image=true`, `video=false`, `audio=false`.
40
+
41
+ **Формат маркера:** в TUI и `agento provider list` возможности отображаются как `[iva]` (всё включено), `[i--]` (только image), `[---]` (только текст) и т. п. Маркер информационный — он **никогда** не записывается в конфиг агента.
42
+
43
+ **Зачем это нужно:**
44
+ - **Qwen** получает `generationConfig.modalities` из этих флагов (раньше всё было захардкожено в `false` — изображения не работали).
45
+ - **OpenCode** генерирует на каждую модель `modalities: { input: ["text", "image", ...], output: ["text"] }`, чтобы агент знал, что модель принимает.
46
+ - **Claude Code** и **Codex** пока эти флаги игнорируют (Anthropic SDK и Codex `responses` API не имеют поля для модальностей).
47
+
48
+ **Переключение возможностей:** TUI → Провайдеры → Edit, наведите курсор на модель и нажимайте `i` / `v` / `a`, чтобы переключать флаги. Новые модели добавляются строкой `[+ add model]` (Enter). CLI `provider add -M ...` создаёт модели с дефолтными значениями.
49
+
50
+ > Конфиги, созданные старыми версиями (с `string[]` моделями), мигрируются автоматически при чтении с дефолтными значениями возможностей.
51
+
52
+ ## Установка
53
+
54
+ ### Глобальная установка (рекомендуется)
55
+
56
+ ```bash
57
+ npm install -g @emaxe/agento
58
+ ```
59
+
60
+ ### Локальная установка
61
+
62
+ ```bash
63
+ npm install --save-dev @emaxe/agento
64
+ npx @emaxe/agento
65
+ ```
66
+
67
+ ### Требования
68
+
69
+ - Node.js ≥ 18
70
+ - Один или несколько установленных CLI-инструментов поддерживаемых агентов
71
+
72
+ ## Быстрый старт
73
+
74
+ ### 1. Добавьте API-провайдер
75
+
76
+ ```bash
77
+ # OpenAI-совместимый провайдер (например, Fireworks AI)
78
+ agento provider add \
79
+ -n "Fireworks AI" \
80
+ -t openai-compatible \
81
+ -k "sk-your-api-key" \
82
+ -u "https://api.fireworks.ai/inference/v1" \
83
+ -M "accounts/fireworks/models/llama-v3p1-70b-instruct,accounts/fireworks/models/kimi-k2p6"
84
+
85
+ # Провайдер Anthropic
86
+ agento provider add \
87
+ -n "Anthropic" \
88
+ -t anthropic \
89
+ -k "sk-ant-your-key" \
90
+ -M "claude-sonnet-4-20250514,claude-3-5-haiku-20241022"
91
+ ```
92
+
93
+ ### 2. Создайте профиль
94
+
95
+ ```bash
96
+ # Профиль с одной моделью
97
+ agento profile add -n "default" -m "provider-id:claude-sonnet-4-20250514"
98
+
99
+ # Многоуровневый профиль (требуются уровни: small/base/smart)
100
+ agento profile add -n "multi" -m "provider-id:claude-3-5-haiku-20241022:small,provider-id:claude-sonnet-4-20250514:base,provider-id:claude-opus-4-20250514:smart"
101
+ ```
102
+
103
+ ### 3. Запустите агента
104
+
105
+ ```bash
106
+ # Интерактивный TUI-режим (по умолчанию)
107
+ agento
108
+
109
+ # Прямой запуск
110
+ agento launch -p default -a claude-code
111
+
112
+ # Запуск с указанием режима и области видимости
113
+ agento launch -p default -a qwen -m child -s project
114
+ ```
115
+
116
+ ## Интерактивный TUI
117
+
118
+ Запуск `agento` без аргументов открывает интерактивный терминальный интерфейс (TUI), построенный на [Ink](https://github.com/vadimdemedes/ink) и React.
119
+
120
+ ### Главное меню
121
+
122
+ ```
123
+ ┌────────── AgentO v0.2.0 ──────────┐
124
+ │ │
125
+ │ ▶ Запустить агента │
126
+ │ Провайдеры │
127
+ │ Профили │
128
+ │ Агенты │
129
+ │ Настройки │
130
+ │ │
131
+ └───────────────────────────────────┘
132
+ ```
133
+
134
+ **Навигация:** **↑↓** перемещение, **Enter** выбор, **Esc / q** выход.
135
+
136
+ ### Обзор экранов
137
+
138
+ | Экран | Возможности | Горячие клавиши |
139
+ |-------|-------------|-----------------|
140
+ | **Запуск агента** | Выбор профиля → агента → режима/области → запуск | **Enter** выбор, **Esc** назад |
141
+ | **Провайдеры** | Просмотр, добавление, редактирование, удаление провайдеров; переключение возможностей моделей | **Enter** детали / добавить модель, **a** добавить провайдер, **e** редактировать, **d** удалить, **i/v/a** переключить флаг, **Esc** назад |
142
+ | **Профили** | Просмотр, добавление, удаление профилей. В деталях: добавление/удаление/редактирование моделей | **Enter** детали, **a** добавить, **d** удалить, **Esc** назад |
143
+ | **Агенты** | Проверка статуса конфигов (global/project), наличие бэкапов | **Enter** детали, **Esc** назад |
144
+ | **Настройки** | Изменение режима запуска, области конфига, режима independent | **↑↓** изменение, **Enter** переключение, **Esc** сохранить и назад |
145
+
146
+ ### Сценарий запуска агента
147
+
148
+ 1. **Выбор профиля** — выберите один из сохранённых профилей
149
+ 2. **Выбор агента** — выберите агента для запуска (claude-code, opencode, qwen или codex с `--dev`)
150
+ 3. **Опционально:** настройте **Режим** (child/independent) и **Область** (global/project)
151
+ 4. **Запуск** — AgentO заменяет конфиг агента и запускает его
152
+
153
+ ```
154
+ Profile: default
155
+ ├─ Agent: claude-code
156
+ ├─ Mode: child
157
+ ├─ Scope: global
158
+ └─ [ Запуск ]
159
+ ```
160
+
161
+ В **режиме child** после выхода агента вы вернётесь в AgentO, а оригинальный конфиг будет автоматически восстановлен.
162
+
163
+ В **режиме independent** AgentO завершается сразу, а изменённый конфиг остаётся на месте.
164
+
165
+ ### Экран провайдеров
166
+
167
+ Управляйте API-провайдерами без необходимости запоминать CLI-флаги:
168
+
169
+ - **Просмотр** всех провайдеров с типом, моделями, маркерами возможностей и base URL
170
+ - **Добавление** нового провайдера с подсказками (имя, тип, API-ключ, модели, base URL)
171
+ - **Редактирование** существующих провайдеров — включая флаги возможностей моделей (`i`/`v`/`a`)
172
+ - **Удаление** ненужных провайдеров
173
+
174
+ В режиме редактирования модели отображаются как `▶ [i--] model-name`. Когда выделена модель, нажимайте `i` / `v` / `a`, чтобы переключать image / video / audio. Используйте строку `[+ add model]` (Enter) для добавления моделей, `d` — удалить, `e` — переименовать.
175
+
176
+ ### Экран профилей
177
+
178
+ Организуйте конфигурации моделей:
179
+
180
+ - **Просмотр** всех профилей с моделями и уровнями
181
+ - **Добавление** профилей с одной или несколькими моделями
182
+ - **В деталях профиля:** добавление/удаление/редактирование отдельных моделей
183
+
184
+ ### Экран агентов
185
+
186
+ Следите за статусом конфигураций агентов:
187
+
188
+ - Увидеть, есть ли у каждого агента **глобальный** или **проектный** конфиг
189
+ - Проверить, есть ли **бэкапы** (признак того, что AgentO ранее изменял конфиг)
190
+ - Посмотреть пути к конфигам для каждого агента
191
+
192
+ ### Экран настроек
193
+
194
+ Настройте поведение AgentO по умолчанию:
195
+
196
+ | Настройка | Варианты | Описание |
197
+ |-----------|----------|----------|
198
+ | **Режим запуска по умолчанию** | `child` / `independent` | Как запускать агентов по умолчанию |
199
+ | **Область конфига по умолчанию** | `global` / `project` | Куда записывать конфиги агентов |
200
+ | **Режим independent** | `spawn-detached` / `pty` | Как запускать агентов в режиме independent |
201
+
202
+ **Управление:** **↑↓** навигация, **Enter** или **Space** переключение значений, **Esc** сохранить и вернуться.
203
+
204
+ ### TUI vs CLI
205
+
206
+ | Задача | TUI | CLI |
207
+ |--------|-----|-----|
208
+ | Визуальный просмотр провайдеров | ✅ | — |
209
+ | Быстрый разовый запуск | — | `agento launch -p <p> -a <a>` |
210
+ | Автоматизация скриптами | — | ✅ |
211
+ | Проверка статуса конфига | ✅ | `agento agent status` |
212
+ | Пошаговое создание провайдера/профиля | ✅ | Ручная сборка флагов |
213
+
214
+ Используйте **TUI** для изучения и интерактивных сценариев. Используйте **CLI** для скриптов, алиасов и быстрых запусков.
215
+
216
+ ## Справочник по CLI
217
+
218
+ ### `agento` — Главная команда
219
+
220
+ По умолчанию запускает интерактивный TUI.
221
+
222
+ ```bash
223
+ agento # Запуск интерактивного TUI
224
+ agento --dev # Показать development-агентов (например, codex) в TUI
225
+ ```
226
+
227
+ ### `agento launch` — Запуск агента
228
+
229
+ ```bash
230
+ agento launch -p <profile> -a <agent> [options]
231
+
232
+ Опции:
233
+ -p, --profile <name> Имя профиля (обязательно)
234
+ -a, --agent <id> Агент: claude-code, opencode, qwen, codex (обязательно)
235
+ -m, --mode <mode> Режим запуска: child или independent (по умолчанию из настроек)
236
+ -s, --scope <scope> Область конфига: global или project (по умолчанию из настроек)
237
+ -d, --dev Показать development-агентов (например, codex)
238
+ ```
239
+
240
+ **Режимы запуска:**
241
+
242
+ - **Child** (по умолчанию): Временно заменяет конфиг агента, запускает его, восстанавливает оригинальный конфиг при выходе
243
+ - **Independent**: Постоянно заменяет конфиг; восстановление вручную
244
+
245
+ **Области конфига:**
246
+
247
+ - **Global**: `~/.<agent>/settings.*`
248
+ - **Project**: `./.<agent>/settings.*` или `./<agent>.*`
249
+
250
+ ### `agento provider` — Управление провайдерами
251
+
252
+ ```bash
253
+ agento provider list # Список всех провайдеров (с маркерами возможностей)
254
+ agento provider add [options] # Добавить провайдер
255
+ -n, --name <name> Отображаемое имя (обязательно)
256
+ -t, --type <type> Тип: anthropic, openai-compatible или fireworks (обязательно)
257
+ -k, --api-key <key> API-ключ (обязательно)
258
+ -u, --base-url <url> Base URL (обязателен для openai-compatible, опциональный для других)
259
+ -M, --models <models> Список моделей через запятую (обязательно). Возможности по умолчанию:
260
+ image=true, video=false, audio=false. Меняйте в TUI клавишами i/v/a.
261
+ agento provider remove <name> # Удалить провайдер
262
+ ```
263
+
264
+ **Дефолты Base URL:**
265
+ - `anthropic`: использует стандартный endpoint Anthropic
266
+ - `fireworks`: автоматически `https://api.fireworks.ai/inference`, если не указан
267
+ - `openai-compatible`: должен быть указан явно через `-u`
268
+
269
+ ### `agento profile` — Управление профилями
270
+
271
+ ```bash
272
+ agento profile list # Список всех профилей
273
+ agento profile add [options] # Добавить профиль
274
+ -n, --name <name> Имя профиля (обязательно)
275
+ -m, --models <models> Список providerId:modelName[:tier] через запятую (обязательно)
276
+ Tier опционален для одномодельных профилей.
277
+ Для многоуровневых: tier должен быть small|base|smart, минимум один base.
278
+ agento profile remove <name> # Удалить профиль
279
+ ```
280
+
281
+ ### `agento agent` — Статус агентов
282
+
283
+ ```bash
284
+ agento agent status # Статус конфигов всех агентов
285
+ agento agent status --dev # Включая development-агентов (например, codex)
286
+ ```
287
+
288
+ ### `agento restore` — Восстановление конфига
289
+
290
+ ```bash
291
+ agento restore -a <agent> -s <scope> # Восстановить конфиг агента из бэкапа
292
+
293
+ Опции:
294
+ -a, --agent <id> ID агента (обязательно)
295
+ -s, --scope <scope> Область конфига: global или project (обязательно)
296
+ ```
297
+
298
+ ## Конфигурация
299
+
300
+ AgentO хранит свою конфигурацию в `~/.agento/config.json`:
301
+
302
+ ```json
303
+ {
304
+ "providers": [
305
+ {
306
+ "id": "uuid",
307
+ "name": "Fireworks AI",
308
+ "type": "fireworks",
309
+ "apiKey": "fw-...",
310
+ "models": [
311
+ { "name": "accounts/fireworks/models/llama-v3p1-70b-instruct", "capabilities": { "image": false, "video": false, "audio": false } },
312
+ { "name": "accounts/fireworks/models/kimi-k2", "capabilities": { "image": true, "video": false, "audio": false } }
313
+ ]
314
+ }
315
+ ],
316
+ "profiles": [
317
+ {
318
+ "id": "uuid",
319
+ "name": "default",
320
+ "models": [
321
+ {
322
+ "providerId": "uuid",
323
+ "model": "accounts/fireworks/models/llama-v3p1-70b-instruct",
324
+ "tier": "base"
325
+ }
326
+ ]
327
+ }
328
+ ],
329
+ "settings": {
330
+ "defaultLaunchMode": "child",
331
+ "defaultConfigScope": "global",
332
+ "independentMode": "pty"
333
+ }
334
+ }
335
+ ```
336
+
337
+ > Конфиги, созданные AgentO < 0.2.0, имеют `models` как массив строк. Они мигрируются автоматически при чтении; возможности по умолчанию `{ image: true, video: false, audio: false }`, меняются в TUI.
338
+
339
+ ## Как это работает
340
+
341
+ ### Адаптеры агентов
342
+
343
+ Каждый поддерживаемый агент имеет адаптер, который переводит универсальный формат AgentO в специфичный конфиг агента:
344
+
345
+ - **Claude Code** (`anthropic`, `fireworks`): Генерирует `~/.claude/settings.json` с выбором модели по уровням и переменными окружения `ANTHROPIC_*`. Использует Anthropic SDK. Флаги возможностей не пробрасываются (Anthropic SDK не имеет поля для модальностей).
346
+ - **OpenCode** (`anthropic`, `openai-compatible`, `fireworks`): Генерирует `~/.config/opencode/config.json` через Vercel AI SDK с префиксом провайдера. Полная поддержка function calling через `@ai-sdk/openai-compatible`. Для каждой модели генерируется `modalities: { input: [...], output: ["text"] }` из флагов возможностей.
347
+ - **Qwen CLI** (`openai-compatible`, `fireworks`): Генерирует `~/.qwen/settings.json` со структурой OpenAI-совместимого провайдера. Требует `baseUrl`. Пробрасывает флаги возможностей через `generationConfig.modalities`.
348
+ - **Codex CLI** (`--dev` для отображения): Генерирует `~/.codex/config.toml` с `wire_api: responses`, профилями и ссылками на переменные окружения. При project-области разделяет конфиг между глобальным (`model_providers`) и проектным (`model`) конфигами. Поддерживает все типы провайдеров. Флаги возможностей не пробрасываются (Codex `responses` API не имеет поля для модальностей).
349
+
350
+ ### Бэкап и восстановление
351
+
352
+ Перед изменением любого конфига агента AgentO создаёт бэкап в `~/.agento/backups/<agent>/<scope>.bak.*`.
353
+
354
+ В **режиме Child** оригинальный конфиг автоматически восстанавливается при выходе агента или получении SIGTERM/SIGINT.
355
+
356
+ В **режиме Independent** конфиг остаётся изменённым. Восстановите вручную через `agento restore`.
357
+
358
+ ## Разработка
359
+
360
+ ### Настройка
361
+
362
+ ```bash
363
+ git clone https://github.com/emaxe/agentO.git
364
+ cd agentO
365
+ npm install
366
+ ```
367
+
368
+ ### Скрипты
369
+
370
+ ```bash
371
+ npm run build # Компиляция TypeScript в dist/
372
+ npm run dev # Режим наблюдения
373
+ npm test # Запуск всех тестов
374
+ npm run test:watch # Режим наблюдения для тестов
375
+ npm run typecheck # Проверка типов TypeScript
376
+ npm run lint # ESLint
377
+ npm run format # Prettier
378
+ ```
379
+
380
+ ### Архитектура
381
+
382
+ ```
383
+ src/
384
+ ├── adapters/ # Адаптеры конфигов для конкретных агентов
385
+ ├── cli/commands/ # Реализация CLI-команд
386
+ ├── config/ # Схема и хранилище конфига
387
+ ├── launcher/ # Логика запуска агентов
388
+ ├── profiles/ # Управление профилями
389
+ ├── providers/ # Управление провайдерами
390
+ └── tui/ # Терминальный UI (Ink + React)
391
+ ```
392
+
393
+ ## Устранение неполадок
394
+
395
+ ### Изменения в `src/` не применяются
396
+
397
+ Глобальная команда AgentO использует скомпилированный код из `dist/`, а не `src/`. После любых изменений исходников:
398
+
399
+ ```bash
400
+ npm run build
401
+ ```
402
+
403
+ ### Тесты проходят, но глобальная команда ведёт себя иначе
404
+
405
+ Папка `dist/` устарела. Пересоберите:
406
+
407
+ ```bash
408
+ npm run build
409
+ ```
410
+
411
+ ### В конфиге Qwen CLI отображается "omni" вместо "openai"
412
+
413
+ Это был баг в версиях < 0.1.1. Обновитесь до последней версии или пересоберите.
414
+
415
+ ## Участие в проекте
416
+
417
+ Вклад приветствуется! Пожалуйста:
418
+
419
+ 1. Форкните репозиторий
420
+ 2. Создайте ветку с фичей
421
+ 3. Напишите тесты для новой функциональности
422
+ 4. Убедитесь, что все тесты проходят (`npm test`)
423
+ 5. Отправьте pull request
424
+
425
+ ## Лицензия
426
+
427
+ [MIT](LICENSE) © AgentO Contributors
@@ -1,4 +1,4 @@
1
- import type { Profile, Provider } from '../config/schema.js';
1
+ import type { Profile, Provider, ProviderType } from '../config/schema.js';
2
2
  import type { LaunchScope } from '../config/schema.js';
3
3
  /** Режим области действия конфига агента */
4
4
  export type { LaunchScope };
@@ -17,6 +17,8 @@ export interface AgentAdapter {
17
17
  readonly displayName: string;
18
18
  /** Флаг разработки: скрыт из UI/CLI по умолчанию */
19
19
  readonly dev?: boolean;
20
+ /** Поддерживаемые типы провайдеров */
21
+ readonly supportedProviderTypes: readonly ProviderType[];
20
22
  /** Возвращает пути к конфигам агента (global и project) */
21
23
  configPaths(cwd?: string): AgentConfigPaths;
22
24
  /** Читает текущий конфиг агента для указанного scope */
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/adapters/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,4CAA4C;AAC5C,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,4DAA4D;AAC5D,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAElD,8CAA8C;AAC9C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,gCAAgC;AAChC,MAAM,WAAW,YAAY;IAC3B,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,8BAA8B;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,oDAAoD;IACpD,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAEvB,2DAA2D;IAC3D,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAE5C,wDAAwD;IACxD,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAE1E;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC;IAElE,oDAAoD;IACpD,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElF;;;OAGG;IACH,QAAQ,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5E;AAED,yCAAyC;AACzC,MAAM,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/adapters/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,4CAA4C;AAC5C,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,4DAA4D;AAC5D,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAElD,8CAA8C;AAC9C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,gCAAgC;AAChC,MAAM,WAAW,YAAY;IAC3B,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,8BAA8B;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,oDAAoD;IACpD,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAEvB,sCAAsC;IACtC,QAAQ,CAAC,sBAAsB,EAAE,SAAS,YAAY,EAAE,CAAC;IAEzD,2DAA2D;IAC3D,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAE5C,wDAAwD;IACxD,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAE1E;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC;IAElE,oDAAoD;IACpD,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElF;;;OAGG;IACH,QAAQ,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5E;AAED,yCAAyC;AACzC,MAAM,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC"}
@@ -4,6 +4,7 @@ import type { Profile, Provider } from '../config/schema.js';
4
4
  export declare class ClaudeCodeAdapter implements AgentAdapter {
5
5
  readonly id = "claude-code";
6
6
  readonly displayName = "Claude Code";
7
+ readonly supportedProviderTypes: readonly ["anthropic", "fireworks"];
7
8
  configPaths(cwd?: string): AgentConfigPaths;
8
9
  readConfig(scope: LaunchScope, cwd?: string): Promise<AgentConfig | null>;
9
10
  buildConfig(profile: Profile, providers: Provider[]): AgentConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../src/adapters/claude-code.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAa,OAAO,EAAgB,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AActF,qBAAa,iBAAkB,YAAW,YAAY;IACpD,QAAQ,CAAC,EAAE,iBAAiB;IAC5B,QAAQ,CAAC,WAAW,iBAAiB;IAErC,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAOrC,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAO/E,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,WAAW;IA4C3D,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMxF;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
1
+ {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../src/adapters/claude-code.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAa,OAAO,EAAgB,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAgBtF,qBAAa,iBAAkB,YAAW,YAAY;IACpD,QAAQ,CAAC,EAAE,iBAAiB;IAC5B,QAAQ,CAAC,WAAW,iBAAiB;IACrC,QAAQ,CAAC,sBAAsB,sCAAuC;IAEtE,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAOrC,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAO/E,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,WAAW;IA8C3D,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMxF;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
@@ -2,6 +2,7 @@ import { readFile, writeFile, mkdir } from 'node:fs/promises';
2
2
  import { existsSync } from 'node:fs';
3
3
  import { homedir } from 'node:os';
4
4
  import { join } from 'node:path';
5
+ const FIREWORKS_BASE_URL = 'https://api.fireworks.ai/inference';
5
6
  function escapeForSingleQuoted(value) {
6
7
  return value.replace(/'/g, "'\\''");
7
8
  }
@@ -11,6 +12,7 @@ function pickByTier(models, tier, fallback) {
11
12
  export class ClaudeCodeAdapter {
12
13
  id = 'claude-code';
13
14
  displayName = 'Claude Code';
15
+ supportedProviderTypes = ['anthropic', 'fireworks'];
14
16
  configPaths(cwd) {
15
17
  return {
16
18
  global: join(homedir(), '.claude', 'settings.json'),
@@ -48,8 +50,9 @@ export class ClaudeCodeAdapter {
48
50
  ANTHROPIC_DEFAULT_SONNET_MODEL: base.model,
49
51
  ANTHROPIC_DEFAULT_OPUS_MODEL: smart.model,
50
52
  };
51
- if (baseProvider.baseUrl) {
52
- env['ANTHROPIC_BASE_URL'] = baseProvider.baseUrl;
53
+ const anthropicBase = baseProvider.baseUrl ?? (baseProvider.type === 'fireworks' ? FIREWORKS_BASE_URL : undefined);
54
+ if (anthropicBase) {
55
+ env['ANTHROPIC_BASE_URL'] = anthropicBase;
53
56
  }
54
57
  const config = {
55
58
  $schema: 'https://json.schemastore.org/claude-code-settings.json',
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/adapters/claude-code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/adapters/claude-code.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export declare class CodexAdapter implements AgentAdapter {
5
5
  readonly id = "codex";
6
6
  readonly displayName = "Codex CLI";
7
7
  readonly dev = true;
8
+ readonly supportedProviderTypes: readonly ["fireworks"];
8
9
  configPaths(cwd?: string): AgentConfigPaths;
9
10
  readConfig(scope: LaunchScope, cwd?: string): Promise<AgentConfig | null>;
10
11
  buildConfig(profile: Profile, providers: Provider[]): AgentConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/adapters/codex.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAe7D,qBAAa,YAAa,YAAW,YAAY;IAC/C,QAAQ,CAAC,EAAE,WAAW;IACtB,QAAQ,CAAC,WAAW,eAAe;IACnC,QAAQ,CAAC,GAAG,QAAQ;IAEpB,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAOrC,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAO/E,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,WAAW;IA8BjE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAanE,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAyFxF;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"}
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/adapters/codex.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAiB7D,qBAAa,YAAa,YAAW,YAAY;IAC/C,QAAQ,CAAC,EAAE,WAAW;IACtB,QAAQ,CAAC,WAAW,eAAe;IACnC,QAAQ,CAAC,GAAG,QAAQ;IACpB,QAAQ,CAAC,sBAAsB,yBAA0B;IAEzD,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAOrC,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAO/E,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,WAAW;IA8BjE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAanE,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAyFxF;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"}
@@ -3,6 +3,7 @@ import { existsSync } from 'node:fs';
3
3
  import { homedir } from 'node:os';
4
4
  import { join, dirname } from 'node:path';
5
5
  import { parse as parseToml, stringify as stringifyToml } from 'smol-toml';
6
+ const FIREWORKS_BASE_URL = 'https://api.fireworks.ai/inference/v1';
6
7
  /** Нормализует имя провайдера в ключ: "Fireworks AI" → "fireworks-ai" */
7
8
  function deriveProviderKey(name) {
8
9
  return name.toLowerCase().replace(/\s+/g, '-');
@@ -17,6 +18,7 @@ export class CodexAdapter {
17
18
  id = 'codex';
18
19
  displayName = 'Codex CLI';
19
20
  dev = true;
21
+ supportedProviderTypes = ['fireworks'];
20
22
  configPaths(cwd) {
21
23
  return {
22
24
  global: join(homedir(), '.codex', 'config.toml'),
@@ -44,7 +46,7 @@ export class CodexAdapter {
44
46
  model_providers: {
45
47
  [providerKey]: {
46
48
  name: provider.name,
47
- base_url: provider.baseUrl ?? '',
49
+ base_url: provider.baseUrl ?? (provider.type === 'fireworks' ? FIREWORKS_BASE_URL : ''),
48
50
  env_key: envKey,
49
51
  wire_api: 'responses',
50
52
  },
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/adapters/codex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/adapters/codex.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import type { Profile, Provider } from '../config/schema.js';
4
4
  export declare class OpenCodeAdapter implements AgentAdapter {
5
5
  readonly id = "opencode";
6
6
  readonly displayName = "OpenCode";
7
+ readonly supportedProviderTypes: readonly ["anthropic", "openai-compatible", "fireworks"];
7
8
  configPaths(cwd?: string): AgentConfigPaths;
8
9
  readConfig(scope: LaunchScope, cwd?: string): Promise<AgentConfig | null>;
9
10
  buildConfig(profile: Profile, providers: Provider[]): AgentConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/adapters/opencode.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE7D,qBAAa,eAAgB,YAAW,YAAY;IAClD,QAAQ,CAAC,EAAE,cAAc;IACzB,QAAQ,CAAC,WAAW,cAAc;IAElC,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAOrC,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAO/E,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,WAAW;IAiC3D,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMxF;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
1
+ {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/adapters/opencode.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAI7D,qBAAa,eAAgB,YAAW,YAAY;IAClD,QAAQ,CAAC,EAAE,cAAc;IACzB,QAAQ,CAAC,WAAW,cAAc;IAClC,QAAQ,CAAC,sBAAsB,2DAA4D;IAE3F,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAOrC,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAO/E,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,WAAW;IA2D3D,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMxF;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}