mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-05-21 15:36:48 +00:00
db5ad86381
* Refactor API fetch calls to use a unified fetch function; enhance chat history loading with new hooks and UI components - Replaced `fetchWithAuth` with a generic `fetch` function across various API modules for consistency. - Updated `useThreadStream` and `useThreadHistory` hooks to manage chat history loading, including loading states and pagination. - Introduced `LoadMoreHistoryIndicator` component for better user experience when loading more chat history. - Enhanced message handling in `MessageList` to accommodate new loading states and history management. - Added support for run messages in the thread context, improving the overall message handling logic. - Updated translations for loading indicators in English and Chinese. * Fix test assertions for run ordering in RunManager tests - Updated assertions in `test_list_by_thread` to reflect correct ordering of runs. - Modified `test_list_by_thread_is_stable_when_timestamps_tie` to ensure stable ordering when timestamps are tied.
64 lines
1.5 KiB
TypeScript
64 lines
1.5 KiB
TypeScript
import { fetch } from "@/core/api/fetcher";
|
|
import { getBackendBaseURL } from "@/core/config";
|
|
|
|
import type { Skill } from "./type";
|
|
|
|
export async function loadSkills() {
|
|
const skills = await fetch(`${getBackendBaseURL()}/api/skills`);
|
|
const json = await skills.json();
|
|
return json.skills as Skill[];
|
|
}
|
|
|
|
export async function enableSkill(skillName: string, enabled: boolean) {
|
|
const response = await fetch(
|
|
`${getBackendBaseURL()}/api/skills/${skillName}`,
|
|
{
|
|
method: "PUT",
|
|
headers: {
|
|
"Content-Type": "application/json",
|
|
},
|
|
body: JSON.stringify({
|
|
enabled,
|
|
}),
|
|
},
|
|
);
|
|
return response.json();
|
|
}
|
|
|
|
export interface InstallSkillRequest {
|
|
thread_id: string;
|
|
path: string;
|
|
}
|
|
|
|
export interface InstallSkillResponse {
|
|
success: boolean;
|
|
skill_name: string;
|
|
message: string;
|
|
}
|
|
|
|
export async function installSkill(
|
|
request: InstallSkillRequest,
|
|
): Promise<InstallSkillResponse> {
|
|
const response = await fetch(`${getBackendBaseURL()}/api/skills/install`, {
|
|
method: "POST",
|
|
headers: {
|
|
"Content-Type": "application/json",
|
|
},
|
|
body: JSON.stringify(request),
|
|
});
|
|
|
|
if (!response.ok) {
|
|
// Handle HTTP error responses (4xx, 5xx)
|
|
const errorData = await response.json().catch(() => ({}));
|
|
const errorMessage =
|
|
errorData.detail ?? `HTTP ${response.status}: ${response.statusText}`;
|
|
return {
|
|
success: false,
|
|
skill_name: "",
|
|
message: errorMessage,
|
|
};
|
|
}
|
|
|
|
return response.json();
|
|
}
|