@epicdm/flowstate-agents-core
v1.0.0
Published
Core data models and business logic for Epic Flow AI Agents
Readme
@epic-flow/agents-core
Core data models and business logic for Epic Flow AI Agents system.
Description
@epic-flow/agents-core provides the foundational data models, schemas, and business logic for the Epic Flow AI Agents system. This package defines RxDB collections for agents, sessions, and messages, along with validation schemas and utility functions for managing AI agent workflows.
Purpose
This package serves as the data layer for the Epic Flow AI Agents system, providing:
- Type-safe data models for agents, sessions, and messages
- RxDB collection schemas for reactive data management
- Validation logic using Zod schemas
- Utility functions for common operations
- Shared types and interfaces for agent-related functionality
Key Features
- RxDB Collections: Reactive database collections for agents, sessions, and messages
- Type Safety: Comprehensive TypeScript type definitions with strict typing
- Schema Validation: Zod-based validation schemas for all data models
- Reactive Data: Built on RxDB and RxJS for reactive data management
- Modular Design: Clean separation of concerns with dedicated modules for collections, schemas, and utilities
Dependencies
- rxdb (^15.0.0): Reactive database for JavaScript applications
- rxjs (^7.8.1): Reactive extensions for JavaScript
- zod (^3.22.4): TypeScript-first schema validation library
Installation
# Install from npm (when published)
npm install @epic-flow/agents-core
# Or with yarn
yarn add @epic-flow/agents-core
# Or with pnpm
pnpm add @epic-flow/agents-coreFor local development within the monorepo:
# From the monorepo root
yarn install
# Build the package
yarn workspace @epic-flow/agents-core buildUsage Example
import {
agentCollectionSchema,
sessionCollectionSchema,
messageCollectionSchema,
type Agent,
type Session,
type Message
} from '@epic-flow/agents-core';
// Use the schemas to create RxDB collections
const myDatabase = await createRxDatabase({
name: 'my-agents-db',
storage: getRxStorageDexie()
});
// Add collections
await myDatabase.addCollections({
agents: {
schema: agentCollectionSchema
},
sessions: {
schema: sessionCollectionSchema
},
messages: {
schema: messageCollectionSchema
}
});
// Create a new agent
const agent: Agent = {
id: 'agent-123',
name: 'My AI Agent',
description: 'An intelligent agent for task automation',
status: 'active',
createdAt: Date.now(),
updatedAt: Date.now()
};
await myDatabase.agents.insert(agent);
// Query agents
const activeAgents = await myDatabase.agents
.find({
selector: {
status: 'active'
}
})
.exec();Development
# Build the package
yarn build
# Run in development mode with watch
yarn dev
# Run tests
yarn test
# Run tests in watch mode
yarn test:watch
# Type checking
yarn typecheck
# Linting
yarn lintPackage Structure
packages/agents-core/
├── src/
│ ├── collections/ # RxDB collection schemas
│ ├── schemas/ # Zod validation schemas
│ ├── utils/ # Utility functions
│ ├── __tests__/ # Test files
│ └── index.ts # Main export file
├── dist/ # Built output
├── package.json
├── tsconfig.json
├── jest.config.js
└── README.mdLicense
MIT
Author
Epic Flow
