@@ -88,6 +88,7 @@ describe("RuntimeFlags", () => {
8888 expect ( flags . enableExa ) . toBe ( false )
8989 expect ( flags . experimentalIconDiscovery ) . toBe ( false )
9090 expect ( flags . experimentalOxfmt ) . toBe ( false )
91+ expect ( flags . outputTokenMax ) . toBeUndefined ( )
9192 expect ( flags . bashDefaultTimeoutMs ) . toBe ( 1_000 )
9293 expect ( flags . enableExperimentalModels ) . toBe ( false )
9394 expect ( flags . client ) . toBe ( "cli" )
@@ -183,6 +184,35 @@ describe("RuntimeFlags", () => {
183184 )
184185 }
185186
187+ for ( const input of [
188+ { name : "absent" , config : { } , expected : undefined } ,
189+ {
190+ name : "valid positive integer" ,
191+ config : { OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX : "1234" } ,
192+ expected : 1234 ,
193+ } ,
194+ {
195+ name : "invalid string" ,
196+ config : { OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX : "nope" } ,
197+ expected : undefined ,
198+ } ,
199+ { name : "zero" , config : { OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX : "0" } , expected : undefined } ,
200+ { name : "negative" , config : { OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX : "-1" } , expected : undefined } ,
201+ {
202+ name : "non-integer" ,
203+ config : { OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX : "1.5" } ,
204+ expected : undefined ,
205+ } ,
206+ ] ) {
207+ it . effect ( `parses outputTokenMax from config: ${ input . name } ` , ( ) =>
208+ Effect . gen ( function * ( ) {
209+ const flags = yield * readFlags . pipe ( Effect . provide ( fromConfig ( input . config ) ) )
210+
211+ expect ( flags . outputTokenMax ) . toBe ( input . expected )
212+ } ) ,
213+ )
214+ }
215+
186216 it . effect ( "layer ignores the active ConfigProvider for omitted test overrides" , ( ) =>
187217 Effect . gen ( function * ( ) {
188218 const flags = yield * readFlags . pipe (
@@ -209,6 +239,7 @@ describe("RuntimeFlags", () => {
209239 expect ( flags . enableExa ) . toBe ( false )
210240 expect ( flags . experimentalIconDiscovery ) . toBe ( false )
211241 expect ( flags . experimentalOxfmt ) . toBe ( false )
242+ expect ( flags . outputTokenMax ) . toBeUndefined ( )
212243 expect ( flags . bashDefaultTimeoutMs ) . toBeUndefined ( )
213244 expect ( flags . client ) . toBe ( "cli" )
214245 } ) ,
0 commit comments