@@ -437,12 +437,15 @@ export class Commands {
437437 if ( ! baseUrl ) {
438438 throw new Error ( "You are not logged in" ) ;
439439 }
440+ if ( treeItem . primaryAgentName === undefined ) {
441+ return ;
442+ }
440443 await openWorkspace (
441444 baseUrl ,
442445 treeItem . workspaceOwner ,
443446 treeItem . workspaceName ,
444- treeItem . workspaceAgent ,
445- treeItem . workspaceFolderPath ,
447+ treeItem . primaryAgentName ,
448+ treeItem . primaryAgentFolderPath ,
446449 true ,
447450 ) ;
448451 } else {
@@ -525,6 +528,8 @@ export class Commands {
525528 let folderPath : string | undefined ;
526529 let openRecent : boolean | undefined ;
527530
531+ let workspace : Workspace | undefined ;
532+
528533 const baseUrl = this . restClient . getAxiosInstance ( ) . defaults . baseURL ;
529534 if ( ! baseUrl ) {
530535 throw new Error ( "You are not logged in" ) ;
@@ -571,7 +576,7 @@ export class Commands {
571576 } ) ;
572577 } ) ;
573578 quickPick . show ( ) ;
574- const workspace = await new Promise < Workspace | undefined > ( ( resolve ) => {
579+ workspace = await new Promise < Workspace | undefined > ( ( resolve ) => {
575580 quickPick . onDidHide ( ( ) => {
576581 resolve ( undefined ) ;
577582 } ) ;
@@ -590,20 +595,31 @@ export class Commands {
590595 }
591596 workspaceOwner = workspace . owner_name ;
592597 workspaceName = workspace . name ;
598+ } else {
599+ workspaceOwner = args [ 0 ] as string ;
600+ workspaceName = args [ 1 ] as string ;
601+ workspaceAgent = args [ 2 ] as string | undefined ;
602+ folderPath = args [ 3 ] as string | undefined ;
603+ openRecent = args [ 4 ] as boolean | undefined ;
604+ }
605+
606+ if ( ! workspaceAgent ) {
607+ if ( workspace === undefined ) {
608+ workspace = await this . restClient . getWorkspaceByOwnerAndName (
609+ workspaceOwner ,
610+ workspaceName ,
611+ ) ;
612+ }
593613
594614 const agent = await this . maybeAskAgent ( workspace ) ;
595615 if ( ! agent ) {
596616 // User declined to pick an agent.
597617 return ;
598618 }
599- folderPath = agent . expanded_directory ;
619+ if ( ! folderPath ) {
620+ folderPath = agent . expanded_directory ;
621+ }
600622 workspaceAgent = agent . name ;
601- } else {
602- workspaceOwner = args [ 0 ] as string ;
603- workspaceName = args [ 1 ] as string ;
604- workspaceAgent = args [ 2 ] as string | undefined ;
605- folderPath = args [ 3 ] as string | undefined ;
606- openRecent = args [ 4 ] as boolean | undefined ;
607623 }
608624
609625 await openWorkspace (
@@ -679,7 +695,7 @@ async function openWorkspace(
679695 baseUrl : string ,
680696 workspaceOwner : string ,
681697 workspaceName : string ,
682- workspaceAgent : string | undefined ,
698+ workspaceAgent : string ,
683699 folderPath : string | undefined ,
684700 openRecent : boolean | undefined ,
685701) {
0 commit comments