@emaxe/agento 0.1.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 (111) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +304 -0
  3. package/dist/bin/agento.d.ts +3 -0
  4. package/dist/bin/agento.d.ts.map +1 -0
  5. package/dist/bin/agento.js +44 -0
  6. package/dist/bin/agento.js.map +1 -0
  7. package/dist/src/adapters/base.d.ts +38 -0
  8. package/dist/src/adapters/base.d.ts.map +1 -0
  9. package/dist/src/adapters/base.js +2 -0
  10. package/dist/src/adapters/base.js.map +1 -0
  11. package/dist/src/adapters/claude-code.d.ts +13 -0
  12. package/dist/src/adapters/claude-code.d.ts.map +1 -0
  13. package/dist/src/adapters/claude-code.js +70 -0
  14. package/dist/src/adapters/claude-code.js.map +1 -0
  15. package/dist/src/adapters/codex.d.ts +15 -0
  16. package/dist/src/adapters/codex.d.ts.map +1 -0
  17. package/dist/src/adapters/codex.js +148 -0
  18. package/dist/src/adapters/codex.js.map +1 -0
  19. package/dist/src/adapters/opencode.d.ts +13 -0
  20. package/dist/src/adapters/opencode.d.ts.map +1 -0
  21. package/dist/src/adapters/opencode.js +62 -0
  22. package/dist/src/adapters/opencode.js.map +1 -0
  23. package/dist/src/adapters/qwen.d.ts +13 -0
  24. package/dist/src/adapters/qwen.d.ts.map +1 -0
  25. package/dist/src/adapters/qwen.js +84 -0
  26. package/dist/src/adapters/qwen.js.map +1 -0
  27. package/dist/src/cli/commands/agent.d.ts +3 -0
  28. package/dist/src/cli/commands/agent.d.ts.map +1 -0
  29. package/dist/src/cli/commands/agent.js +42 -0
  30. package/dist/src/cli/commands/agent.js.map +1 -0
  31. package/dist/src/cli/commands/launch.d.ts +3 -0
  32. package/dist/src/cli/commands/launch.d.ts.map +1 -0
  33. package/dist/src/cli/commands/launch.js +80 -0
  34. package/dist/src/cli/commands/launch.js.map +1 -0
  35. package/dist/src/cli/commands/profile.d.ts +3 -0
  36. package/dist/src/cli/commands/profile.d.ts.map +1 -0
  37. package/dist/src/cli/commands/profile.js +102 -0
  38. package/dist/src/cli/commands/profile.js.map +1 -0
  39. package/dist/src/cli/commands/provider.d.ts +3 -0
  40. package/dist/src/cli/commands/provider.d.ts.map +1 -0
  41. package/dist/src/cli/commands/provider.js +70 -0
  42. package/dist/src/cli/commands/provider.js.map +1 -0
  43. package/dist/src/cli/commands/restore.d.ts +3 -0
  44. package/dist/src/cli/commands/restore.d.ts.map +1 -0
  45. package/dist/src/cli/commands/restore.js +41 -0
  46. package/dist/src/cli/commands/restore.js.map +1 -0
  47. package/dist/src/config/schema.d.ts +218 -0
  48. package/dist/src/config/schema.d.ts.map +1 -0
  49. package/dist/src/config/schema.js +49 -0
  50. package/dist/src/config/schema.js.map +1 -0
  51. package/dist/src/config/store.d.ts +20 -0
  52. package/dist/src/config/store.d.ts.map +1 -0
  53. package/dist/src/config/store.js +59 -0
  54. package/dist/src/config/store.js.map +1 -0
  55. package/dist/src/launcher/child.d.ts +30 -0
  56. package/dist/src/launcher/child.d.ts.map +1 -0
  57. package/dist/src/launcher/child.js +115 -0
  58. package/dist/src/launcher/child.js.map +1 -0
  59. package/dist/src/launcher/independent.d.ts +25 -0
  60. package/dist/src/launcher/independent.d.ts.map +1 -0
  61. package/dist/src/launcher/independent.js +26 -0
  62. package/dist/src/launcher/independent.js.map +1 -0
  63. package/dist/src/launcher/shell-path-resolver.d.ts +17 -0
  64. package/dist/src/launcher/shell-path-resolver.d.ts.map +1 -0
  65. package/dist/src/launcher/shell-path-resolver.js +97 -0
  66. package/dist/src/launcher/shell-path-resolver.js.map +1 -0
  67. package/dist/src/profiles/profile-manager.d.ts +17 -0
  68. package/dist/src/profiles/profile-manager.d.ts.map +1 -0
  69. package/dist/src/profiles/profile-manager.js +74 -0
  70. package/dist/src/profiles/profile-manager.js.map +1 -0
  71. package/dist/src/providers/provider-manager.d.ts +13 -0
  72. package/dist/src/providers/provider-manager.d.ts.map +1 -0
  73. package/dist/src/providers/provider-manager.js +42 -0
  74. package/dist/src/providers/provider-manager.js.map +1 -0
  75. package/dist/src/tui/App.d.ts +10 -0
  76. package/dist/src/tui/App.d.ts.map +1 -0
  77. package/dist/src/tui/App.js +43 -0
  78. package/dist/src/tui/App.js.map +1 -0
  79. package/dist/src/tui/screens/Agents.d.ts +8 -0
  80. package/dist/src/tui/screens/Agents.d.ts.map +1 -0
  81. package/dist/src/tui/screens/Agents.js +70 -0
  82. package/dist/src/tui/screens/Agents.js.map +1 -0
  83. package/dist/src/tui/screens/LaunchAgent.d.ts +10 -0
  84. package/dist/src/tui/screens/LaunchAgent.d.ts.map +1 -0
  85. package/dist/src/tui/screens/LaunchAgent.js +119 -0
  86. package/dist/src/tui/screens/LaunchAgent.js.map +1 -0
  87. package/dist/src/tui/screens/MainMenu.d.ts +9 -0
  88. package/dist/src/tui/screens/MainMenu.d.ts.map +1 -0
  89. package/dist/src/tui/screens/MainMenu.js +32 -0
  90. package/dist/src/tui/screens/MainMenu.js.map +1 -0
  91. package/dist/src/tui/screens/Profiles.d.ts +7 -0
  92. package/dist/src/tui/screens/Profiles.d.ts.map +1 -0
  93. package/dist/src/tui/screens/Profiles.js +528 -0
  94. package/dist/src/tui/screens/Profiles.js.map +1 -0
  95. package/dist/src/tui/screens/Providers.d.ts +7 -0
  96. package/dist/src/tui/screens/Providers.d.ts.map +1 -0
  97. package/dist/src/tui/screens/Providers.js +235 -0
  98. package/dist/src/tui/screens/Providers.js.map +1 -0
  99. package/dist/src/tui/screens/Settings.d.ts +7 -0
  100. package/dist/src/tui/screens/Settings.d.ts.map +1 -0
  101. package/dist/src/tui/screens/Settings.js +49 -0
  102. package/dist/src/tui/screens/Settings.js.map +1 -0
  103. package/dist/src/tui/start.d.ts +6 -0
  104. package/dist/src/tui/start.d.ts.map +1 -0
  105. package/dist/src/tui/start.js +15 -0
  106. package/dist/src/tui/start.js.map +1 -0
  107. package/dist/src/tui/use-key-input.d.ts +9 -0
  108. package/dist/src/tui/use-key-input.d.ts.map +1 -0
  109. package/dist/src/tui/use-key-input.js +19 -0
  110. package/dist/src/tui/use-key-input.js.map +1 -0
  111. package/package.json +82 -0
@@ -0,0 +1,528 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { useState, useEffect, useCallback } from 'react';
3
+ import { Box, Text } from 'ink';
4
+ import { useKeyInput } from '../use-key-input.js';
5
+ import TextInput from 'ink-text-input';
6
+ import { listProfiles, addProfile, updateProfile, removeProfile } from '../../profiles/profile-manager.js';
7
+ import { listProviders } from '../../providers/provider-manager.js';
8
+ const TIERS = ['small', 'base', 'smart'];
9
+ export function Profiles({ onBack }) {
10
+ const [mode, setMode] = useState('list');
11
+ const [profiles, setProfiles] = useState([]);
12
+ const [providers, setProviders] = useState([]);
13
+ const [selectedIndex, setSelectedIndex] = useState(0);
14
+ const [detailProfile, setDetailProfile] = useState(null);
15
+ const [detailModelIndex, setDetailModelIndex] = useState(0);
16
+ const [status, setStatus] = useState('');
17
+ // Add wizard state
18
+ const [addStep, setAddStep] = useState('name');
19
+ const [formName, setFormName] = useState('');
20
+ const [formModels, setFormModels] = useState([]);
21
+ const [providerCursor, setProviderCursor] = useState(0);
22
+ const [modelCursor, setModelCursor] = useState(0);
23
+ const [pendingProviderId, setPendingProviderId] = useState(null);
24
+ const [pendingModel, setPendingModel] = useState('');
25
+ const [tierCursor, setTierCursor] = useState(1); // 0=small,1=base,2=smart
26
+ const [customModel, setCustomModel] = useState('');
27
+ const [reviewCursor, setReviewCursor] = useState(0); // 0 = add more, 1 = save
28
+ // Edit mode state
29
+ const [editProfile, setEditProfile] = useState(null);
30
+ const [editName, setEditName] = useState('');
31
+ const [editModels, setEditModels] = useState([]);
32
+ const [editModelCursor, setEditModelCursor] = useState(0);
33
+ const [editFocus, setEditFocus] = useState('models');
34
+ const [editSubStep, setEditSubStep] = useState(null);
35
+ const reload = useCallback(() => {
36
+ listProfiles().then(setProfiles).catch(console.error);
37
+ listProviders().then(setProviders).catch(console.error);
38
+ }, []);
39
+ useEffect(() => { reload(); }, [reload]);
40
+ const resetAddWizard = useCallback(() => {
41
+ setAddStep('name');
42
+ setFormName('');
43
+ setFormModels([]);
44
+ setProviderCursor(0);
45
+ setModelCursor(0);
46
+ setPendingProviderId(null);
47
+ setPendingModel('');
48
+ setTierCursor(1);
49
+ setCustomModel('');
50
+ setReviewCursor(0);
51
+ setStatus('');
52
+ }, []);
53
+ const submitProfile = useCallback(() => {
54
+ if (!formName || formModels.length === 0) {
55
+ setStatus('Name and at least one model required');
56
+ return;
57
+ }
58
+ // Если в профиле >1 модели — tier обязателен; нормализуем (одна модель = без tier).
59
+ let modelsToSave;
60
+ if (formModels.length === 1) {
61
+ modelsToSave = [{ providerId: formModels[0].providerId, model: formModels[0].model }];
62
+ }
63
+ else {
64
+ const missingTier = formModels.some((m) => !m.tier);
65
+ if (missingTier) {
66
+ setStatus('All models must have a tier when there are multiple');
67
+ return;
68
+ }
69
+ const hasBase = formModels.some((m) => m.tier === 'base');
70
+ if (!hasBase) {
71
+ setStatus('At least one model must have tier=base');
72
+ return;
73
+ }
74
+ modelsToSave = formModels;
75
+ }
76
+ addProfile({ name: formName, models: modelsToSave })
77
+ .then((p) => { setStatus(`Added "${p.name}"`); reload(); setMode('list'); })
78
+ .catch((err) => setStatus(`Error: ${String(err)}`));
79
+ }, [formName, formModels, reload]);
80
+ const submitEdit = useCallback(() => {
81
+ if (!editProfile || !editName.trim() || editModels.length === 0) {
82
+ setStatus('Name and at least one model required');
83
+ return;
84
+ }
85
+ let modelsToSave;
86
+ if (editModels.length === 1) {
87
+ modelsToSave = [{ providerId: editModels[0].providerId, model: editModels[0].model }];
88
+ }
89
+ else {
90
+ const missingTier = editModels.some((m) => !m.tier);
91
+ if (missingTier) {
92
+ setStatus('All models must have a tier when there are multiple');
93
+ return;
94
+ }
95
+ const hasBase = editModels.some((m) => m.tier === 'base');
96
+ if (!hasBase) {
97
+ setStatus('At least one model must have tier=base');
98
+ return;
99
+ }
100
+ modelsToSave = editModels;
101
+ }
102
+ updateProfile(editProfile.id, { name: editName.trim(), models: modelsToSave })
103
+ .then((updated) => { setDetailProfile(updated); reload(); setMode('detail'); })
104
+ .catch((err) => setStatus(`Error: ${String(err)}`));
105
+ }, [editProfile, editName, editModels, reload]);
106
+ useKeyInput((input, key) => {
107
+ if (mode === 'list') {
108
+ if (key.escape || input === 'q') {
109
+ onBack();
110
+ return;
111
+ }
112
+ if (key.upArrow)
113
+ setSelectedIndex((i) => Math.max(0, i - 1));
114
+ else if (key.downArrow)
115
+ setSelectedIndex((i) => Math.min(profiles.length - 1, i + 1));
116
+ else if (key.return && profiles[selectedIndex]) {
117
+ setDetailProfile(profiles[selectedIndex]);
118
+ setDetailModelIndex(0);
119
+ setMode('detail');
120
+ }
121
+ else if (input === 'a') {
122
+ if (providers.length === 0) {
123
+ setStatus('Add at least one provider first');
124
+ return;
125
+ }
126
+ resetAddWizard();
127
+ setMode('add');
128
+ }
129
+ else if (input === 'd' && profiles[selectedIndex]) {
130
+ setMode('confirm-delete');
131
+ }
132
+ return;
133
+ }
134
+ if (mode === 'confirm-delete') {
135
+ if (input === 'y' && profiles[selectedIndex]) {
136
+ removeProfile(profiles[selectedIndex].id)
137
+ .then(() => { setStatus(`Deleted`); reload(); setMode('list'); })
138
+ .catch((err) => setStatus(`Error: ${String(err)}`));
139
+ }
140
+ else {
141
+ setMode('list');
142
+ }
143
+ return;
144
+ }
145
+ if (mode === 'detail' && detailProfile) {
146
+ if (key.escape || input === 'q') {
147
+ setMode('list');
148
+ return;
149
+ }
150
+ if (input === 'd') {
151
+ if (detailProfile.models.length <= 1) {
152
+ setStatus('Cannot delete the last model');
153
+ return;
154
+ }
155
+ const newModels = detailProfile.models.filter((_, i) => i !== detailModelIndex);
156
+ updateProfile(detailProfile.id, { models: newModels })
157
+ .then((updated) => {
158
+ setDetailProfile(updated);
159
+ reload();
160
+ setDetailModelIndex(Math.max(0, detailModelIndex - 1));
161
+ setStatus('');
162
+ })
163
+ .catch((err) => setStatus(`Error: ${String(err)}`));
164
+ return;
165
+ }
166
+ if (input === 'a') {
167
+ setEditProfile(detailProfile);
168
+ setEditName(detailProfile.name);
169
+ setEditModels([...detailProfile.models]);
170
+ setEditModelCursor(detailProfile.models.length); // курсор на [+ add model]
171
+ setEditFocus('models');
172
+ setEditSubStep('select-provider');
173
+ setProviderCursor(0);
174
+ setModelCursor(0);
175
+ setCustomModel('');
176
+ setStatus('');
177
+ setMode('edit');
178
+ return;
179
+ }
180
+ if (input === 'e') {
181
+ setEditProfile(detailProfile);
182
+ setEditName(detailProfile.name);
183
+ setEditModels([...detailProfile.models]);
184
+ setEditModelCursor(0);
185
+ setEditFocus('name');
186
+ setEditSubStep(null);
187
+ setProviderCursor(0);
188
+ setModelCursor(0);
189
+ setCustomModel('');
190
+ setStatus('');
191
+ setMode('edit');
192
+ return;
193
+ }
194
+ if (key.upArrow) {
195
+ setDetailModelIndex(Math.max(0, detailModelIndex - 1));
196
+ }
197
+ else if (key.downArrow) {
198
+ setDetailModelIndex(Math.min(detailProfile.models.length - 1, detailModelIndex + 1));
199
+ }
200
+ return;
201
+ }
202
+ if (mode === 'add') {
203
+ if (key.escape) {
204
+ if (addStep === 'name') {
205
+ setMode('list');
206
+ return;
207
+ }
208
+ if (addStep === 'select-provider') {
209
+ if (formModels.length > 0) {
210
+ setAddStep('review');
211
+ return;
212
+ }
213
+ setAddStep('name');
214
+ return;
215
+ }
216
+ if (addStep === 'select-model') {
217
+ setAddStep('select-provider');
218
+ return;
219
+ }
220
+ if (addStep === 'select-tier') {
221
+ setAddStep('select-model');
222
+ return;
223
+ }
224
+ if (addStep === 'review') {
225
+ setAddStep('select-provider');
226
+ return;
227
+ }
228
+ return;
229
+ }
230
+ if (addStep === 'name') {
231
+ if (key.return) {
232
+ if (!formName.trim()) {
233
+ setStatus('Name required');
234
+ return;
235
+ }
236
+ setStatus('');
237
+ setAddStep('select-provider');
238
+ }
239
+ return; // text input handled by TextInput
240
+ }
241
+ if (addStep === 'select-provider') {
242
+ if (key.upArrow)
243
+ setProviderCursor((i) => Math.max(0, i - 1));
244
+ else if (key.downArrow)
245
+ setProviderCursor((i) => Math.min(providers.length - 1, i + 1));
246
+ else if (key.return && providers[providerCursor]) {
247
+ setPendingProviderId(providers[providerCursor].id);
248
+ setModelCursor(0);
249
+ setCustomModel('');
250
+ setAddStep('select-model');
251
+ }
252
+ else if (input === 'f' && formModels.length > 0) {
253
+ setAddStep('review');
254
+ }
255
+ return;
256
+ }
257
+ if (addStep === 'select-model') {
258
+ const provider = providers.find((p) => p.id === pendingProviderId);
259
+ if (!provider) {
260
+ setAddStep('select-provider');
261
+ return;
262
+ }
263
+ const total = provider.models.length + 1; // +1 for custom entry
264
+ if (key.upArrow)
265
+ setModelCursor((i) => Math.max(0, i - 1));
266
+ else if (key.downArrow)
267
+ setModelCursor((i) => Math.min(total - 1, i + 1));
268
+ else if (key.return) {
269
+ let chosen = null;
270
+ if (modelCursor < provider.models.length) {
271
+ chosen = provider.models[modelCursor] ?? null;
272
+ }
273
+ else {
274
+ const trimmed = customModel.trim();
275
+ if (!trimmed) {
276
+ setStatus('Enter custom model name');
277
+ return;
278
+ }
279
+ chosen = trimmed;
280
+ }
281
+ if (!chosen)
282
+ return;
283
+ setStatus('');
284
+ setPendingModel(chosen);
285
+ // Подсказка курсора tier: первая модель -> base, иначе следующий незанятый.
286
+ const usedTiers = new Set(formModels.map((m) => m.tier).filter(Boolean));
287
+ const defaultIdx = TIERS.findIndex((t) => !usedTiers.has(t));
288
+ setTierCursor(defaultIdx === -1 ? 1 : defaultIdx);
289
+ setAddStep('select-tier');
290
+ }
291
+ return;
292
+ }
293
+ if (addStep === 'select-tier') {
294
+ // Предлагаем 4 варианта: small / base / smart / skip(no tier)
295
+ const optionsCount = 4;
296
+ if (key.upArrow)
297
+ setTierCursor((i) => Math.max(0, i - 1));
298
+ else if (key.downArrow)
299
+ setTierCursor((i) => Math.min(optionsCount - 1, i + 1));
300
+ else if (key.return) {
301
+ const provider = providers.find((p) => p.id === pendingProviderId);
302
+ if (!provider || !pendingModel) {
303
+ setAddStep('select-provider');
304
+ return;
305
+ }
306
+ const tier = tierCursor < 3 ? TIERS[tierCursor] : undefined;
307
+ setFormModels((arr) => [...arr, { providerId: provider.id, model: pendingModel, tier }]);
308
+ setPendingModel('');
309
+ setAddStep('review');
310
+ }
311
+ return;
312
+ }
313
+ if (addStep === 'review') {
314
+ if (key.upArrow)
315
+ setReviewCursor(0);
316
+ else if (key.downArrow)
317
+ setReviewCursor(1);
318
+ else if (key.return) {
319
+ if (reviewCursor === 0) {
320
+ setProviderCursor(0);
321
+ setAddStep('select-provider');
322
+ }
323
+ else {
324
+ submitProfile();
325
+ }
326
+ }
327
+ return;
328
+ }
329
+ }
330
+ if (mode === 'edit') {
331
+ // Sub-flow: adding a model within edit mode
332
+ if (editSubStep !== null) {
333
+ if (key.escape) {
334
+ if (editSubStep === 'select-provider') {
335
+ setEditSubStep(null);
336
+ return;
337
+ }
338
+ if (editSubStep === 'select-model') {
339
+ setEditSubStep('select-provider');
340
+ return;
341
+ }
342
+ if (editSubStep === 'select-tier') {
343
+ setEditSubStep('select-model');
344
+ return;
345
+ }
346
+ }
347
+ if (editSubStep === 'select-provider') {
348
+ if (key.upArrow)
349
+ setProviderCursor((i) => Math.max(0, i - 1));
350
+ else if (key.downArrow)
351
+ setProviderCursor((i) => Math.min(providers.length - 1, i + 1));
352
+ else if (key.return && providers[providerCursor]) {
353
+ setPendingProviderId(providers[providerCursor].id);
354
+ setModelCursor(0);
355
+ setCustomModel('');
356
+ setEditSubStep('select-model');
357
+ }
358
+ return;
359
+ }
360
+ if (editSubStep === 'select-model') {
361
+ const provider = providers.find((p) => p.id === pendingProviderId);
362
+ if (!provider) {
363
+ setEditSubStep('select-provider');
364
+ return;
365
+ }
366
+ const total = provider.models.length + 1;
367
+ if (key.upArrow)
368
+ setModelCursor((i) => Math.max(0, i - 1));
369
+ else if (key.downArrow)
370
+ setModelCursor((i) => Math.min(total - 1, i + 1));
371
+ else if (key.return) {
372
+ let chosen = null;
373
+ if (modelCursor < provider.models.length) {
374
+ chosen = provider.models[modelCursor] ?? null;
375
+ }
376
+ else {
377
+ const trimmed = customModel.trim();
378
+ if (!trimmed) {
379
+ setStatus('Enter custom model name');
380
+ return;
381
+ }
382
+ chosen = trimmed;
383
+ }
384
+ if (!chosen)
385
+ return;
386
+ setStatus('');
387
+ setPendingModel(chosen);
388
+ const usedTiers = new Set(editModels.map((m) => m.tier).filter(Boolean));
389
+ const defaultIdx = TIERS.findIndex((t) => !usedTiers.has(t));
390
+ setTierCursor(defaultIdx === -1 ? 1 : defaultIdx);
391
+ setEditSubStep('select-tier');
392
+ }
393
+ return;
394
+ }
395
+ if (editSubStep === 'select-tier') {
396
+ const optionsCount = 4;
397
+ if (key.upArrow)
398
+ setTierCursor((i) => Math.max(0, i - 1));
399
+ else if (key.downArrow)
400
+ setTierCursor((i) => Math.min(optionsCount - 1, i + 1));
401
+ else if (key.return) {
402
+ const provider = providers.find((p) => p.id === pendingProviderId);
403
+ if (!provider || !pendingModel) {
404
+ setEditSubStep('select-provider');
405
+ return;
406
+ }
407
+ const tier = tierCursor < 3 ? TIERS[tierCursor] : undefined;
408
+ setEditModels((prev) => [...prev, { providerId: provider.id, model: pendingModel, tier }]);
409
+ setPendingModel('');
410
+ setEditSubStep(null);
411
+ }
412
+ return;
413
+ }
414
+ }
415
+ // Main edit controls
416
+ if (key.escape) {
417
+ setMode('detail');
418
+ return;
419
+ }
420
+ if (key.tab) {
421
+ setEditFocus((f) => f === 'name' ? 'models' : 'name');
422
+ return;
423
+ }
424
+ if (input === 's') {
425
+ submitEdit();
426
+ return;
427
+ }
428
+ if (editFocus === 'name') {
429
+ if (key.return) {
430
+ setEditFocus('models');
431
+ return;
432
+ }
433
+ return; // TextInput handles text input
434
+ }
435
+ if (editFocus === 'models') {
436
+ const total = editModels.length + 1; // +1 for [+ add model]
437
+ if (key.upArrow && !key.shift) {
438
+ setEditModelCursor((i) => Math.max(0, i - 1));
439
+ }
440
+ else if (key.downArrow && !key.shift) {
441
+ setEditModelCursor((i) => Math.min(total - 1, i + 1));
442
+ }
443
+ else if (key.shift && key.upArrow && editModelCursor > 0 && editModelCursor < editModels.length) {
444
+ setEditModels((prev) => {
445
+ const arr = [...prev];
446
+ [arr[editModelCursor - 1], arr[editModelCursor]] = [arr[editModelCursor], arr[editModelCursor - 1]];
447
+ return arr;
448
+ });
449
+ setEditModelCursor((i) => i - 1);
450
+ }
451
+ else if (key.shift && key.downArrow && editModelCursor < editModels.length - 1) {
452
+ setEditModels((prev) => {
453
+ const arr = [...prev];
454
+ [arr[editModelCursor], arr[editModelCursor + 1]] = [arr[editModelCursor + 1], arr[editModelCursor]];
455
+ return arr;
456
+ });
457
+ setEditModelCursor((i) => i + 1);
458
+ }
459
+ else if (input === 'd' && editModels[editModelCursor]) {
460
+ setEditModels((prev) => prev.filter((_, i) => i !== editModelCursor));
461
+ setEditModelCursor((i) => Math.max(0, i - 1));
462
+ }
463
+ else if (key.return && editModelCursor === editModels.length) {
464
+ setProviderCursor(0);
465
+ setModelCursor(0);
466
+ setCustomModel('');
467
+ setEditSubStep('select-provider');
468
+ }
469
+ }
470
+ return;
471
+ }
472
+ });
473
+ if (mode === 'confirm-delete') {
474
+ return (_jsx(Box, { flexDirection: "column", padding: 1, children: _jsxs(Text, { children: ["Delete profile ", _jsxs(Text, { bold: true, children: ["\"", profiles[selectedIndex]?.name, "\""] }), "? (y/n)"] }) }));
475
+ }
476
+ if (mode === 'add') {
477
+ return (_jsxs(Box, { flexDirection: "column", padding: 1, children: [_jsx(Text, { bold: true, children: "Add Profile" }), addStep === 'name' && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "Enter profile name, Enter to continue, Esc to cancel" }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { children: "Name: " }), _jsx(TextInput, { value: formName, onChange: setFormName, focus: true, showCursor: true })] })] })), addStep === 'select-provider' && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { dimColor: true, children: ["\u2191\u2193: navigate | Enter: select | ", formModels.length > 0 ? "f: finish | " : '', "Esc: back"] }), formModels.length > 0 && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { dimColor: true, children: ["Already added (", formModels.length, "):"] }), formModels.map((m, i) => {
478
+ const p = providers.find((pr) => pr.id === m.providerId);
479
+ return (_jsxs(Text, { dimColor: true, children: [' • ', p?.name ?? '?', ": ", m.model, m.tier ? ` [${m.tier}]` : ''] }, i));
480
+ })] })), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { children: "Select provider:" }), providers.map((p, i) => (_jsxs(Text, { color: i === providerCursor ? 'green' : undefined, children: [i === providerCursor ? '▶ ' : ' ', p.name, " (", p.type, ", ", p.models.length, " models)"] }, p.id)))] })] })), addStep === 'select-model' && (() => {
481
+ const provider = providers.find((p) => p.id === pendingProviderId);
482
+ if (!provider)
483
+ return null;
484
+ const customIdx = provider.models.length;
485
+ return (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "\u2191\u2193: navigate | Enter: select | Esc: back" }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { children: ["Provider: ", _jsx(Text, { color: "cyan", children: provider.name })] }) }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { children: "Select model:" }), provider.models.map((m, i) => (_jsxs(Text, { color: i === modelCursor ? 'green' : undefined, children: [i === modelCursor ? '▶ ' : ' ', m] }, m))), _jsxs(Box, { children: [_jsxs(Text, { color: modelCursor === customIdx ? 'green' : 'cyan', children: [modelCursor === customIdx ? '▶ ' : ' ', "[custom]:", ' '] }), _jsx(TextInput, { value: customModel, onChange: setCustomModel, focus: modelCursor === customIdx, showCursor: modelCursor === customIdx, placeholder: "model-name" })] })] })] }));
486
+ })(), addStep === 'select-tier' && (() => {
487
+ const provider = providers.find((p) => p.id === pendingProviderId);
488
+ const usedTiers = new Set(formModels.map((m) => m.tier).filter(Boolean));
489
+ return (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "\u2191\u2193: navigate | Enter: confirm | Esc: back" }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { children: ["Model: ", _jsx(Text, { color: "cyan", children: pendingModel }), " (", provider?.name ?? '?', ")"] }) }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { children: "Assign tier:" }), TIERS.map((t, i) => (_jsxs(Text, { color: i === tierCursor ? 'green' : usedTiers.has(t) ? 'yellow' : undefined, children: [i === tierCursor ? '▶ ' : ' ', t, usedTiers.has(t) ? ' (already used — will be replaced visually)' : ''] }, t))), _jsxs(Text, { color: tierCursor === 3 ? 'green' : undefined, dimColor: tierCursor !== 3, children: [tierCursor === 3 ? '▶ ' : ' ', "skip (no tier \u2014 only valid for single-model profiles)"] })] }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: "Tip: small=ANTHROPIC_SMALL_FAST/HAIKU, base=ANTHROPIC_MODEL/SONNET, smart=OPUS." }) })] }));
490
+ })(), addStep === 'review' && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "\u2191\u2193: choose | Enter: confirm | Esc: back" }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { children: ["Profile: ", _jsx(Text, { color: "cyan", children: formName })] }), _jsxs(Text, { children: ["Models (", formModels.length, "):"] }), formModels.map((m, i) => {
491
+ const p = providers.find((pr) => pr.id === m.providerId);
492
+ return (_jsxs(Text, { children: [' • ', p?.name ?? '?', ": ", m.model, m.tier ? ` [${m.tier}]` : ''] }, i));
493
+ })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { color: reviewCursor === 0 ? 'green' : undefined, children: [reviewCursor === 0 ? '▶ ' : ' ', "[+ Add another model]"] }), _jsxs(Text, { color: reviewCursor === 1 ? 'green' : undefined, children: [reviewCursor === 1 ? '▶ ' : ' ', "[\u2713 Save profile]"] })] })] })), status && _jsx(Text, { color: "yellow", children: status })] }));
494
+ }
495
+ if (mode === 'edit' && editProfile) {
496
+ // Sub-flow render: adding a model
497
+ if (editSubStep !== null) {
498
+ const subTitle = editSubStep === 'select-provider' ? 'Select provider'
499
+ : editSubStep === 'select-model' ? 'Select model'
500
+ : 'Assign tier';
501
+ return (_jsxs(Box, { flexDirection: "column", padding: 1, children: [_jsxs(Text, { bold: true, children: ["Edit Profile \u2014 ", subTitle] }), _jsx(Text, { dimColor: true, children: "Esc: back" }), editSubStep === 'select-provider' && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "\u2191\u2193: navigate | Enter: select" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: providers.map((p, i) => (_jsxs(Text, { color: i === providerCursor ? 'green' : undefined, children: [i === providerCursor ? '▶ ' : ' ', p.name, " (", p.type, ", ", p.models.length, " models)"] }, p.id))) })] })), editSubStep === 'select-model' && (() => {
502
+ const provider = providers.find((p) => p.id === pendingProviderId);
503
+ if (!provider)
504
+ return null;
505
+ const customIdx = provider.models.length;
506
+ return (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "\u2191\u2193: navigate | Enter: select" }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { children: ["Provider: ", _jsx(Text, { color: "cyan", children: provider.name })] }) }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [provider.models.map((m, i) => (_jsxs(Text, { color: i === modelCursor ? 'green' : undefined, children: [i === modelCursor ? '▶ ' : ' ', m] }, m))), _jsxs(Box, { children: [_jsxs(Text, { color: modelCursor === customIdx ? 'green' : 'cyan', children: [modelCursor === customIdx ? '▶ ' : ' ', "[custom]:", ' '] }), _jsx(TextInput, { value: customModel, onChange: setCustomModel, focus: modelCursor === customIdx, showCursor: modelCursor === customIdx, placeholder: "model-name" })] })] })] }));
507
+ })(), editSubStep === 'select-tier' && (() => {
508
+ const provider = providers.find((p) => p.id === pendingProviderId);
509
+ const usedTiers = new Set(editModels.map((m) => m.tier).filter(Boolean));
510
+ return (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "\u2191\u2193: navigate | Enter: confirm" }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { children: ["Model: ", _jsx(Text, { color: "cyan", children: pendingModel }), " (", provider?.name ?? '?', ")"] }) }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [TIERS.map((t, i) => (_jsxs(Text, { color: i === tierCursor ? 'green' : usedTiers.has(t) ? 'yellow' : undefined, children: [i === tierCursor ? '▶ ' : ' ', t, usedTiers.has(t) ? ' (already used)' : ''] }, t))), _jsxs(Text, { color: tierCursor === 3 ? 'green' : undefined, dimColor: tierCursor !== 3, children: [tierCursor === 3 ? '▶ ' : ' ', "skip (no tier)"] })] })] }));
511
+ })(), status && _jsx(Text, { color: "yellow", children: status })] }));
512
+ }
513
+ // Main edit screen
514
+ return (_jsxs(Box, { flexDirection: "column", padding: 1, children: [_jsx(Text, { bold: true, children: "Edit Profile" }), _jsx(Text, { dimColor: true, children: "Tab: name/models focus | s: save | Esc: cancel" }), _jsxs(Box, { marginTop: 1, children: [_jsxs(Text, { color: editFocus === 'name' ? 'green' : undefined, children: [editFocus === 'name' ? '▶ ' : ' ', "Name:", ' '] }), _jsx(TextInput, { value: editName, onChange: setEditName, focus: editFocus === 'name', showCursor: editFocus === 'name' })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { dimColor: true, children: ["Models", editFocus === 'models' ? ' (↑↓ navigate | Shift+↑↓ reorder | d: delete | Enter on [+]: add)' : '', ":"] }), editModels.map((m, i) => {
515
+ const p = providers.find((pr) => pr.id === m.providerId);
516
+ const focused = editFocus === 'models' && i === editModelCursor;
517
+ return (_jsxs(Text, { color: focused ? 'green' : undefined, children: [focused ? '▶ ' : ' ', m.model, m.tier ? ` [${m.tier}]` : '', " (", p?.name ?? m.providerId.slice(0, 8) + '...', ")"] }, i));
518
+ }), _jsxs(Text, { color: "cyan", dimColor: !(editFocus === 'models' && editModelCursor === editModels.length), children: [editFocus === 'models' && editModelCursor === editModels.length ? '▶ ' : ' ', "[+ add model]"] })] }), status && _jsx(Text, { color: "yellow", children: status })] }));
519
+ }
520
+ if (mode === 'detail' && detailProfile) {
521
+ return (_jsxs(Box, { flexDirection: "column", padding: 1, children: [_jsx(Text, { bold: true, children: detailProfile.name }), _jsx(Text, { dimColor: true, children: "\u2191\u2193 navigate | a: add | d: delete | e: edit | Esc back" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: detailProfile.models.map((m, i) => {
522
+ const p = providers.find((pr) => pr.id === m.providerId);
523
+ return (_jsxs(Text, { color: i === detailModelIndex ? 'green' : undefined, children: [i === detailModelIndex ? '▶ ' : ' ', m.model, m.tier ? ` [${m.tier}]` : '', " (provider: ", p?.name ?? m.providerId.slice(0, 8) + '...', ")"] }, i));
524
+ }) })] }));
525
+ }
526
+ return (_jsxs(Box, { flexDirection: "column", padding: 1, children: [_jsx(Text, { bold: true, children: "Profiles" }), _jsx(Text, { dimColor: true, children: "\u2191\u2193 navigate | Enter: detail | a: add | d: delete | Esc: back" }), status && _jsx(Text, { color: "green", children: status }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [profiles.map((p, i) => (_jsxs(Text, { color: i === selectedIndex ? 'green' : undefined, children: [i === selectedIndex ? '▶ ' : ' ', p.name, " (", p.models.length, " models)"] }, p.id))), profiles.length === 0 && _jsx(Text, { dimColor: true, children: "No profiles. Press 'a' to add." })] })] }));
527
+ }
528
+ //# sourceMappingURL=Profiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Profiles.js","sourceRoot":"","sources":["../../../../src/tui/screens/Profiles.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ interface ProvidersProps {
3
+ onBack: () => void;
4
+ }
5
+ export declare function Providers({ onBack }: ProvidersProps): React.JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=Providers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Providers.d.ts","sourceRoot":"","sources":["../../../../src/tui/screens/Providers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAWhE,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAmBD,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAiTvE"}