Add a keyboard-driven project setup flow (#2097)
* feat(projects): add keyboard-driven project setup * test(app): update add project loading assertion * fix(projects): harden GitHub project setup
This commit is contained in:
@@ -55,7 +55,9 @@ import type {
|
||||
PaseoWorktreeArchiveResponse,
|
||||
ProjectIconResponse,
|
||||
ProjectAddResponse,
|
||||
ProjectCreateDirectoryResponse,
|
||||
OpenProjectResponseMessage,
|
||||
WorkspaceGithubSearchRepositoriesResponse,
|
||||
WorkspaceGithubCloneProtocol,
|
||||
WorkspaceGithubCloneResponse,
|
||||
ArchiveWorkspaceResponseMessage,
|
||||
@@ -763,6 +765,9 @@ export interface RenameTerminalInput {
|
||||
}
|
||||
type OpenProjectPayload = OpenProjectResponseMessage["payload"];
|
||||
type ProjectAddPayload = ProjectAddResponse["payload"];
|
||||
export type ProjectCreateDirectoryPayload = ProjectCreateDirectoryResponse["payload"];
|
||||
export type WorkspaceGithubSearchRepositoriesPayload =
|
||||
WorkspaceGithubSearchRepositoriesResponse["payload"];
|
||||
type WorkspaceGithubClonePayload = WorkspaceGithubCloneResponse["payload"];
|
||||
type ArchiveWorkspacePayload = ArchiveWorkspaceResponseMessage["payload"];
|
||||
type WorkspaceSetupStatusPayload = WorkspaceSetupStatusResponseMessage["payload"];
|
||||
@@ -1994,6 +1999,36 @@ export class DaemonClient {
|
||||
});
|
||||
}
|
||||
|
||||
async createProjectDirectory(
|
||||
input: { parentPath: string; name: string },
|
||||
requestId?: string,
|
||||
): Promise<ProjectCreateDirectoryPayload> {
|
||||
return this.sendNamespacedCorrelatedSessionRequest<"project.create_directory.response">({
|
||||
requestId,
|
||||
message: {
|
||||
type: "project.create_directory.request",
|
||||
parentPath: input.parentPath,
|
||||
name: input.name,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
async searchGithubRepositories(
|
||||
input: { query: string; limit?: number },
|
||||
requestId?: string,
|
||||
): Promise<WorkspaceGithubSearchRepositoriesPayload> {
|
||||
return this.sendNamespacedCorrelatedSessionRequest<"workspace.github.search_repositories.response">(
|
||||
{
|
||||
requestId,
|
||||
message: {
|
||||
type: "workspace.github.search_repositories.request",
|
||||
query: input.query,
|
||||
limit: input.limit,
|
||||
},
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
async cloneGithubWorkspace(
|
||||
input: { repo: string; targetDirectory: string; cloneProtocol?: WorkspaceGithubCloneProtocol },
|
||||
requestId?: string,
|
||||
|
||||
Reference in New Issue
Block a user