@team-agent/installer 0.5.107 → 0.5.109
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/Cargo.lock +1 -1
- package/Cargo.toml +1 -1
- package/crates/team-agent/src/cli/adapters.rs +1 -1
- package/crates/team-agent/src/cli/emit.rs +3 -3
- package/crates/team-agent/src/cli/mod.rs +87 -4
- package/crates/team-agent/src/cli/models.rs +252 -3
- package/crates/team-agent/src/cli/spec.rs +1 -1
- package/crates/team-agent/src/cli/status_port/brief.rs +379 -70
- package/crates/team-agent/src/cli/tests/shutdown_kill_plan.rs +184 -0
- package/crates/team-agent/src/cli/tests/status_brief.rs +624 -0
- package/crates/team-agent/src/provider/model_catalog.rs +343 -5
- package/crates/team-agent/src/provider/testdata/cursor-list-models-native.stdout +250 -0
- package/crates/team-agent/src/provider/testdata/grok-models-authenticated.stdout +9 -0
- package/crates/team-agent/src/provider/testdata/grok-models-unauthenticated.stdout +7 -0
- package/crates/team-agent/src/tmux_backend.rs +99 -2
- package/package.json +4 -4
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
Available models
|
|
2
|
+
|
|
3
|
+
auto - Auto (default)
|
|
4
|
+
gpt-5.3-codex-low - Codex 5.3 Low
|
|
5
|
+
gpt-5.3-codex-low-fast - Codex 5.3 Low Fast
|
|
6
|
+
gpt-5.3-codex - Codex 5.3
|
|
7
|
+
gpt-5.3-codex-fast - Codex 5.3 Fast
|
|
8
|
+
gpt-5.3-codex-high - Codex 5.3 High
|
|
9
|
+
gpt-5.3-codex-high-fast - Codex 5.3 High Fast
|
|
10
|
+
gpt-5.3-codex-xhigh - Codex 5.3 Extra High
|
|
11
|
+
gpt-5.3-codex-xhigh-fast - Codex 5.3 Extra High Fast
|
|
12
|
+
gpt-5.2 - GPT-5.2
|
|
13
|
+
composer-2.5 - Composer 2.5
|
|
14
|
+
claude-opus-5-thinking-high - Claude Opus 5 1M Thinking
|
|
15
|
+
claude-opus-5-thinking-high-fast - Claude Opus 5 1M Thinking Fast
|
|
16
|
+
gpt-5.6-sol-high - GPT-5.6 Sol 1M High
|
|
17
|
+
gpt-5.6-sol-high-fast - GPT-5.6 Sol 1M High Fast
|
|
18
|
+
gpt-5.6-sol-xhigh - GPT-5.6 Sol 1M Extra High
|
|
19
|
+
gpt-5.6-sol-xhigh-fast - GPT-5.6 Sol 1M Extra High Fast
|
|
20
|
+
claude-fable-5-thinking-high - Claude Fable 5 1M Thinking (NO ZDR)
|
|
21
|
+
claude-fable-5-thinking-xhigh - Claude Fable 5 1M Extra High Thinking (NO ZDR)
|
|
22
|
+
cursor-grok-4.5-high - Grok 4.5
|
|
23
|
+
cursor-grok-4.5-high-fast - Grok 4.5 Fast
|
|
24
|
+
gemini-3.7-flash-high - Gemini 3.7 Flash
|
|
25
|
+
claude-sonnet-5-thinking-high - Claude Sonnet 5 1M Thinking
|
|
26
|
+
claude-sonnet-5-thinking-xhigh - Claude Sonnet 5 1M Extra High Thinking
|
|
27
|
+
gpt-5.6-luna-high - GPT-5.6 Luna 1M High
|
|
28
|
+
grok-4.7-low - Grok 4.7 Low
|
|
29
|
+
grok-4.7-low-fast - Grok 4.7 Low Fast
|
|
30
|
+
grok-4.7-medium - Grok 4.7 Medium
|
|
31
|
+
grok-4.7-medium-fast - Grok 4.7 Medium Fast
|
|
32
|
+
grok-4.7-high - Grok 4.7 High
|
|
33
|
+
grok-4.7-high-fast - Grok 4.7 High Fast
|
|
34
|
+
grok-4.7-xhigh - Grok 4.7 Extra High
|
|
35
|
+
grok-4.7-xhigh-fast - Grok 4.7 Extra High Fast
|
|
36
|
+
cursor-grok-4.6-low - Grok 4.6 Low
|
|
37
|
+
cursor-grok-4.6-low-fast - Grok 4.6 Low Fast
|
|
38
|
+
cursor-grok-4.6-medium - Grok 4.6 Medium
|
|
39
|
+
cursor-grok-4.6-medium-fast - Grok 4.6 Medium Fast
|
|
40
|
+
cursor-grok-4.6-high - Grok 4.6
|
|
41
|
+
cursor-grok-4.6-high-fast - Grok 4.6 Fast
|
|
42
|
+
cursor-grok-4.6-xhigh - Grok 4.6 Extra High
|
|
43
|
+
cursor-grok-4.6-xhigh-fast - Grok 4.6 Extra High Fast
|
|
44
|
+
composer-2.5-fast - Composer 2.5 Fast
|
|
45
|
+
claude-opus-5-5-low - Claude Opus 5.5 1M Low
|
|
46
|
+
claude-opus-5-5-low-fast - Claude Opus 5.5 1M Low Fast
|
|
47
|
+
claude-opus-5-5-medium - Claude Opus 5.5 1M
|
|
48
|
+
claude-opus-5-5-medium-fast - Claude Opus 5.5 1M Fast
|
|
49
|
+
claude-opus-5-5-high - Claude Opus 5.5 1M High
|
|
50
|
+
claude-opus-5-5-high-fast - Claude Opus 5.5 1M High Fast
|
|
51
|
+
claude-opus-5-5-xhigh - Claude Opus 5.5 1M Extra High
|
|
52
|
+
claude-opus-5-5-xhigh-fast - Claude Opus 5.5 1M Extra High Fast
|
|
53
|
+
claude-opus-5-5-max - Claude Opus 5.5 1M Max
|
|
54
|
+
claude-opus-5-5-max-fast - Claude Opus 5.5 1M Max Fast
|
|
55
|
+
claude-opus-5-low - Claude Opus 5 1M Low
|
|
56
|
+
claude-opus-5-low-fast - Claude Opus 5 1M Low Fast
|
|
57
|
+
claude-opus-5-medium - Claude Opus 5 1M Medium
|
|
58
|
+
claude-opus-5-medium-fast - Claude Opus 5 1M Medium Fast
|
|
59
|
+
claude-opus-5-high - Claude Opus 5 1M
|
|
60
|
+
claude-opus-5-high-fast - Claude Opus 5 1M Fast
|
|
61
|
+
claude-opus-5-thinking-low - Claude Opus 5 1M Low Thinking
|
|
62
|
+
claude-opus-5-thinking-low-fast - Claude Opus 5 1M Low Thinking Fast
|
|
63
|
+
claude-opus-5-thinking-medium - Claude Opus 5 1M Medium Thinking
|
|
64
|
+
claude-opus-5-thinking-medium-fast - Claude Opus 5 1M Medium Thinking Fast
|
|
65
|
+
claude-opus-5-thinking-xhigh - Claude Opus 5 1M Extra High Thinking
|
|
66
|
+
claude-opus-5-thinking-xhigh-fast - Claude Opus 5 1M Extra High Thinking Fast
|
|
67
|
+
claude-opus-5-thinking-max - Claude Opus 5 1M Max Thinking
|
|
68
|
+
claude-opus-5-thinking-max-fast - Claude Opus 5 1M Max Thinking Fast
|
|
69
|
+
claude-opus-4-8-low - Claude Opus 4.8 1M Low
|
|
70
|
+
claude-opus-4-8-low-fast - Claude Opus 4.8 1M Low Fast
|
|
71
|
+
claude-opus-4-8-medium - Claude Opus 4.8 1M Medium
|
|
72
|
+
claude-opus-4-8-medium-fast - Claude Opus 4.8 1M Medium Fast
|
|
73
|
+
claude-opus-4-8-high - Claude Opus 4.8 1M
|
|
74
|
+
claude-opus-4-8-high-fast - Claude Opus 4.8 1M Fast
|
|
75
|
+
claude-opus-4-8-xhigh - Claude Opus 4.8 1M Extra High
|
|
76
|
+
claude-opus-4-8-xhigh-fast - Claude Opus 4.8 1M Extra High Fast
|
|
77
|
+
claude-opus-4-8-max - Claude Opus 4.8 1M Max
|
|
78
|
+
claude-opus-4-8-max-fast - Claude Opus 4.8 1M Max Fast
|
|
79
|
+
claude-opus-4-8-thinking-low - Claude Opus 4.8 1M Low Thinking
|
|
80
|
+
claude-opus-4-8-thinking-low-fast - Claude Opus 4.8 1M Low Thinking Fast
|
|
81
|
+
claude-opus-4-8-thinking-medium - Claude Opus 4.8 1M Medium Thinking
|
|
82
|
+
claude-opus-4-8-thinking-medium-fast - Claude Opus 4.8 1M Medium Thinking Fast
|
|
83
|
+
claude-opus-4-8-thinking-high - Claude Opus 4.8 1M Thinking
|
|
84
|
+
claude-opus-4-8-thinking-high-fast - Claude Opus 4.8 1M Thinking Fast
|
|
85
|
+
claude-opus-4-8-thinking-xhigh - Claude Opus 4.8 1M Extra High Thinking
|
|
86
|
+
claude-opus-4-8-thinking-xhigh-fast - Claude Opus 4.8 1M Extra High Thinking Fast
|
|
87
|
+
claude-opus-4-8-thinking-max - Claude Opus 4.8 1M Max Thinking
|
|
88
|
+
claude-opus-4-8-thinking-max-fast - Claude Opus 4.8 1M Max Thinking Fast
|
|
89
|
+
gpt-5.6-sol-none - GPT-5.6 Sol 1M None
|
|
90
|
+
gpt-5.6-sol-none-fast - GPT-5.6 Sol 1M None Fast
|
|
91
|
+
gpt-5.6-sol-low - GPT-5.6 Sol 1M Low
|
|
92
|
+
gpt-5.6-sol-low-fast - GPT-5.6 Sol 1M Low Fast
|
|
93
|
+
gpt-5.6-sol-medium - GPT-5.6 Sol 1M
|
|
94
|
+
gpt-5.6-sol-medium-fast - GPT-5.6 Sol 1M Fast
|
|
95
|
+
gpt-5.6-sol-max - GPT-5.6 Sol 1M Max
|
|
96
|
+
gpt-5.6-sol-max-fast - GPT-5.6 Sol 1M Max Fast
|
|
97
|
+
gpt-5.5-none - GPT-5.5 1M None
|
|
98
|
+
gpt-5.5-none-fast - GPT-5.5 None Fast
|
|
99
|
+
gpt-5.5-low - GPT-5.5 1M Low
|
|
100
|
+
gpt-5.5-low-fast - GPT-5.5 Low Fast
|
|
101
|
+
gpt-5.5-medium - GPT-5.5 1M
|
|
102
|
+
gpt-5.5-medium-fast - GPT-5.5 Fast
|
|
103
|
+
gpt-5.5-high - GPT-5.5 1M High
|
|
104
|
+
gpt-5.5-high-fast - GPT-5.5 High Fast
|
|
105
|
+
gpt-5.5-extra-high - GPT-5.5 1M Extra High
|
|
106
|
+
gpt-5.5-extra-high-fast - GPT-5.5 Extra High Fast
|
|
107
|
+
claude-fable-5-1-low - Claude Fable 5.1 1M Low (NO ZDR)
|
|
108
|
+
claude-fable-5-1-medium - Claude Fable 5.1 1M Medium (NO ZDR)
|
|
109
|
+
claude-fable-5-1-high - Claude Fable 5.1 1M (NO ZDR)
|
|
110
|
+
claude-fable-5-1-xhigh - Claude Fable 5.1 1M Extra High (NO ZDR)
|
|
111
|
+
claude-fable-5-1-max - Claude Fable 5.1 1M Max (NO ZDR)
|
|
112
|
+
claude-fable-5-1-thinking-low - Claude Fable 5.1 1M Low Thinking (NO ZDR)
|
|
113
|
+
claude-fable-5-1-thinking-medium - Claude Fable 5.1 1M Medium Thinking (NO ZDR)
|
|
114
|
+
claude-fable-5-1-thinking-high - Claude Fable 5.1 1M Thinking (NO ZDR)
|
|
115
|
+
claude-fable-5-1-thinking-xhigh - Claude Fable 5.1 1M Extra High Thinking (NO ZDR)
|
|
116
|
+
claude-fable-5-1-thinking-max - Claude Fable 5.1 1M Max Thinking (NO ZDR)
|
|
117
|
+
claude-fable-5-low - Claude Fable 5 1M Low (NO ZDR)
|
|
118
|
+
claude-fable-5-medium - Claude Fable 5 1M Medium (NO ZDR)
|
|
119
|
+
claude-fable-5-high - Claude Fable 5 1M (NO ZDR)
|
|
120
|
+
claude-fable-5-xhigh - Claude Fable 5 1M Extra High (NO ZDR)
|
|
121
|
+
claude-fable-5-max - Claude Fable 5 1M Max (NO ZDR)
|
|
122
|
+
claude-fable-5-thinking-low - Claude Fable 5 1M Low Thinking (NO ZDR)
|
|
123
|
+
claude-fable-5-thinking-medium - Claude Fable 5 1M Medium Thinking (NO ZDR)
|
|
124
|
+
claude-fable-5-thinking-max - Claude Fable 5 1M Max Thinking (NO ZDR)
|
|
125
|
+
cursor-grok-4.5-low - Grok 4.5 Low
|
|
126
|
+
cursor-grok-4.5-low-fast - Grok 4.5 Low Fast
|
|
127
|
+
cursor-grok-4.5-medium - Grok 4.5 Medium
|
|
128
|
+
cursor-grok-4.5-medium-fast - Grok 4.5 Medium Fast
|
|
129
|
+
gemini-3.8-flash-low - Gemini 3.8 Flash Low
|
|
130
|
+
gemini-3.8-flash-medium - Gemini 3.8 Flash Medium
|
|
131
|
+
gemini-3.8-flash-high - Gemini 3.8 Flash High
|
|
132
|
+
gemini-3.7-flash-low - Gemini 3.7 Flash Low
|
|
133
|
+
gemini-3.7-flash-medium - Gemini 3.7 Flash Medium
|
|
134
|
+
muse-spark-1.3-minimal - Muse Spark 1.3 1M Minimal
|
|
135
|
+
muse-spark-1.3-low - Muse Spark 1.3 1M Low
|
|
136
|
+
muse-spark-1.3-medium - Muse Spark 1.3 1M Medium
|
|
137
|
+
muse-spark-1.3-high - Muse Spark 1.3 1M
|
|
138
|
+
muse-spark-1.3-xhigh - Muse Spark 1.3 1M Extra High
|
|
139
|
+
muse-spark-1.3-max - Muse Spark 1.3 1M Max
|
|
140
|
+
gpt-5.6-terra-none - GPT-5.6 Terra 1M None
|
|
141
|
+
gpt-5.6-terra-none-fast - GPT-5.6 Terra 1M None Fast
|
|
142
|
+
gpt-5.6-terra-low - GPT-5.6 Terra 1M Low
|
|
143
|
+
gpt-5.6-terra-low-fast - GPT-5.6 Terra 1M Low Fast
|
|
144
|
+
gpt-5.6-terra-medium - GPT-5.6 Terra 1M
|
|
145
|
+
gpt-5.6-terra-medium-fast - GPT-5.6 Terra 1M Fast
|
|
146
|
+
gpt-5.6-terra-high - GPT-5.6 Terra 1M High
|
|
147
|
+
gpt-5.6-terra-high-fast - GPT-5.6 Terra 1M High Fast
|
|
148
|
+
gpt-5.6-terra-xhigh - GPT-5.6 Terra 1M Extra High
|
|
149
|
+
gpt-5.6-terra-xhigh-fast - GPT-5.6 Terra 1M Extra High Fast
|
|
150
|
+
gpt-5.6-terra-max - GPT-5.6 Terra 1M Max
|
|
151
|
+
gpt-5.6-terra-max-fast - GPT-5.6 Terra 1M Max Fast
|
|
152
|
+
claude-sonnet-5-5-low - Claude Sonnet 5.5 Low
|
|
153
|
+
claude-sonnet-5-5-medium - Claude Sonnet 5.5 Medium
|
|
154
|
+
claude-sonnet-5-5-high - Claude Sonnet 5.5 High
|
|
155
|
+
claude-sonnet-5-5-xhigh - Claude Sonnet 5.5 Extra High
|
|
156
|
+
claude-sonnet-5-5-max - Claude Sonnet 5.5 Max
|
|
157
|
+
claude-sonnet-5-low - Claude Sonnet 5 1M Low
|
|
158
|
+
claude-sonnet-5-medium - Claude Sonnet 5 1M Medium
|
|
159
|
+
claude-sonnet-5-high - Claude Sonnet 5 1M
|
|
160
|
+
claude-sonnet-5-xhigh - Claude Sonnet 5 1M Extra High
|
|
161
|
+
claude-sonnet-5-max - Claude Sonnet 5 1M Max
|
|
162
|
+
claude-sonnet-5-thinking-low - Claude Sonnet 5 1M Low Thinking
|
|
163
|
+
claude-sonnet-5-thinking-medium - Claude Sonnet 5 1M Medium Thinking
|
|
164
|
+
claude-sonnet-5-thinking-max - Claude Sonnet 5 1M Max Thinking
|
|
165
|
+
claude-4.6-sonnet-medium - Claude Sonnet 4.6 1M
|
|
166
|
+
claude-4.6-sonnet-medium-thinking - Claude Sonnet 4.6 1M Thinking
|
|
167
|
+
claude-opus-4-7-low - Claude Opus 4.7 1M Low
|
|
168
|
+
claude-opus-4-7-low-fast - Claude Opus 4.7 1M Low Fast
|
|
169
|
+
claude-opus-4-7-medium - Claude Opus 4.7 1M Medium
|
|
170
|
+
claude-opus-4-7-medium-fast - Claude Opus 4.7 1M Medium Fast
|
|
171
|
+
claude-opus-4-7-high - Claude Opus 4.7 1M High
|
|
172
|
+
claude-opus-4-7-high-fast - Claude Opus 4.7 1M High Fast
|
|
173
|
+
claude-opus-4-7-xhigh - Claude Opus 4.7 1M
|
|
174
|
+
claude-opus-4-7-xhigh-fast - Claude Opus 4.7 1M Fast
|
|
175
|
+
claude-opus-4-7-max - Claude Opus 4.7 1M Max
|
|
176
|
+
claude-opus-4-7-max-fast - Claude Opus 4.7 1M Max Fast
|
|
177
|
+
claude-opus-4-7-thinking-low - Claude Opus 4.7 1M Low Thinking
|
|
178
|
+
claude-opus-4-7-thinking-low-fast - Claude Opus 4.7 1M Low Thinking Fast
|
|
179
|
+
claude-opus-4-7-thinking-medium - Claude Opus 4.7 1M Medium Thinking
|
|
180
|
+
claude-opus-4-7-thinking-medium-fast - Claude Opus 4.7 1M Medium Thinking Fast
|
|
181
|
+
claude-opus-4-7-thinking-high - Claude Opus 4.7 1M High Thinking
|
|
182
|
+
claude-opus-4-7-thinking-high-fast - Claude Opus 4.7 1M High Thinking Fast
|
|
183
|
+
claude-opus-4-7-thinking-xhigh - Claude Opus 4.7 1M Thinking
|
|
184
|
+
claude-opus-4-7-thinking-xhigh-fast - Claude Opus 4.7 1M Thinking Fast
|
|
185
|
+
claude-opus-4-7-thinking-max - Claude Opus 4.7 1M Max Thinking
|
|
186
|
+
claude-opus-4-7-thinking-max-fast - Claude Opus 4.7 1M Max Thinking Fast
|
|
187
|
+
gpt-5.4-low - GPT-5.4 1M Low
|
|
188
|
+
gpt-5.4-medium - GPT-5.4 1M
|
|
189
|
+
gpt-5.4-medium-fast - GPT-5.4 Fast
|
|
190
|
+
gpt-5.4-high - GPT-5.4 1M High
|
|
191
|
+
gpt-5.4-high-fast - GPT-5.4 High Fast
|
|
192
|
+
gpt-5.4-xhigh - GPT-5.4 1M Extra High
|
|
193
|
+
gpt-5.4-xhigh-fast - GPT-5.4 Extra High Fast
|
|
194
|
+
claude-4.6-opus-high - Claude Opus 4.6 1M
|
|
195
|
+
claude-4.6-opus-max - Claude Opus 4.6 1M Max
|
|
196
|
+
claude-4.6-opus-high-thinking - Claude Opus 4.6 1M Thinking
|
|
197
|
+
claude-4.6-opus-max-thinking - Claude Opus 4.6 1M Max Thinking
|
|
198
|
+
claude-4.5-opus-high - Claude Opus 4.5
|
|
199
|
+
claude-4.5-opus-high-thinking - Claude Opus 4.5 Thinking
|
|
200
|
+
gpt-5.2-low - GPT-5.2 Low
|
|
201
|
+
gpt-5.2-low-fast - GPT-5.2 Low Fast
|
|
202
|
+
gpt-5.2-fast - GPT-5.2 Fast
|
|
203
|
+
gpt-5.2-high - GPT-5.2 High
|
|
204
|
+
gpt-5.2-high-fast - GPT-5.2 High Fast
|
|
205
|
+
gpt-5.2-xhigh - GPT-5.2 Extra High
|
|
206
|
+
gpt-5.2-xhigh-fast - GPT-5.2 Extra High Fast
|
|
207
|
+
gpt-5.6-luna-none - GPT-5.6 Luna 1M None
|
|
208
|
+
gpt-5.6-luna-none-fast - GPT-5.6 Luna 1M None Fast
|
|
209
|
+
gpt-5.6-luna-low - GPT-5.6 Luna 1M Low (current)
|
|
210
|
+
gpt-5.6-luna-low-fast - GPT-5.6 Luna 1M Low Fast
|
|
211
|
+
gpt-5.6-luna-medium - GPT-5.6 Luna 1M
|
|
212
|
+
gpt-5.6-luna-medium-fast - GPT-5.6 Luna 1M Fast
|
|
213
|
+
gpt-5.6-luna-high-fast - GPT-5.6 Luna 1M High Fast
|
|
214
|
+
gpt-5.6-luna-xhigh - GPT-5.6 Luna 1M Extra High
|
|
215
|
+
gpt-5.6-luna-xhigh-fast - GPT-5.6 Luna 1M Extra High Fast
|
|
216
|
+
gpt-5.6-luna-max - GPT-5.6 Luna 1M Max
|
|
217
|
+
gpt-5.6-luna-max-fast - GPT-5.6 Luna 1M Max Fast
|
|
218
|
+
gemini-3.6-flash-minimal - Gemini 3.6 Flash Minimal
|
|
219
|
+
gemini-3.6-flash-low - Gemini 3.6 Flash Low
|
|
220
|
+
gemini-3.6-flash-medium - Gemini 3.6 Flash Medium
|
|
221
|
+
gemini-3.6-flash-high - Gemini 3.6 Flash
|
|
222
|
+
gemini-3.1-pro - Gemini 3.1 Pro
|
|
223
|
+
gpt-5.4-mini-none - GPT-5.4 Mini None
|
|
224
|
+
gpt-5.4-mini-low - GPT-5.4 Mini Low
|
|
225
|
+
gpt-5.4-mini-medium - GPT-5.4 Mini
|
|
226
|
+
gpt-5.4-mini-high - GPT-5.4 Mini High
|
|
227
|
+
gpt-5.4-mini-xhigh - GPT-5.4 Mini Extra High
|
|
228
|
+
gpt-5.4-nano-none - GPT-5.4 Nano None
|
|
229
|
+
gpt-5.4-nano-low - GPT-5.4 Nano Low
|
|
230
|
+
gpt-5.4-nano-medium - GPT-5.4 Nano
|
|
231
|
+
gpt-5.4-nano-high - GPT-5.4 Nano High
|
|
232
|
+
gpt-5.4-nano-xhigh - GPT-5.4 Nano Extra High
|
|
233
|
+
claude-4.5-sonnet - Claude Sonnet 4.5
|
|
234
|
+
claude-4.5-sonnet-thinking - Claude Sonnet 4.5 Thinking
|
|
235
|
+
gpt-5.1-low - GPT-5.1 Low
|
|
236
|
+
gpt-5.1 - GPT-5.1
|
|
237
|
+
gpt-5.1-high - GPT-5.1 High
|
|
238
|
+
gemini-3-flash - Gemini 3 Flash
|
|
239
|
+
gemini-3.5-flash - Gemini 3.5 Flash
|
|
240
|
+
claude-4-sonnet - Claude Sonnet 4
|
|
241
|
+
claude-4-sonnet-thinking - Claude Sonnet 4 Thinking
|
|
242
|
+
gpt-5-mini - GPT-5 Mini
|
|
243
|
+
kimi-k3-low - Kimi K3 Low
|
|
244
|
+
kimi-k3-high - Kimi K3 High
|
|
245
|
+
kimi-k3-max - Kimi K3
|
|
246
|
+
kimi-k2.7-code - Kimi K2.7 Code
|
|
247
|
+
glm-5.2-high - GLM 5.2
|
|
248
|
+
glm-5.2-max - GLM 5.2 Max
|
|
249
|
+
|
|
250
|
+
Tip: use --model <id> (or /model <id> in interactive mode) to switch. Parameterized models also accept quoted overrides, e.g. --model 'claude-opus-4-8[context=1m,effort=high,fast=false]'.
|
|
@@ -173,11 +173,14 @@ impl RealCommandRunner {
|
|
|
173
173
|
let stdout_thread = std::thread::spawn(move || read_pipe(stdout));
|
|
174
174
|
let stderr_thread = std::thread::spawn(move || read_pipe(stderr));
|
|
175
175
|
let deadline = Instant::now() + COMMAND_TIMEOUT;
|
|
176
|
+
// Observe short-lived commands promptly; retain the old cadence for long ones.
|
|
177
|
+
let mut poll_interval = Duration::from_millis(1);
|
|
176
178
|
let status = loop {
|
|
177
179
|
if let Some(status) = child.try_wait()? {
|
|
178
180
|
break status;
|
|
179
181
|
}
|
|
180
|
-
|
|
182
|
+
let now = Instant::now();
|
|
183
|
+
if now >= deadline {
|
|
181
184
|
child.kill()?;
|
|
182
185
|
child.wait()?;
|
|
183
186
|
let _ = join_pipe_reader(stdout_thread)?;
|
|
@@ -187,7 +190,8 @@ impl RealCommandRunner {
|
|
|
187
190
|
format!("{program} exceeded 5s timeout"),
|
|
188
191
|
));
|
|
189
192
|
}
|
|
190
|
-
std::thread::sleep(
|
|
193
|
+
std::thread::sleep(poll_interval.min(deadline.saturating_duration_since(now)));
|
|
194
|
+
poll_interval = (poll_interval * 2).min(Duration::from_millis(25));
|
|
191
195
|
};
|
|
192
196
|
let stdout = join_pipe_reader(stdout_thread)?;
|
|
193
197
|
let stderr = join_pipe_reader(stderr_thread)?;
|
|
@@ -4315,3 +4319,96 @@ fn non_empty(raw: &str) -> Option<&str> {
|
|
|
4315
4319
|
// tmux is a Unix concept), the test module stays Unix-only.
|
|
4316
4320
|
#[cfg(all(test, unix))]
|
|
4317
4321
|
mod tests;
|
|
4322
|
+
|
|
4323
|
+
#[cfg(all(test, unix))]
|
|
4324
|
+
mod command_runner_regressions {
|
|
4325
|
+
use super::{CommandRunner, RealCommandRunner, COMMAND_TIMEOUT};
|
|
4326
|
+
use std::io::ErrorKind;
|
|
4327
|
+
use std::time::{Duration, Instant, SystemTime, UNIX_EPOCH};
|
|
4328
|
+
|
|
4329
|
+
fn shell(command: &str) -> Vec<String> {
|
|
4330
|
+
vec!["/bin/sh".into(), "-c".into(), command.into()]
|
|
4331
|
+
}
|
|
4332
|
+
|
|
4333
|
+
#[test]
|
|
4334
|
+
fn nonzero_exit_preserves_both_outputs_and_lossy_utf8() {
|
|
4335
|
+
let output = RealCommandRunner
|
|
4336
|
+
.run(&shell("printf 'stdout\\377'; printf 'stderr\\376' >&2; exit 17"))
|
|
4337
|
+
.unwrap();
|
|
4338
|
+
assert!(!output.success);
|
|
4339
|
+
assert_eq!(output.code, Some(17));
|
|
4340
|
+
assert_eq!(output.stdout, "stdout\u{fffd}");
|
|
4341
|
+
assert_eq!(output.stderr, "stderr\u{fffd}");
|
|
4342
|
+
}
|
|
4343
|
+
|
|
4344
|
+
#[test]
|
|
4345
|
+
fn stdin_is_delivered_and_closed_before_waiting_for_exit() {
|
|
4346
|
+
let input = "first line\nsecond λ line\n".repeat(32);
|
|
4347
|
+
let output = RealCommandRunner
|
|
4348
|
+
.run_with_stdin(&["/bin/cat".into()], &input)
|
|
4349
|
+
.unwrap();
|
|
4350
|
+
assert!(output.success);
|
|
4351
|
+
assert_eq!(output.code, Some(0));
|
|
4352
|
+
assert_eq!(output.stdout, input);
|
|
4353
|
+
assert_eq!(output.stderr, "");
|
|
4354
|
+
}
|
|
4355
|
+
|
|
4356
|
+
#[test]
|
|
4357
|
+
fn signal_exit_retains_absent_exit_code() {
|
|
4358
|
+
let output = RealCommandRunner.run(&shell("kill -TERM $$")).unwrap();
|
|
4359
|
+
assert!(!output.success);
|
|
4360
|
+
assert_eq!(output.code, None);
|
|
4361
|
+
}
|
|
4362
|
+
|
|
4363
|
+
#[test]
|
|
4364
|
+
fn drains_stdout_and_stderr_beyond_pipe_capacity() {
|
|
4365
|
+
let output = RealCommandRunner
|
|
4366
|
+
.run(&shell(
|
|
4367
|
+
"i=0; while [ \"$i\" -lt 20000 ]; do printf 'out\\n'; printf 'err\\n' >&2; i=$((i+1)); done",
|
|
4368
|
+
))
|
|
4369
|
+
.unwrap();
|
|
4370
|
+
assert!(output.success);
|
|
4371
|
+
assert_eq!(output.code, Some(0));
|
|
4372
|
+
assert_eq!(output.stdout, "out\n".repeat(20000));
|
|
4373
|
+
assert_eq!(output.stderr, "err\n".repeat(20000));
|
|
4374
|
+
}
|
|
4375
|
+
|
|
4376
|
+
#[test]
|
|
4377
|
+
fn timeout_keeps_five_second_budget_and_reaps_the_owned_child() {
|
|
4378
|
+
let nonce = SystemTime::now()
|
|
4379
|
+
.duration_since(UNIX_EPOCH)
|
|
4380
|
+
.unwrap()
|
|
4381
|
+
.as_nanos();
|
|
4382
|
+
let pid_path = std::env::temp_dir().join(format!(
|
|
4383
|
+
"team-agent-runner-timeout-{}-{nonce}.pid",
|
|
4384
|
+
std::process::id()
|
|
4385
|
+
));
|
|
4386
|
+
let file = std::fs::OpenOptions::new()
|
|
4387
|
+
.write(true)
|
|
4388
|
+
.create_new(true)
|
|
4389
|
+
.open(&pid_path)
|
|
4390
|
+
.unwrap();
|
|
4391
|
+
drop(file);
|
|
4392
|
+
// exec keeps one owned PID and closes both pipes when the runner kills it.
|
|
4393
|
+
let mut argv = shell("printf '%s' \"$$\" > \"$1\"; exec /bin/sleep 30");
|
|
4394
|
+
argv.extend([
|
|
4395
|
+
"runner-timeout-test".into(),
|
|
4396
|
+
pid_path.to_string_lossy().into_owned(),
|
|
4397
|
+
]);
|
|
4398
|
+
let started = Instant::now();
|
|
4399
|
+
let error = RealCommandRunner.run(&argv).unwrap_err();
|
|
4400
|
+
let elapsed = started.elapsed();
|
|
4401
|
+
let pid: i32 = std::fs::read_to_string(&pid_path).unwrap().parse().unwrap();
|
|
4402
|
+
std::fs::remove_file(pid_path).unwrap();
|
|
4403
|
+
assert_eq!(error.kind(), ErrorKind::TimedOut);
|
|
4404
|
+
assert!(elapsed >= COMMAND_TIMEOUT);
|
|
4405
|
+
assert!(elapsed < COMMAND_TIMEOUT + Duration::from_secs(2));
|
|
4406
|
+
assert!(pid > 1);
|
|
4407
|
+
// SAFETY: signal 0 only probes the exact child PID recorded by this fixture.
|
|
4408
|
+
assert_eq!(unsafe { libc::kill(pid, 0) }, -1);
|
|
4409
|
+
assert_eq!(
|
|
4410
|
+
std::io::Error::last_os_error().raw_os_error(),
|
|
4411
|
+
Some(libc::ESRCH)
|
|
4412
|
+
);
|
|
4413
|
+
}
|
|
4414
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@team-agent/installer",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.109",
|
|
4
4
|
"description": "npx installer for Team Agent",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"codex",
|
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
"team-agent-installer": "npm/install.mjs"
|
|
21
21
|
},
|
|
22
22
|
"optionalDependencies": {
|
|
23
|
-
"@team-agent/cli-darwin-arm64": "0.5.
|
|
24
|
-
"@team-agent/cli-darwin-x64": "0.5.
|
|
25
|
-
"@team-agent/cli-linux-x64": "0.5.
|
|
23
|
+
"@team-agent/cli-darwin-arm64": "0.5.109",
|
|
24
|
+
"@team-agent/cli-darwin-x64": "0.5.109",
|
|
25
|
+
"@team-agent/cli-linux-x64": "0.5.109"
|
|
26
26
|
},
|
|
27
27
|
"scripts": {
|
|
28
28
|
"postinstall": "node npm/bincheck.mjs",
|