@@ -125,6 +125,31 @@ describe("parseModelsCliOutput", () => {
125125 NodeAssert . ok ( model . variants ) ;
126126 NodeAssert . equal ( model . variants ! [ "medium" ] !== undefined , true ) ;
127127 } ) ;
128+
129+ it ( "keeps a model whose JSON body has a slash and no interior whitespace" , ( ) => {
130+ // OpenRouter-style: the model id contains a `/` and no string value has a
131+ // space, so the JSON body line itself matches the slug regex. It must still
132+ // be treated as the body of the preceding slug, not a new slug.
133+ const stdout = [
134+ "openrouter/qwen/qwen3-coder" ,
135+ JSON . stringify ( {
136+ id : "qwen/qwen3-coder" ,
137+ providerID : "openrouter" ,
138+ name : "qwen3-coder" ,
139+ status : "active" ,
140+ } ) ,
141+ ] . join ( "\n" ) ;
142+
143+ const result = parseModelsCliOutput ( stdout ) ;
144+ NodeAssert . equal ( result . providers . size , 1 ) ;
145+ NodeAssert . deepEqual ( [ ...result . connected ] , [ "openrouter" ] ) ;
146+ const provider = result . providers . get ( "openrouter" ) ! ;
147+ NodeAssert . ok ( provider ) ;
148+ const model = provider . models [ "qwen/qwen3-coder" ] ! ;
149+ NodeAssert . ok ( model ) ;
150+ NodeAssert . equal ( model . id , "qwen/qwen3-coder" ) ;
151+ NodeAssert . equal ( model . providerID , "openrouter" ) ;
152+ } ) ;
128153} ) ;
129154
130155describe ( "parseAgentListCliOutput" , ( ) => {
0 commit comments