@lanonasis/cli
Version:
LanOnasis Enterprise CLI - Memory as a Service, API Key Management, and Infrastructure Orchestration
175 lines (174 loc) • 5.22 kB
TypeScript
import { AxiosRequestConfig } from 'axios';
export interface AuthResponse {
user: {
id: string;
email: string;
organization_id: string;
role: 'admin' | 'user' | 'viewer';
plan: 'free' | 'pro' | 'enterprise';
created_at: string;
updated_at: string;
};
token: string;
expires_at: string;
}
export interface RegisterRequest {
email: string;
password: string;
organization_name?: string;
}
export interface LoginRequest {
email: string;
password: string;
}
export type MemoryType = 'context' | 'project' | 'knowledge' | 'reference' | 'personal' | 'workflow';
export interface MemoryEntry {
id: string;
title: string;
content: string;
memory_type: MemoryType;
tags: string[];
topic_id?: string | null;
user_id: string;
organization_id: string;
metadata?: Record<string, unknown>;
created_at: string;
updated_at: string;
last_accessed?: string;
access_count: number;
}
export interface CreateMemoryRequest {
title: string;
content: string;
memory_type?: MemoryType;
tags?: string[];
topic_id?: string;
metadata?: Record<string, unknown>;
}
export interface UpdateMemoryRequest {
title?: string;
content?: string;
memory_type?: MemoryType;
tags?: string[];
topic_id?: string | null;
metadata?: Record<string, unknown>;
}
export interface GetMemoriesParams {
limit?: number;
offset?: number;
memory_type?: MemoryType;
tags?: string[] | string;
topic_id?: string;
sort_by?: 'created_at' | 'updated_at' | 'last_accessed' | 'access_count';
sort_order?: 'asc' | 'desc';
}
export interface SearchMemoryRequest {
query: string;
memory_types?: MemoryType[];
tags?: string[];
topic_id?: string;
limit?: number;
threshold?: number;
}
export interface MemorySearchResult extends MemoryEntry {
relevance_score: number;
}
export interface MemoryStats {
total_memories: number;
memories_by_type: Record<MemoryType, number>;
total_size_bytes: number;
avg_access_count: number;
most_accessed_memory?: MemoryEntry;
recent_memories: MemoryEntry[];
}
export interface BulkDeleteRequest {
memory_ids: string[];
}
export interface BulkDeleteResponse {
deleted_count: number;
failed_deletes?: string[];
}
export interface MemoryTopic {
id: string;
name: string;
description?: string;
color?: string;
icon?: string;
user_id: string;
parent_topic_id?: string;
is_system: boolean;
metadata?: Record<string, unknown>;
created_at: string;
updated_at: string;
}
export interface CreateTopicRequest {
name: string;
description?: string;
color?: string;
icon?: string;
parent_topic_id?: string;
}
export interface UpdateTopicRequest {
name?: string;
description?: string;
color?: string;
icon?: string;
parent_topic_id?: string;
}
export interface HealthStatus {
status: 'healthy' | 'unhealthy';
version: string;
timestamp: string;
dependencies: Record<string, {
status: string;
latency_ms?: number;
}>;
}
export interface PaginatedResponse<T> {
data?: T[];
memories?: T[];
results?: T[];
pagination: {
total: number;
limit: number;
offset: number;
has_more: boolean;
page?: number;
pages?: number;
};
total_results?: number;
search_time_ms?: number;
}
export interface ApiErrorResponse {
error: string;
message: string;
status_code: number;
details?: Record<string, unknown>;
}
export declare class APIClient {
private client;
private config;
constructor();
login(email: string, password: string): Promise<AuthResponse>;
register(email: string, password: string, organizationName?: string): Promise<AuthResponse>;
createMemory(data: CreateMemoryRequest): Promise<MemoryEntry>;
getMemories(params?: GetMemoriesParams): Promise<PaginatedResponse<MemoryEntry>>;
getMemory(id: string): Promise<MemoryEntry>;
updateMemory(id: string, data: UpdateMemoryRequest): Promise<MemoryEntry>;
deleteMemory(id: string): Promise<void>;
searchMemories(query: string, options?: Omit<SearchMemoryRequest, 'query'>): Promise<PaginatedResponse<MemorySearchResult>>;
getMemoryStats(): Promise<MemoryStats>;
bulkDeleteMemories(memoryIds: string[]): Promise<BulkDeleteResponse>;
createTopic(data: CreateTopicRequest): Promise<MemoryTopic>;
getTopics(): Promise<MemoryTopic[]>;
getTopic(id: string): Promise<MemoryTopic>;
updateTopic(id: string, data: UpdateTopicRequest): Promise<MemoryTopic>;
deleteTopic(id: string): Promise<void>;
getHealth(): Promise<HealthStatus>;
get<T = any>(url: string, config?: AxiosRequestConfig): Promise<T>;
post<T = any>(url: string, data?: any, config?: AxiosRequestConfig): Promise<T>;
put<T = any>(url: string, data?: any, config?: AxiosRequestConfig): Promise<T>;
delete<T = any>(url: string, config?: AxiosRequestConfig): Promise<T>;
request<T = Record<string, unknown>>(config: AxiosRequestConfig): Promise<T>;
}
export declare const apiClient: APIClient;