fix: complete refactoring integration — rename remaining snake_case API files and fix test imports

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)
This commit is contained in:
Developer
2026-06-05 09:30:44 +00:00
parent 6553a8845b
commit a9e2dd3552
16 changed files with 16 additions and 16 deletions
+108
View File
@@ -0,0 +1,108 @@
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;
};