Types & Interfaces
Last Updated: 2025-10-28
Complete TypeScript type definitions for all Cortex APIs.
Overview
This document provides the complete TypeScript interfaces for Cortex. All types are exported from the main package:
import type {
// Layer 1: ACID Stores
Conversation,
Message,
ImmutableRecord,
MutableRecord,
// Layer 2: Vector
MemoryEntry,
MemoryVersion,
// Entities
UserProfile,
Context,
AgentRegistration,
// Filters
UniversalFilters,
ConversationFilters,
ContextFilters,
UserFilters,
// Results
RememberResult,
DeleteResult,
SearchResult,
// And more...
} from "@cortex-platform/sdk";
Layer 1: ACID Stores
Layer 1a: Conversations
interface Conversation {
// Identity
conversationId: string;
type: "user-agent" | "agent-agent";
// Participants
participants: UserAgentParticipants | AgentAgentParticipants;
// Messages
messages: Message[];
messageCount: number;
// Metadata
metadata: Record<string, any>;
// Timestamps
createdAt: Date;
updatedAt: Date;
lastMessageAt?: Date;
}
interface UserAgentParticipants {
userId: string;
memorySpaceId: string;
}
interface AgentAgentParticipants {
agent1: string;
agent2: string;
}
interface Message {
id: string;
// User-agent messages
role?: "user" | "agent" | "system";
content?: string;
userId?: string;
memorySpaceId?: string;
// Agent-agent messages (A2A)
type?: "a2a";
from?: string;
to?: string;
text?: string;
// Common
timestamp: Date;
metadata?: Record<string, any>;
}
Layer 1b: Immutable Store
interface ImmutableEntry {
type: string; // Entity type
id: string; // Logical ID (versioned)
data: Record<string, any>; // The actual data
userId?: string; // OPTIONAL: User link (GDPR-enabled)
metadata?: {
publishedBy?: string;
tags?: string[];
importance?: number; // 0-100
[key: string]: any;
};
}
interface ImmutableRecord {
type: string;
id: string;
version: number;
data: Record<string, any>;
userId?: string;
metadata: any;
createdAt: Date;
previousVersions: ImmutableVersion[];
}
interface ImmutableVersion {
version: number;
data: any;
userId?: string;
metadata: any;
timestamp: Date;
}
Layer 1c: Mutable Store
interface MutableRecord {
namespace: string;
key: string;
value: any;
userId?: string; // OPTIONAL: User link (GDPR-enabled)
updatedAt: Date;
createdAt: Date;
accessCount: number;
lastAccessed?: Date;
}
Layer 2: Vector Index
MemoryEntry (Core)
interface MemoryEntry {
// Identity
id: string;
memorySpaceId: string;
userId?: string;
// Content
content: string;
contentType: "raw" | "summarized";
embedding?: number[];
// Source
source: MemorySource;
// Layer 1 References (mutually exclusive)
conversationRef?: ConversationRef;
immutableRef?: ImmutableRef;
mutableRef?: MutableRef;
// Metadata
metadata: MemoryMetadata;
// Timestamps
createdAt: Date;
updatedAt: Date;
lastAccessed?: Date;
accessCount: number;
// Versioning
version: number;
previousVersions?: MemoryVersion[];
}
interface MemorySource {
type: "conversation" | "system" | "tool" | "a2a";
userId?: string;
userName?: string;
fromAgent?: string; // For A2A
toAgent?: string; // For A2A
timestamp: Date;
}
interface ConversationRef {
conversationId: string;
messageIds: string[];
}
interface ImmutableRef {
type: string;
id: string;
version?: number;
}
interface MutableRef {
namespace: string;
key: string;
snapshotValue: any;
snapshotAt: Date;
}
interface MemoryMetadata {
importance: number; // 0-100
tags: string[];
direction?: "inbound" | "outbound"; // For A2A
messageId?: string; // For A2A
contextId?: string; // Link to context
[key: string]: any;
}
interface MemoryVersion {
version: number;
content: string;
contentType: "raw" | "summarized";
embedding?: number[];
conversationRef?: ConversationRef;
metadata: any;
timestamp: Date;
updatedBy?: string;
}
Layer 3: Memory API
Memory Operations
interface MemoryInput {
// Content
content: string;
contentType: "raw" | "summarized";
// Embedding
embedding?: number[];
// Context
userId?: string;
// Source
source: MemorySource;
// Layer 1 References (optional, mutually exclusive)
conversationRef?: ConversationRef;
immutableRef?: ImmutableRef;
mutableRef?: MutableRef;
// Metadata
metadata: MemoryMetadata;
}
interface RememberParams {
memorySpaceId: string;
conversationId: string;
userMessage: string;
agentResponse: string;
userId: string;
userName: string;
// Optional
extractContent?: (
userMessage: string,
agentResponse: string,
) => Promise<string | null>;
generateEmbedding?: (content: string) => Promise<number[] | null>;
// Cloud Mode
autoEmbed?: boolean;
autoSummarize?: boolean;
// Metadata
importance?: number;
tags?: string[];
}
interface RememberResult {
conversation: {
messageIds: string[];
conversationId: string;
};
memories: MemoryEntry[];
}
interface MemoryUpdate {
content?: string;
contentType?: "raw" | "summarized";
embedding?: number[];
conversationRef?: ConversationRef;
metadata?: Partial<MemoryMetadata>;
}
Entity Types
User Profile
interface UserProfile {
// Identity
id: string;
// User Data (flexible)
data: Record<string, any>;
// System fields
version: number;
createdAt: Date;
updatedAt: Date;
previousVersions?: UserVersion[];
}
interface UserVersion {
version: number;
data: Record<string, any>;
timestamp: Date;
}
interface UserProfileUpdate {
data: Record<string, any>;
}
Context
interface Context {
// Identity
id: string;
parentId?: string;
rootId: string;
// Purpose
purpose: string;
description?: string;
// Ownership
memorySpaceId: string;
userId?: string;
// Hierarchy
depth: number;
childIds: string[];
participants: string[];
// Conversation link
conversationRef?: ConversationRef;
// Data
data: Record<string, any>;
// Status
status: "active" | "completed" | "cancelled" | "blocked";
// Timestamps
createdAt: Date;
updatedAt: Date;
completedAt?: Date;
// Versioning
version: number;
previousVersions?: ContextVersion[];
}
interface ContextInput {
purpose: string;
memorySpaceId: string;
parentId?: string;
userId?: string;
conversationRef?: ConversationRef;
data?: Record<string, any>;
status?: "active" | "completed" | "cancelled" | "blocked";
description?: string;
}
interface ContextVersion {
version: number;
status: string;
data: any;
timestamp: Date;
updatedBy: string;
}
interface ContextWithChain {
current: Context;
parent?: Context;
root: Context;
children: Context[];
siblings: Context[];
ancestors: Context[];
depth: number;
conversation?: Conversation;
triggerMessages?: Message[];
}
Agent Registration
interface AgentRegistration {
id: string;
name: string;
description?: string;
capabilities?: string[];
metadata: Record<string, any>;
config: {
memoryVersionRetention?: number;
[key: string]: any;
};
stats: {
totalMemories: number;
totalConversations: number;
lastActive?: Date;
};
registeredAt: Date;
updatedAt: Date;
}
Helper APIs
A2A Communication
interface A2ASendParams {
from: string;
to: string;
message: string;
userId?: string;
contextId?: string;
importance?: number;
trackConversation?: boolean;
autoEmbed?: boolean;
metadata?: {
tags?: string[];
priority?: "low" | "normal" | "high" | "urgent";
[key: string]: any;
};
}
interface A2AMessage {
messageId: string;
sentAt: Date;
conversationId?: string;
acidMessageId?: string;
senderMemoryId: string;
receiverMemoryId: string;
}
interface A2ARequestParams {
from: string;
to: string;
message: string;
timeout?: number;
retries?: number;
userId?: string;
contextId?: string;
importance?: number;
}
interface A2AResponse {
response: string;
messageId: string;
responseMessageId: string;
respondedAt: Date;
responseTime: number;
}
interface A2ABroadcastParams {
from: string;
to: string[];
message: string;
userId?: string;
contextId?: string;
importance?: number;
trackConversation?: boolean;
metadata?: Record<string, any>;
}
interface A2ABroadcastResult {
messageId: string;
sentAt: Date;
recipients: string[];
senderMemoryIds: string[];
receiverMemoryIds: string[];
memoriesCreated: number;
conversationIds?: string[];
}
interface A2AConversation {
participants: [string, string];
conversationId?: string;
messageCount: number;
messages: A2AConversationMessage[];
period: {
start: Date;
end: Date;
};
tags?: string[];
canRetrieveFullHistory: boolean;
}
interface A2AConversationMessage {
from: string;
to: string;
message: string;
importance: number;
timestamp: Date;
messageId: string;
memoryId: string;
acidMessageId?: string;
tags?: string[];
}
Universal Filters
Memory Filters
interface UniversalFilters {
// Identity
userId?: string;
// Tags
tags?: string[];
tagMatch?: "any" | "all";
// Importance (0-100)
importance?: number | RangeQuery;
minImportance?: number;
// Dates
createdBefore?: Date;
createdAfter?: Date;
updatedBefore?: Date;
updatedAfter?: Date;
lastAccessedBefore?: Date;
lastAccessedAfter?: Date;
// Access patterns
accessCount?: number | RangeQuery;
version?: number | RangeQuery;
// Source
"source.type"?: "conversation" | "system" | "tool" | "a2a";
// Content
contentType?: "raw" | "summarized";
// ACID link
"conversationRef.conversationId"?: string;
// Metadata
metadata?: Record<string, any>;
// Results
limit?: number;
offset?: number;
sortBy?: string;
sortOrder?: "asc" | "desc";
}
interface RangeQuery {
$gte?: number;
$lte?: number;
$eq?: number;
$ne?: number;
$gt?: number;
$lt?: number;
}
Conversation Filters
interface ConversationFilters {
// Type
type?: "user-agent" | "agent-agent";
// Participants
userId?: string;
memorySpaceId?: string;
"participants.agent1"?: string;
"participants.agent2"?: string;
// Metadata
metadata?: Record<string, any>;
// Dates
createdBefore?: Date;
createdAfter?: Date;
updatedBefore?: Date;
updatedAfter?: Date;
lastMessageBefore?: Date;
lastMessageAfter?: Date;
// Message count
messageCount?: number | RangeQuery;
}
Context Filters
interface ContextFilters {
// Identity
memorySpaceId?: string;
userId?: string;
// Hierarchy
parentId?: string;
rootId?: string;
depth?: number | RangeQuery;
// Status
status?: "active" | "completed" | "cancelled" | "blocked";
// Purpose
purposeContains?: string;
// Data
"data.importance"?: number | RangeQuery;
"data.tags"?: string[];
data?: Record<string, any>;
// Conversation
"conversationRef.conversationId"?: string;
// Dates
createdBefore?: Date;
createdAfter?: Date;
updatedBefore?: Date;
updatedAfter?: Date;
completedBefore?: Date;
completedAfter?: Date;
// Version
version?: number | RangeQuery;
}
User Filters
interface UserFilters {
// Identity
email?: string;
displayName?: string;
// Data (nested)
"data.preferences.theme"?: "light" | "dark";
"data.tier"?: "free" | "pro" | "enterprise";
data?: Record<string, any>;
// Dates
createdBefore?: Date;
createdAfter?: Date;
updatedBefore?: Date;
updatedAfter?: Date;
// Version
version?: number | RangeQuery;
}
Immutable Filters
interface ImmutableFilters {
type?: string;
id?: string;
userId?: string;
"data.field"?: any;
"metadata.field"?: any;
createdBefore?: Date;
createdAfter?: Date;
version?: number | RangeQuery;
}
Mutable Filters
interface MutableFilters {
key?: string;
keyPrefix?: string;
userId?: string;
"value.field"?: any;
createdBefore?: Date;
createdAfter?: Date;
updatedBefore?: Date;
updatedAfter?: Date;
lastAccessedBefore?: Date;
lastAccessedAfter?: Date;
}
Common Options
Search Options
interface SearchOptions {
// Layer enrichment
enrichConversation?: boolean;
// Semantic search
embedding?: number[];
// Filtering (extends UniversalFilters)
userId?: string;
tags?: string[];
importance?: number | RangeQuery;
minImportance?: number;
// Pagination
limit?: number;
offset?: number;
minScore?: number;
// Sorting
sortBy?: "score" | "createdAt" | "updatedAt" | "accessCount" | "importance";
sortOrder?: "asc" | "desc";
// Strategy
strategy?: "auto" | "semantic" | "keyword" | "recent";
boostImportance?: boolean;
boostRecent?: boolean;
boostPopular?: boolean;
}
List Options
interface ListOptions extends UniversalFilters {
limit?: number;
offset?: number;
sortBy?: "createdAt" | "updatedAt" | "accessCount" | "importance";
sortOrder?: "asc" | "desc";
}
Update Options
interface UpdateOptions {
skipVersioning?: boolean;
versionReason?: string;
merge?: boolean;
}
interface UpdateManyOptions {
skipVersioning?: boolean;
dryRun?: boolean;
}
Delete Options
interface DeleteOptions {
dryRun?: boolean;
requireConfirmation?: boolean;
confirmationThreshold?: number;
}
interface ForgetOptions {
deleteConversation?: boolean;
deleteEntireConversation?: boolean;
}
Export Options
interface ExportOptions extends UniversalFilters {
format: "json" | "csv";
outputPath?: string;
includeVersionHistory?: boolean;
includeConversationContext?: boolean;
}
Result Types
Deletion Results
interface DeletionResult {
deleted: number;
memoryId?: string;
memoryIds?: string[];
deletedFrom?: "vector" | "both";
restorable: boolean;
affectedUsers?: string[];
wouldDelete?: number;
memories?: MemoryEntry[];
}
interface ForgetResult {
memoryDeleted: boolean;
conversationDeleted: boolean;
messagesDeleted: number;
restorable: boolean;
}
interface DeleteResult {
profileDeleted?: boolean;
userId?: string;
deletedAt: Date;
auditReason?: string;
// Layer deletions
conversationsDeleted?: number;
totalMessagesDeleted?: number;
immutableRecordsDeleted?: number;
immutableTypes?: string[];
mutableRecordsDeleted?: number;
mutableNamespaces?: string[];
vectorMemoriesDeleted?: number;
agentsAffected?: string[];
// Summary
totalRecordsDeleted?: number;
restorable: boolean;
}
List Results
interface ListResult {
memories?: MemoryEntry[];
conversations?: Conversation[];
contexts?: Context[];
users?: UserProfile[];
records?: ImmutableRecord[] | MutableRecord[];
total: number;
limit: number;
offset: number;
hasMore: boolean;
}
Update Results
interface UpdateManyResult {
updated: number;
memoryIds?: string[];
userIds?: string[];
contextIds?: string[];
newVersions?: number[];
wouldUpdate?: number;
}
Search Results
interface SearchResult extends MemoryEntry {
score: number;
strategy: "semantic" | "keyword" | "recent";
highlights?: string[];
explanation?: string;
}
interface EnrichedMemory {
memory: MemoryEntry;
conversation?: Conversation;
sourceMessages?: Message[];
}
Governance Types
interface GovernancePolicy {
organizationId?: string;
memorySpaceId?: string;
// Layer 1a: Conversations
conversations: {
retention: {
deleteAfter: string; // e.g., '7y'
archiveAfter?: string;
purgeOnUserRequest: boolean;
};
purging: {
autoDelete: boolean;
deleteInactiveAfter?: string;
};
};
// Layer 1b: Immutable
immutable: {
retention: {
defaultVersions: number;
byType: Record<string, { versionsToKeep: number }>;
};
purging: {
autoCleanupVersions: boolean;
};
};
// Layer 1c: Mutable
mutable: {
retention: {
defaultTTL: string | null;
purgeInactiveAfter?: string;
};
purging: {
autoDelete: boolean;
};
};
// Layer 2: Vector
vector: {
retention: {
defaultVersions: number;
byImportance: ImportanceRetentionRule[];
bySourceType: Record<string, number>;
};
purging: {
autoCleanupVersions: boolean;
deleteOrphaned: boolean;
};
};
// Cross-layer
compliance: {
mode: "GDPR" | "HIPAA" | "SOC2" | "Custom";
dataRetentionYears: number;
requireJustification: [number, number];
auditLogging: boolean;
};
}
interface ImportanceRetentionRule {
range: [number, number];
versions: number;
}
Error Types
class CortexError extends Error {
code: CortexErrorCode;
details?: any;
constructor(code: CortexErrorCode, message?: string, details?: any);
}
type CortexErrorCode =
// General
| "CONVEX_ERROR"
| "INVALID_INPUT"
// Memory
| "INVALID_AGENT_ID"
| "INVALID_CONTENT"
| "INVALID_IMPORTANCE"
| "INVALID_EMBEDDING_DIMENSION"
| "MEMORY_NOT_FOUND"
| "VERSION_NOT_FOUND"
| "PERMISSION_DENIED"
// User
| "INVALID_USER_ID"
| "USER_NOT_FOUND"
| "INVALID_PROFILE_DATA"
// Context
| "INVALID_PURPOSE"
| "CONTEXT_NOT_FOUND"
| "PARENT_NOT_FOUND"
| "HAS_CHILDREN"
| "INVALID_STATUS"
// Conversation
| "INVALID_CONVERSATION_ID"
| "CONVERSATION_NOT_FOUND"
| "INVALID_TYPE"
| "INVALID_PARTICIPANTS"
| "INVALID_MESSAGE"
// Immutable
| "INVALID_TYPE"
| "INVALID_ID"
| "DATA_TOO_LARGE"
| "NOT_FOUND"
// Mutable
| "INVALID_NAMESPACE"
| "INVALID_KEY"
| "VALUE_TOO_LARGE"
| "KEY_NOT_FOUND"
| "UPDATE_FAILED"
| "TRANSACTION_FAILED"
// Operations
| "INVALID_FILTERS"
| "INVALID_PAGINATION"
| "INVALID_QUERY"
| "INVALID_OPTIONS"
| "INVALID_UPDATE"
| "INVALID_FORMAT"
| "INVALID_TIMESTAMP"
// Deletion
| "DELETION_FAILED"
| "DELETION_CANCELLED"
| "PURGE_FAILED"
| "PURGE_CANCELLED"
// Export
| "EXPORT_FAILED"
// A2A
| "PUBSUB_NOT_CONFIGURED"
| "EMPTY_RECIPIENTS"
// Matching
| "NO_MEMORIES_MATCHED"
| "NO_USERS_MATCHED"
// Cloud Mode
| "CLOUD_MODE_REQUIRED"
| "STRATEGY_FAILED";
class A2ATimeoutError extends Error {
messageId: string;
timeout: number;
constructor(message: string, messageId: string, timeout: number);
}
Configuration Types
interface CortexConfig {
// Connection
convexUrl: string;
mode?: "direct" | "cloud";
apiKey?: string; // Cloud Mode only
// Versioning
defaultVersionRetention?: number;
// Validation
userProfileValidation?: {
requiredFields?: string[];
maxDisplayNameLength?: number;
emailRequired?: boolean;
validateEmail?: boolean;
allowCustomPreferences?: boolean;
allowCustomMetadata?: boolean;
};
// Retention (Layer specific)
immutableRetention?: {
defaultVersions: number;
byType: Record<string, number>;
};
mutableRetention?: {
defaultTTL: string | null;
purgeInactiveAfter?: string;
};
// Callbacks
onBeforeStore?: (
memorySpaceId: string,
entry: MemoryInput,
) => Promise<StoreDecision>;
onAfterRetrieve?: (memorySpaceId: string, memory: MemoryEntry) => void;
onVersionCreated?: (
memorySpaceId: string,
memoryId: string,
newVersion: MemoryVersion,
oldVersion?: MemoryVersion,
) => void;
}
interface StoreDecision {
action: "create" | "update";
memoryId?: string;
}
Utility Types
Pagination
interface PaginationOptions {
limit?: number;
offset?: number;
sortBy?: string;
sortOrder?: "asc" | "desc";
}
interface PaginatedResult<T> {
items: T[];
total: number;
limit: number;
offset: number;
hasMore: boolean;
}
Versioning
interface Versioned {
version: number;
previousVersions?: VersionHistory[];
createdAt: Date;
updatedAt: Date;
}
interface VersionHistory {
version: number;
timestamp: Date;
[key: string]: any;
}
GDPR
interface GDPRDeleteOptions {
cascade?: boolean;
deleteFromConversations?: boolean;
deleteFromImmutable?: boolean;
deleteFromMutable?: boolean;
deleteFromVector?: boolean;
auditReason?: string;
}
interface GDPRExportOptions {
includeMemories?: boolean;
includeConversations?: boolean;
includeVersionHistory?: boolean;
format: "json" | "csv";
outputPath?: string;
}
Type Guards
Cortex provides type guards for runtime type checking:
function isMemoryEntry(obj: any): obj is MemoryEntry {
return (
typeof obj === "object" &&
"id" in obj &&
"memorySpaceId" in obj &&
"content" in obj &&
"source" in obj &&
"metadata" in obj
);
}
function isConversation(obj: any): obj is Conversation {
return (
typeof obj === "object" &&
"conversationId" in obj &&
"type" in obj &&
"participants" in obj &&
"messages" in obj
);
}
function isUserProfile(obj: any): obj is UserProfile {
return (
typeof obj === "object" && "id" in obj && "data" in obj && "version" in obj
);
}
function isContext(obj: any): obj is Context {
return (
typeof obj === "object" &&
"id" in obj &&
"purpose" in obj &&
"memorySpaceId" in obj &&
"status" in obj
);
}
function isCortexError(error: any): error is CortexError {
return error instanceof CortexError;
}
function isA2ATimeoutError(error: any): error is A2ATimeoutError {
return error instanceof A2ATimeoutError;
}
Generic Types
Builders
type DeepPartial<T> = {
[P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
};
type Nullable<T> = T | null;
type Optional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
type Required<T, K extends keyof T> = T & { [P in K]-?: T[P] };
Promises
type AsyncReturnType<T extends (...args: any) => Promise<any>> = T extends (
...args: any
) => Promise<infer R>
? R
: any;
type PromiseOr<T> = T | Promise<T>;
Usage Examples
Type-Safe Operations
import type { MemoryEntry, SearchOptions, UniversalFilters } from '@cortex-platform/sdk';
// Type-safe search
const options: SearchOptions = {
embedding: [0.1, 0.2, ...],
userId: 'user-123',
minImportance: 50,
limit: 10,
};
const results = await cortex.memory.search('agent-1', 'query', options);
// Type guard
results.forEach(memory => {
if (isMemoryEntry(memory)) {
console.log(memory.content);
console.log(memory.metadata.importance);
}
});
Generic Helpers
// Generic search function
async function searchEntity<T>(
searchFn: (filters: any) => Promise<T[]>,
filters: any,
): Promise<T[]> {
return await searchFn(filters);
}
// Usage
const memories = await searchEntity<MemoryEntry>(
(f) => cortex.memory.search("agent-1", "*", f),
{ userId: "user-123" },
);
Custom Extensions
// Extend UserProfile for your app
interface CustomUserProfile extends UserProfile {
data: {
displayName: string;
email: string;
preferences: {
theme: "light" | "dark";
language: "en" | "es" | "fr";
};
tier: "free" | "pro" | "enterprise";
};
}
// Type-safe usage
const user = await cortex.users.get<CustomUserProfile>("user-123");
console.log(user.data.preferences.theme); // Typed!
Namespace Organization
All Cortex types are organized by namespace:
namespace Cortex {
// Layer 1
namespace Conversations {
export type Conversation = ...;
export type Message = ...;
export type ConversationFilters = ...;
}
namespace Immutable {
export type ImmutableRecord = ...;
export type ImmutableVersion = ...;
export type ImmutableFilters = ...;
}
namespace Mutable {
export type MutableRecord = ...;
export type MutableFilters = ...;
}
// Layer 2
namespace Vector {
export type MemoryEntry = ...;
export type MemoryVersion = ...;
}
// Layer 3
namespace Memory {
export type RememberParams = ...;
export type RememberResult = ...;
}
// Entities
namespace Users {
export type UserProfile = ...;
export type UserVersion = ...;
}
namespace Contexts {
export type Context = ...;
export type ContextVersion = ...;
}
namespace Agents {
export type AgentRegistration = ...;
}
// Helpers
namespace A2A {
export type A2AMessage = ...;
export type A2AResponse = ...;
}
// Common
export type UniversalFilters = ...;
export type RangeQuery = ...;
export type CortexError = ...;
}
Import Patterns
Named Imports (Recommended)
import type {
MemoryEntry,
UserProfile,
Context,
UniversalFilters,
SearchOptions,
} from "@cortex-platform/sdk";
Namespace Import
import type { Cortex } from '@cortex-platform/sdk';
const memory: Cortex.Memory.MemoryEntry = ...;
const user: Cortex.Users.UserProfile = ...;
Type-Only Import
import type * as CortexTypes from '@cortex-platform/sdk';
const filters: CortexTypes.UniversalFilters = { ... };
Next Steps
- Error Handling - Error codes and debugging
- Memory Operations API - Using these types in practice
- [Examples Index](/ reference/examples-index) - Real-world usage
Questions? Ask in GitHub Discussions or Discord.