feat: remove legacy OpenCode runtime
Cut product flows over to Coding/Pi and retain only the migration-owned v1 boundary. Promote supported native optional packages because electron-builder omitted pnpm transitive optional closure from the packaged ASAR.
This commit is contained in:
@@ -4,6 +4,7 @@ import type {
|
||||
CodingProjectConfigSnapshot,
|
||||
CodingProjectSummary,
|
||||
} from '@/types/coding-project';
|
||||
import type { ProjectType } from '../../shared/project-config';
|
||||
|
||||
export interface CodingProjectCatalog {
|
||||
projects: CodingProjectSummary[];
|
||||
@@ -14,6 +15,52 @@ export async function listCodingProjects(): Promise<CodingProjectCatalog> {
|
||||
return await hostApiFetch<CodingProjectCatalog>('/api/coding/projects');
|
||||
}
|
||||
|
||||
export async function openCodingProject(projectPath: string): Promise<CodingProjectSummary> {
|
||||
const response = await hostApiFetch<{ project: CodingProjectSummary }>('/api/coding/projects/open', {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({ projectPath }),
|
||||
});
|
||||
return response.project;
|
||||
}
|
||||
|
||||
export async function createCodingProject(input: {
|
||||
projectPath?: string;
|
||||
parentPath?: string;
|
||||
projectName?: string;
|
||||
projectType?: ProjectType;
|
||||
}): Promise<CodingProjectConfigSnapshot> {
|
||||
const response = await hostApiFetch<{ snapshot: CodingProjectConfigSnapshot }>('/api/coding/projects/create', {
|
||||
method: 'POST',
|
||||
body: JSON.stringify(input),
|
||||
});
|
||||
return response.snapshot;
|
||||
}
|
||||
|
||||
export async function setActiveCodingProject(projectId: string): Promise<CodingProjectSummary> {
|
||||
const response = await hostApiFetch<{ project: CodingProjectSummary }>('/api/coding/projects/active', {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({ projectId }),
|
||||
});
|
||||
return response.project;
|
||||
}
|
||||
|
||||
export async function removeCodingProject(projectId: string): Promise<void> {
|
||||
await hostApiFetch('/api/coding/projects/remove', {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({ projectId }),
|
||||
});
|
||||
}
|
||||
|
||||
export async function acknowledgeLegacyCodingConversationNotice(
|
||||
projectId: string,
|
||||
): Promise<CodingProjectConfigSnapshot> {
|
||||
const response = await hostApiFetch<{ snapshot: CodingProjectConfigSnapshot }>(
|
||||
'/api/coding/projects/legacy-conversation-notice/acknowledge',
|
||||
{ method: 'POST', body: JSON.stringify({ projectId }) },
|
||||
);
|
||||
return response.snapshot;
|
||||
}
|
||||
|
||||
export async function getCodingProjectConfig(
|
||||
projectId: string,
|
||||
): Promise<CodingProjectConfigSnapshot> {
|
||||
|
||||
Reference in New Issue
Block a user