UNPKG

ai-ip-plugin

Version:

AI-IP Plugin for MCP Workflow Management with SSE streaming and event handling

128 lines 3.72 kB
"use strict"; /** * API Service Layer */ Object.defineProperty(exports, "__esModule", { value: true }); exports.apiService = exports.APIService = void 0; /** Default API Configuration */ const DEFAULT_CONFIG = { baseURL: "", timeout: 30000, }; /** API Endpoints */ const API_ENDPOINTS = { MCP_START: "/tasks/start", MCP_INTERRUPT: "/tasks/interrupt", MCP_CONTINUE: "/tasks/continue", MCP_RESUME: "/tasks/resume", MCP_HISTORY: "/tasks", MCP_STATE: "/tasks/state/get", }; class APIService { constructor(config = {}) { this.config = { ...DEFAULT_CONFIG, ...config }; } /** * Update API configuration */ updateConfig(config) { this.config = { ...this.config, ...config }; } /** * Get request headers */ getHeaders() { const headers = { "Content-Type": "application/json", }; if (this.config.token) { headers["Authorization"] = `Bearer ${this.config.token}`; } return headers; } /** * Start MCP workflow */ async startWorkflow(params) { const controller = new AbortController(); const signal = controller.signal; const responseData = await fetch(`${this.config.baseURL}${API_ENDPOINTS.MCP_START}`, { method: "POST", headers: this.getHeaders(), body: JSON.stringify(params), signal, }); return { responseData, controller }; } /** * Stop MCP workflow */ async stopWorkflow(params) { const responseData = await fetch(`${this.config.baseURL}${API_ENDPOINTS.MCP_INTERRUPT}`, { method: "POST", headers: this.getHeaders(), body: JSON.stringify(params), }); return responseData; } /** * Continue MCP workflow */ async continueWorkflow(params) { const controller = new AbortController(); const signal = controller.signal; const query = { ...params, taskId: Number(params.taskId), }; const responseData = await fetch(`${this.config.baseURL}${API_ENDPOINTS.MCP_CONTINUE}`, { method: "POST", headers: this.getHeaders(), body: JSON.stringify(query), signal, }); return { responseData, controller }; } /** * Resume MCP workflow */ async resumeWorkflow(params) { const controller = new AbortController(); const signal = controller.signal; const query = { ...params, taskId: Number(params.taskId), }; const responseData = await fetch(`${this.config.baseURL}${API_ENDPOINTS.MCP_RESUME}`, { method: "POST", headers: this.getHeaders(), body: JSON.stringify(query), signal, }); return { responseData, controller }; } /** * Get workflow history */ async getWorkflowHistory(taskId) { const responseData = await fetch(`${this.config.baseURL}${API_ENDPOINTS.MCP_HISTORY}/${taskId}/history`, { method: "GET", headers: this.getHeaders(), }); return responseData; } /** * Get workflow state data */ async getWorkflowStateData(taskId) { const responseData = await fetch(`${this.config.baseURL}${API_ENDPOINTS.MCP_STATE}?taskId=${taskId}`, { method: "GET", headers: this.getHeaders(), }); return responseData.json(); } } exports.APIService = APIService; // Export singleton instance exports.apiService = new APIService(); //# sourceMappingURL=api.js.map