@agentx-ai/agentx-js
Version:
Official JavaScript/TypeScript SDK for AgentX (https://www.agentx.so/)
109 lines • 4.17 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.AgentX = void 0;
const axios_1 = __importDefault(require("axios"));
const util_1 = require("./util");
const agent_1 = require("./resources/agent");
const workforce_1 = require("./resources/workforce");
class AgentX {
constructor(apiKey) {
this.apiKey = apiKey || process.env.AGENTX_API_KEY || "";
if (!this.apiKey) {
throw new Error("API key is required. Set AGENTX_API_KEY environment variable or pass apiKey parameter.");
}
else {
process.env.AGENTX_API_KEY = this.apiKey;
}
}
async getAgent(id) {
const url = `https://api.agentx.so/api/v1/access/agents/${id}`;
const response = await axios_1.default.get(url, {
headers: (0, util_1.getHeaders)(),
});
if (response.status === 200) {
const agentRes = response.data;
return new agent_1.Agent({
id: agentRes._id,
name: agentRes.name,
avatar: agentRes.avatar,
createdAt: agentRes.createdAt,
updatedAt: agentRes.updatedAt,
});
}
else {
throw new Error(`Failed to retrieve agent: ${response.statusText}`);
}
}
async listAgents() {
const url = "https://api.agentx.so/api/v1/access/agents";
const response = await axios_1.default.get(url, {
headers: (0, util_1.getHeaders)(),
});
if (response.status === 200) {
return response.data.map((agent) => new agent_1.Agent({
id: agent._id,
name: agent.name,
avatar: agent.avatar,
createdAt: agent.createdAt,
updatedAt: agent.updatedAt,
}));
}
else {
throw new Error(`Failed to list agents: ${response.statusText}`);
}
}
async listWorkforces() {
const url = "https://api.agentx.so/api/v1/access/teams";
const response = await axios_1.default.get(url, {
headers: (0, util_1.getHeaders)(),
});
if (response.status === 200) {
return response.data.map((workforce) => new workforce_1.Workforce({
id: workforce._id,
agents: workforce.agents.map((agent) => new agent_1.Agent({
id: agent._id,
name: agent.name,
avatar: agent.avatar,
createdAt: agent.createdAt,
updatedAt: agent.updatedAt,
})),
name: workforce.name,
image: workforce.image,
description: workforce.description,
manager: new agent_1.Agent({
id: workforce.manager._id,
name: workforce.manager.name,
avatar: workforce.manager.avatar,
createdAt: workforce.manager.createdAt,
updatedAt: workforce.manager.updatedAt,
}),
creator: workforce.creator,
context: workforce.context,
references: workforce.references,
workspace: workforce.workspace,
createdAt: workforce.createdAt,
updatedAt: workforce.updatedAt,
}));
}
else {
throw new Error(`Failed to list workforces: ${response.status} - ${response.statusText}`);
}
}
async getProfile() {
const url = "https://api.agentx.so/api/v1/access/getProfile";
const response = await axios_1.default.get(url, {
headers: (0, util_1.getHeaders)(),
});
if (response.status === 200) {
return response.data;
}
else {
throw new Error(`Failed to get profile: ${response.status} - ${response.statusText}`);
}
}
}
exports.AgentX = AgentX;
//# sourceMappingURL=agentx.js.map