A TypeScript SDK for interacting with the Lumen Brain API, providing seamless integration with Lumen Brain's memory and knowledge management capabilities.
- 🔑 API Key Authentication: Secure access to Lumen Brain services
- 💾 Memory Management: Save and query memory entries
- 🧠 Knowledge Injection: Add various types of content to your knowledge base
- 🔄 Async Task Handling: Built-in polling for long-running operations
- 📝 Type Safety: Full TypeScript support with comprehensive type definitions
npm install lumen-brain
# or with yarn
yarn add lumen-brain
# or with pnpm
pnpm add lumen-brainimport { LumenBrainDriver } from "lumen-brain";
// Initialize the driver with your API key
const brain = new LumenBrainDriver("your-api-key");
// Save a message to memory
const saveResult = await brain.saveMessage(
"memory-uuid",
"Hello, this is a test message",
"user",
"conversation-123"
);
// Query memory
const queryResult = await brain.queryMemory(
"What was the test message?",
"memory-uuid",
"conversation-123"
);
// Inject knowledge
const knowledgeResult = await brain.injectKnowledge(
"memory-uuid",
"Important information to remember",
"event"
);The main class for interacting with the Lumen Brain API.
class LumenBrainDriver {
constructor(apiKey: string);
// Save a message to memory
async saveMessage(
memoryUuid: string,
content: string,
role?: "user" | "assistant",
conversationId?: string,
metadata?: Record<string, any>
): Promise<MemoryUpdateResponse>;
// Inject knowledge into memory
async injectKnowledge(
memoryUuid: string,
content: string,
resourceType?: MemoryContentType,
metadata?: Record<string, any>
): Promise<MemoryUpdateResponse>;
// Query memory for relevant information
async queryMemory(
text: string,
memoryUuid: string,
conversationId: string
): Promise<MemoryQueryResponse>;
// Fetch information about entities
async fetchInfo(
memoryUuid: string,
entities: string[],
info: string,
depth?: number // default is 2
): Promise<QueryEntitiesResponse>;
}The SDK supports various content types for knowledge injection:
fileeventwebpageemailmessage(for conversation messages)
interface MemoryQueryResponse {
context: string; // The textual context relevant for the query
}
interface MemoryUpdateResponse {
error?: string; // If the operation failed, this will contain the error message
task_id: string; // The task ID of the operation
result?: {
memory_id: string;
conversation_id?: string;
};
}interface QueryEntitiesResponse { nodes: Node[]; most_relevant_relation: Relationship | null; most_relevant_confidence: number | null; // The confidence of the most relevant relation (0-1) }
The SDK includes built-in error handling and logging:
try {
const result = await brain.saveMessage("uuid", "content");
} catch (error) {
console.error("Failed to save message:", error);
}To build the project:
npm run buildMIT
Christian Nonis [email protected]