
Security News
OpenCode User Hit with Hostile Backlash After Reporting Free AI Loophole
An OpenCode user faced harassment after reporting a free AI usage loophole, drawing a bitter backlash in a GitHub thread that has since been deleted.
Official JavaScript/TypeScript SDK for Memory-of-Agents (MOA) - AI memory infrastructure for intelligent applications
Official JavaScript/TypeScript SDK for Memory-of-Agents (MOA). Build intelligent applications with persistent AI memory.
✨ Clean Namespace API - Intuitive methods organized by resource type
🔒 Type-Safe - Full TypeScript support with comprehensive types
🧠 Memory Management - Store, search, and retrieve AI agent memories
🤖 Bot Operations - Create and manage AI bots with ease
🏢 Workspace Control - Organize your AI infrastructure
⚡ Auto-Retry - Built-in retry logic for resilient API calls
🎯 Natural Language Search - Query memories conversationally
npm install memofai
moa_...)import { createMoaClient } from 'memofai';
const client = createMoaClient({
apiToken: 'moa_your_token_here',
environment: 'production'
});
// Create a workspace
const workspace = await client.workspaces.create({
name: "My AI Workspace",
description: "Workspace for my AI agents"
});
// Create a bot
const bot = await client.bots.create({
name: "Assistant",
description: "Helpful AI assistant",
moa_workspace: workspace.id,
type: "conversational",
status: "active"
});
// Store a memory
const memory = await client.memories.store({
bot_id: bot.id,
content_text: "User prefers concise responses",
memory_type: "preference"
});
// Search memories
const results = await client.memories.search({
bot_id: bot.id,
query: "How should I communicate with the user?",
top_k: 5
});
const client = createMoaClient({
apiToken: 'moa_your_token',
environment: 'production', // 'dev' | 'alpha' | 'beta' | 'sandbox' | 'production'
timeout: 30000, // Optional: request timeout (ms)
retries: 3, // Optional: retry attempts
retryDelay: 1000 // Optional: retry delay (ms)
});
// List all workspaces
const workspaces = await client.workspaces.list();
// Create workspace
const workspace = await client.workspaces.create({
name: "My Workspace",
description: "Optional description"
});
// Get workspace
const workspace = await client.workspaces.retrieve(workspaceId);
// Update workspace
const updated = await client.workspaces.update(workspaceId, {
name: "New Name"
});
// Delete workspace
await client.workspaces.delete(workspaceId);
// List all bots
const bots = await client.bots.list();
// Create bot
const bot = await client.bots.create({
name: "My Bot",
description: "AI assistant",
moa_workspace: workspaceId,
type: "conversational",
status: "active"
});
// Get bot
const bot = await client.bots.retrieve(botId);
// Update bot
const updated = await client.bots.update(botId, {
name: "Updated Name"
});
// Delete bot
await client.bots.delete(botId);
// Store memory
const memory = await client.memories.store({
bot_id: botId,
content_text: "User prefers dark mode",
memory_type: "preference"
});
// List memories
const result = await client.memories.list(botId, {
memory_type: "preference",
limit: 20
});
// Search memories
const results = await client.memories.search({
bot_id: botId,
query: "What are user preferences?",
top_k: 5,
generate_answer: true
});
// Reprocess memory
const result = await client.memories.reprocess(memoryId, {
bot_id: botId
});
// Delete memory
await client.memories.delete(memoryId, {
bot_id: botId
});
import { ValidationError, NotFoundError, AuthenticationError } from 'memofai';
try {
const bot = await client.bots.retrieve(botId);
} catch (error) {
if (error instanceof ValidationError) {
console.error('Validation errors:', error.validationErrors);
} else if (error instanceof NotFoundError) {
console.error('Bot not found');
} else if (error instanceof AuthenticationError) {
console.error('Invalid API token');
}
}
Full TypeScript support with comprehensive types:
import type {
Workspace,
Bot,
Memory,
CreateWorkspaceBody,
CreateBotBody,
StoreMemoryBody,
SearchMemoriesResponse
} from 'memofai';
| Environment | Description |
|---|---|
dev | Local development |
alpha | Early testing |
beta | Pre-production |
sandbox | Testing & development |
production | Production (default) |
MIT License - see LICENSE file for details.
Built with ❤️ by the Memory-of-Agents Team
FAQs
Official JavaScript/TypeScript SDK for Memory-of-Agents (MOA) - AI memory infrastructure for intelligent applications
We found that memofai demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
An OpenCode user faced harassment after reporting a free AI usage loophole, drawing a bitter backlash in a GitHub thread that has since been deleted.

Threat Research
/Security News
319 browser extensions installed by 13.4 million users hijack searches, capture queries, and collect referral payments from Yahoo and Bing.

Threat Research
Malicious Firefox extensions mimic Phantom, Jupiter, and Bitget wallets to steal recovery phrases and private keys, with one fetching its payload remotely.