ai-ip-plugin
Version:
AI-IP Plugin for MCP Workflow Management with SSE streaming and event handling
128 lines • 3.72 kB
JavaScript
;
/**
* 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