a9e2dd3552
During refactoring verification found several remaining inconsistencies: API files (kebab-case naming): - Rename config_profiles.ts → config-profiles.ts - Rename tool_definitions.ts → tool-definitions.ts - Update all imports across 8 files Missing Python __init__.py (backend package structure): - Add utils/__init__.py - Add services/__init__.py - Add schemas/__init__.py - Add services/build/__init__.py Test file import fixes (component reorganization fallout): - DashboardPage.test.tsx: import from ./dashboard → ./DashboardPage - ProjectsPage.test.tsx: import from ./projects → ./ProjectsPage - event-toast-bridge.test.tsx: fix relative paths for moved components (../state/events → ../../../state/events, ./toast-rules → ../../toast-rules) - notification-center.test.tsx: fix relative path (../state/notifications → ../../../state/notifications) Quality gates: tsc --noEmit (pass), build (pass), py_compile (pass) Tests: 9/12 test files pass (3 pre-existing UI test failures unrelated to refactoring)
109 lines
2.5 KiB
TypeScript
109 lines
2.5 KiB
TypeScript
import { apiClient } from "./client";
|
|
|
|
export interface ToolDefinitionManifest {
|
|
id: string;
|
|
name: string;
|
|
display_name: string;
|
|
description: string | null;
|
|
category: string | null;
|
|
interface_type: string;
|
|
base_image: string | null;
|
|
base_definition_id: string | null;
|
|
base_version: string;
|
|
manifest: Record<string, unknown>;
|
|
dockerfile_cache: string | null;
|
|
compose_cache: string | null;
|
|
version: string;
|
|
is_base: boolean;
|
|
created_at: string;
|
|
updated_at: string;
|
|
}
|
|
|
|
export interface CreateToolDefinitionRequest {
|
|
name: string;
|
|
display_name: string;
|
|
description?: string;
|
|
category?: string;
|
|
interface_type?: string;
|
|
base_image?: string;
|
|
base_definition_id?: string;
|
|
base_version?: string;
|
|
manifest: Record<string, unknown>;
|
|
}
|
|
|
|
export interface UpdateToolDefinitionRequest {
|
|
display_name?: string;
|
|
description?: string;
|
|
category?: string;
|
|
manifest?: Record<string, unknown>;
|
|
base_version?: string;
|
|
}
|
|
|
|
export interface CompileResult {
|
|
id: string;
|
|
name: string;
|
|
dockerfile: string;
|
|
entrypoint: string;
|
|
compose: string;
|
|
image_tag: string;
|
|
}
|
|
|
|
export const listToolDefinitions = async (
|
|
includeBases = true,
|
|
): Promise<ToolDefinitionManifest[]> => {
|
|
const response = await apiClient.get<{
|
|
definitions: ToolDefinitionManifest[];
|
|
}>("/tool-definitions", {
|
|
params: { include_bases: includeBases },
|
|
});
|
|
return response.data.definitions;
|
|
};
|
|
|
|
export const getToolDefinition = async (
|
|
id: string,
|
|
): Promise<ToolDefinitionManifest> => {
|
|
const response = await apiClient.get<ToolDefinitionManifest>(
|
|
`/tool-definitions/${id}`,
|
|
);
|
|
return response.data;
|
|
};
|
|
|
|
export const createToolDefinition = async (
|
|
data: CreateToolDefinitionRequest,
|
|
): Promise<ToolDefinitionManifest> => {
|
|
const response = await apiClient.post<ToolDefinitionManifest>(
|
|
"/tool-definitions",
|
|
data,
|
|
);
|
|
return response.data;
|
|
};
|
|
|
|
export const updateToolDefinition = async (
|
|
id: string,
|
|
data: UpdateToolDefinitionRequest,
|
|
): Promise<ToolDefinitionManifest> => {
|
|
const response = await apiClient.put<ToolDefinitionManifest>(
|
|
`/tool-definitions/${id}`,
|
|
data,
|
|
);
|
|
return response.data;
|
|
};
|
|
|
|
export const deleteToolDefinition = async (
|
|
id: string,
|
|
): Promise<{ status: string; id: string }> => {
|
|
const response = await apiClient.delete<{ status: string; id: string }>(
|
|
`/tool-definitions/${id}`,
|
|
);
|
|
return response.data;
|
|
};
|
|
|
|
export const compileToolDefinition = async (
|
|
id: string,
|
|
): Promise<CompileResult> => {
|
|
const response = await apiClient.post<CompileResult>(
|
|
`/tool-definitions/${id}/compile`,
|
|
);
|
|
return response.data;
|
|
};
|