| import { z } from "zod";
|
|
|
|
|
| export const MemorySettingsExtendedSchema = z
|
| .object({
|
|
|
| enabled: z.boolean().optional(),
|
| maxTokens: z.number().int().min(0).max(16000).optional(),
|
| retentionDays: z.number().int().min(1).max(365).optional(),
|
| strategy: z.enum(["recent", "semantic", "hybrid"]).optional(),
|
| skillsEnabled: z.boolean().optional(),
|
|
|
| embeddingSource: z.enum(["remote", "static", "transformers", "auto"]).optional(),
|
| embeddingProviderModel: z.string().nullable().optional(),
|
| transformersEnabled: z.boolean().optional(),
|
| staticEnabled: z.boolean().optional(),
|
| rerankEnabled: z.boolean().optional(),
|
| rerankProviderModel: z.string().nullable().optional(),
|
| vectorStore: z.enum(["sqlite-vec", "qdrant", "auto"]).optional(),
|
| })
|
| .strict();
|
|
|
|
|
| export const MemoryUpdatePutSchema = z
|
| .object({
|
| type: z.enum(["factual", "episodic", "procedural", "semantic"]).optional(),
|
| key: z.string().min(1).optional(),
|
| content: z.string().min(1).optional(),
|
| metadata: z.record(z.string(), z.unknown()).optional(),
|
| })
|
| .strict();
|
|
|
|
|
| export const RetrievePreviewSchema = z
|
| .object({
|
| query: z.string().min(1),
|
| strategy: z.enum(["exact", "semantic", "hybrid"]).default("hybrid"),
|
| maxTokens: z.number().int().positive().max(16000).default(2000),
|
| apiKeyId: z.string().optional(),
|
| limit: z.number().int().positive().max(100).default(20),
|
| })
|
| .strict();
|
|
|
|
|
| export const MemoryReindexSchema = z
|
| .object({
|
| force: z.boolean().default(false),
|
| })
|
| .strict();
|
|
|
|
|
| export const MemorySummarizeSchema = z
|
| .object({
|
| olderThanDays: z.number().int().positive().max(365).default(30),
|
| apiKeyId: z.string().optional(),
|
| dryRun: z.boolean().default(false),
|
| })
|
| .strict();
|
|
|
|
|
| export const EmbeddingProviderListingSchema = z.object({
|
| providers: z.array(
|
| z.object({
|
| provider: z.string(),
|
| hasKey: z.boolean(),
|
| models: z.array(
|
| z.object({
|
| id: z.string(),
|
| name: z.string(),
|
| dimensions: z.number().nullable(),
|
| }),
|
| ),
|
| }),
|
| ),
|
| });
|
|
|
|
|
| export const MemoryEngineStatusSchema = z.object({
|
| keyword: z.object({
|
| available: z.literal(true),
|
| backend: z.literal("FTS5"),
|
| }),
|
| embedding: z.object({
|
| source: z.enum(["remote", "static", "transformers"]).nullable(),
|
| model: z.string().nullable(),
|
| dimensions: z.number().nullable(),
|
| available: z.boolean(),
|
| reason: z.string(),
|
| cacheStats: z.object({ hits: z.number(), misses: z.number(), size: z.number() }),
|
| }),
|
| vectorStore: z.object({
|
| backend: z.enum(["sqlite-vec", "qdrant", "none"]),
|
| available: z.boolean(),
|
| rowCount: z.number(),
|
| needsReindex: z.number(),
|
| reason: z.string(),
|
| }),
|
| qdrant: z.object({
|
| enabled: z.boolean(),
|
| healthy: z.boolean().nullable(),
|
| latencyMs: z.number().nullable(),
|
| error: z.string().nullable(),
|
| }),
|
| rerank: z.object({
|
| enabled: z.boolean(),
|
| provider: z.string().nullable(),
|
| model: z.string().nullable(),
|
| available: z.boolean(),
|
| reason: z.string(),
|
| }),
|
| });
|
|
|
|
|
| export const RetrievePreviewResultSchema = z.object({
|
| memories: z.array(
|
| z.object({
|
| id: z.string(),
|
| type: z.enum(["factual", "episodic", "procedural", "semantic"]),
|
| key: z.string(),
|
| content: z.string(),
|
| score: z.number(),
|
| tokens: z.number(),
|
| tier: z.enum(["fts5", "vector", "hybrid-rrf", "qdrant"]),
|
| vecScore: z.number().nullable(),
|
| ftsScore: z.number().nullable(),
|
| }),
|
| ),
|
| resolution: z.object({
|
| embeddingSource: z.enum(["remote", "static", "transformers"]).nullable(),
|
| embeddingModel: z.string().nullable(),
|
| vectorStore: z.enum(["sqlite-vec", "qdrant", "none"]),
|
| strategyUsed: z.enum(["exact", "semantic", "hybrid"]),
|
| rerankApplied: z.boolean(),
|
| fallbackReason: z.string().nullable(),
|
| }),
|
| totalTokensUsed: z.number(),
|
| budgetMaxTokens: z.number(),
|
| });
|
|
|
| export type MemorySettingsExtended = z.infer<typeof MemorySettingsExtendedSchema>;
|
| export type MemoryUpdatePut = z.infer<typeof MemoryUpdatePutSchema>;
|
| export type RetrievePreview = z.infer<typeof RetrievePreviewSchema>;
|
| export type MemoryReindex = z.infer<typeof MemoryReindexSchema>;
|
| export type MemorySummarize = z.infer<typeof MemorySummarizeSchema>;
|
| export type EmbeddingProviderListings = z.infer<typeof EmbeddingProviderListingSchema>;
|
| export type MemoryEngineStatus = z.infer<typeof MemoryEngineStatusSchema>;
|
| export type RetrievePreviewResult = z.infer<typeof RetrievePreviewResultSchema>;
|
|
|