@@ -7,6 +7,7 @@ import crypto from "node:crypto";
77import type { Duplex } from "node:stream" ;
88
99import {
10+ DEFAULT_MODEL ,
1011 EDITORS ,
1112 WS_CHANNELS ,
1213 WS_METHODS ,
@@ -304,7 +305,8 @@ export function createServer(options: ServerOptions) {
304305 switch ( request . method ) {
305306 case WS_METHODS . providersStartSession : {
306307 const session = await providerManager . startSession ( request . params as never ) ;
307- const uiThreadId = typeof paramsObj . uiThreadId === "string" ? paramsObj . uiThreadId : undefined ;
308+ const uiThreadId =
309+ typeof paramsObj . uiThreadId === "string" ? paramsObj . uiThreadId : undefined ;
308310 if ( uiThreadId ) {
309311 await coreRuntime . bindProviderSession ( uiThreadId , session ) ;
310312 }
@@ -313,8 +315,11 @@ export function createServer(options: ServerOptions) {
313315
314316 case WS_METHODS . providersSendTurn : {
315317 const sessionId = typeof paramsObj . sessionId === "string" ? paramsObj . sessionId : undefined ;
316- const uiThreadId = typeof paramsObj . uiThreadId === "string" ? paramsObj . uiThreadId : undefined ;
317- const targetThread = uiThreadId ? state . threads . find ( ( thread ) => thread . id === uiThreadId ) : findThreadBySessionId ( sessionId ) ;
318+ const uiThreadId =
319+ typeof paramsObj . uiThreadId === "string" ? paramsObj . uiThreadId : undefined ;
320+ const targetThread = uiThreadId
321+ ? state . threads . find ( ( thread ) => thread . id === uiThreadId )
322+ : findThreadBySessionId ( sessionId ) ;
318323 const inputText = typeof paramsObj . input === "string" ? paramsObj . input : undefined ;
319324 if ( targetThread && inputText && inputText . trim ( ) . length > 0 ) {
320325 await coreRuntime . dispatch ( {
@@ -363,52 +368,49 @@ export function createServer(options: ServerOptions) {
363368 case WS_METHODS . projectsList :
364369 return projectRegistry . list ( ) ;
365370
366- case WS_METHODS . projectsAdd :
367- {
368- const result = projectRegistry . add ( request . params as never ) ;
371+ case WS_METHODS . projectsAdd : {
372+ const result = projectRegistry . add ( request . params as never ) ;
373+ await coreRuntime . dispatch ( {
374+ id : crypto . randomUUID ( ) ,
375+ type : "project.add" ,
376+ issuedAt : requestNow ,
377+ payload : {
378+ id : result . project . id ,
379+ name : result . project . name ,
380+ cwd : result . project . cwd ,
381+ model : DEFAULT_MODEL ,
382+ scripts : result . project . scripts ,
383+ } ,
384+ } ) ;
385+ return result ;
386+ }
387+
388+ case WS_METHODS . projectsRemove : {
389+ const projectId = typeof paramsObj . id === "string" ? paramsObj . id : undefined ;
390+ if ( projectId ) {
369391 await coreRuntime . dispatch ( {
370392 id : crypto . randomUUID ( ) ,
371- type : "project.add " ,
393+ type : "project.remove " ,
372394 issuedAt : requestNow ,
373- payload : {
374- id : result . project . id ,
375- name : result . project . name ,
376- cwd : result . project . cwd ,
377- model : "gpt-5-codex" ,
378- scripts : result . project . scripts ,
379- } ,
395+ payload : { id : projectId } ,
380396 } ) ;
381- return result ;
382397 }
383-
384- case WS_METHODS . projectsRemove :
385- {
386- const projectId = typeof paramsObj . id === "string" ? paramsObj . id : undefined ;
387- if ( projectId ) {
388- await coreRuntime . dispatch ( {
389- id : crypto . randomUUID ( ) ,
390- type : "project.remove" ,
391- issuedAt : requestNow ,
392- payload : { id : projectId } ,
393- } ) ;
394- }
395398 projectRegistry . remove ( request . params as never ) ;
396399 return undefined ;
397- }
400+ }
398401
399402 case WS_METHODS . projectsSearchEntries :
400403 return searchWorkspaceEntries ( request . params as never ) ;
401- case WS_METHODS . projectsUpdateScripts :
402- {
403- const result = projectRegistry . updateScripts ( request . params as never ) ;
404- await coreRuntime . dispatch ( {
405- id : crypto . randomUUID ( ) ,
406- type : "project.updateScripts" ,
407- issuedAt : requestNow ,
408- payload : { id : result . project . id , scripts : result . project . scripts } ,
409- } ) ;
410- return result ;
411- }
404+ case WS_METHODS . projectsUpdateScripts : {
405+ const result = projectRegistry . updateScripts ( request . params as never ) ;
406+ await coreRuntime . dispatch ( {
407+ id : crypto . randomUUID ( ) ,
408+ type : "project.updateScripts" ,
409+ issuedAt : requestNow ,
410+ payload : { id : result . project . id , scripts : result . project . scripts } ,
411+ } ) ;
412+ return result ;
413+ }
412414
413415 case WS_METHODS . shellOpenInEditor : {
414416 const params = request . params as {
0 commit comments