Download frontend/src/models/agentFlows.js from leowuming/rag: direct link, hf CLI and curl.
- Browser
- Download file 4.54 kB
-
https://huggingface.co/spaces/leowuming/rag/resolve/main/frontend/src/models/agentFlows.js
- Command line
-
hf download hf://spaces/leowuming/rag/frontend/src/models/agentFlows.js
-
curl -L -o agentFlows.js https://huggingface.co/spaces/leowuming/rag/resolve/main/frontend/src/models/agentFlows.js
4.54 kB
| import { API_BASE } from "@/utils/constants"; | |
| import { baseHeaders } from "@/utils/request"; | |
| const AgentFlows = { | |
| /** | |
| * Save a flow configuration | |
| * @param {string} name - Display name of the flow | |
| * @param {object} config - The configuration object for the flow | |
| * @param {string} [uuid] - Optional UUID for updating existing flow | |
| * @returns {Promise<{success: boolean, error: string | null, flow: {name: string, config: object, uuid: string} | null}>} | |
| */ | |
| saveFlow: async (name, config, uuid = null) => { | |
| return await fetch(`${API_BASE}/agent-flows/save`, { | |
| method: "POST", | |
| headers: { | |
| ...baseHeaders(), | |
| "Content-Type": "application/json", | |
| }, | |
| body: JSON.stringify({ name, config, uuid }), | |
| }) | |
| .then((res) => { | |
| if (!res.ok) throw new Error(res.error || "Failed to save flow"); | |
| return res; | |
| }) | |
| .then((res) => res.json()) | |
| .catch((e) => ({ | |
| success: false, | |
| error: e.message, | |
| flow: null, | |
| })); | |
| }, | |
| /** | |
| * List all available flows in the system | |
| * @returns {Promise<{success: boolean, error: string | null, flows: Array<{name: string, uuid: string, description: string, steps: Array}>}>} | |
| */ | |
| listFlows: async () => { | |
| return await fetch(`${API_BASE}/agent-flows/list`, { | |
| method: "GET", | |
| headers: baseHeaders(), | |
| }) | |
| .then((res) => res.json()) | |
| .catch((e) => ({ | |
| success: false, | |
| error: e.message, | |
| flows: [], | |
| })); | |
| }, | |
| /** | |
| * Get a specific flow by UUID | |
| * @param {string} uuid - The UUID of the flow to retrieve | |
| * @returns {Promise<{success: boolean, error: string | null, flow: {name: string, config: object, uuid: string} | null}>} | |
| */ | |
| getFlow: async (uuid) => { | |
| return await fetch(`${API_BASE}/agent-flows/${uuid}`, { | |
| method: "GET", | |
| headers: baseHeaders(), | |
| }) | |
| .then((res) => { | |
| if (!res.ok) throw new Error(response.error || "Failed to get flow"); | |
| return res; | |
| }) | |
| .then((res) => res.json()) | |
| .catch((e) => ({ | |
| success: false, | |
| error: e.message, | |
| flow: null, | |
| })); | |
| }, | |
| /** | |
| * Execute a specific flow | |
| * @param {string} uuid - The UUID of the flow to run | |
| * @param {object} variables - Optional variables to pass to the flow | |
| * @returns {Promise<{success: boolean, error: string | null, results: object | null}>} | |
| */ | |
| // runFlow: async (uuid, variables = {}) => { | |
| // return await fetch(`${API_BASE}/agent-flows/${uuid}/run`, { | |
| // method: "POST", | |
| // headers: { | |
| // ...baseHeaders(), | |
| // "Content-Type": "application/json", | |
| // }, | |
| // body: JSON.stringify({ variables }), | |
| // }) | |
| // .then((res) => { | |
| // if (!res.ok) throw new Error(response.error || "Failed to run flow"); | |
| // return res; | |
| // }) | |
| // .then((res) => res.json()) | |
| // .catch((e) => ({ | |
| // success: false, | |
| // error: e.message, | |
| // results: null, | |
| // })); | |
| // }, | |
| /** | |
| * Delete a specific flow | |
| * @param {string} uuid - The UUID of the flow to delete | |
| * @returns {Promise<{success: boolean, error: string | null}>} | |
| */ | |
| deleteFlow: async (uuid) => { | |
| return await fetch(`${API_BASE}/agent-flows/${uuid}`, { | |
| method: "DELETE", | |
| headers: baseHeaders(), | |
| }) | |
| .then((res) => { | |
| if (!res.ok) throw new Error(response.error || "Failed to delete flow"); | |
| return res; | |
| }) | |
| .then((res) => res.json()) | |
| .catch((e) => ({ | |
| success: false, | |
| error: e.message, | |
| })); | |
| }, | |
| /** | |
| * Toggle a flow's active status | |
| * @param {string} uuid - The UUID of the flow to toggle | |
| * @param {boolean} active - The new active status | |
| * @returns {Promise<{success: boolean, error: string | null}>} | |
| */ | |
| toggleFlow: async (uuid, active) => { | |
| try { | |
| const result = await fetch(`${API_BASE}/agent-flows/${uuid}/toggle`, { | |
| method: "POST", | |
| headers: { | |
| ...baseHeaders(), | |
| "Content-Type": "application/json", | |
| }, | |
| body: JSON.stringify({ active }), | |
| }) | |
| .then((res) => { | |
| if (!res.ok) throw new Error(res.error || "Failed to toggle flow"); | |
| return res; | |
| }) | |
| .then((res) => res.json()); | |
| return { success: true, flow: result.flow }; | |
| } catch (error) { | |
| console.error("Failed to toggle flow:", error); | |
| return { success: false, error: error.message }; | |
| } | |
| }, | |
| }; | |
| export default AgentFlows; | |