@langchain/langgraph-checkpoint-redis 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,132 @@
1
+ import { createClient, createCluster } from "redis";
2
+ /** A conventional Redis connection. */
3
+ export type RedisClientConnection = ReturnType<typeof createClient>;
4
+ /** A clustered Redis connection. */
5
+ export type RedisClusterConnection = ReturnType<typeof createCluster>;
6
+ /** A Redis connection, clustered or conventional. */
7
+ export type RedisConnection = RedisClientConnection | RedisClusterConnection;
8
+ import { type GetOperation, type ListNamespacesOperation, type Operation, type PutOperation, type SearchOperation } from "@langchain/langgraph-checkpoint";
9
+ export declare function isPutOperation(op: Operation): op is PutOperation;
10
+ export declare function isGetOperation(op: Operation): op is GetOperation;
11
+ export declare function isSearchOperation(op: Operation): op is SearchOperation;
12
+ export declare function isListNamespacesOperation(op: Operation): op is ListNamespacesOperation;
13
+ export interface FilterOperators {
14
+ $eq?: any;
15
+ $ne?: any;
16
+ $gt?: number;
17
+ $gte?: number;
18
+ $lt?: number;
19
+ $lte?: number;
20
+ $in?: any[];
21
+ $nin?: any[];
22
+ $exists?: boolean;
23
+ }
24
+ export type FilterValue = any | FilterOperators;
25
+ export type Filter = Record<string, FilterValue>;
26
+ /**
27
+ * Internal class for evaluating filters against documents.
28
+ * Supports MongoDB-style query operators.
29
+ */
30
+ declare class FilterBuilder {
31
+ /**
32
+ * Evaluates if a document matches the given filter criteria.
33
+ * Supports advanced operators like $gt, $lt, $in, etc.
34
+ */
35
+ static matchesFilter(doc: Record<string, any>, filter: Filter): boolean;
36
+ /**
37
+ * Builds a Redis Search query string from filter criteria.
38
+ * Note: This is limited by RediSearch capabilities and may not support all operators.
39
+ */
40
+ static buildRedisSearchQuery(filter: Filter, prefix?: string): {
41
+ query: string;
42
+ useClientFilter: boolean;
43
+ };
44
+ private static matchesFieldFilter;
45
+ private static matchesOperators;
46
+ private static matchesOperator;
47
+ private static isEqual;
48
+ private static getNestedValue;
49
+ }
50
+ export interface Item {
51
+ value: any;
52
+ key: string;
53
+ namespace: string[];
54
+ created_at: Date;
55
+ updated_at: Date;
56
+ }
57
+ export interface SearchItem extends Item {
58
+ score?: number;
59
+ }
60
+ export interface IndexConfig {
61
+ dims: number;
62
+ embed?: any;
63
+ distanceType?: "cosine" | "l2" | "ip";
64
+ fields?: string[];
65
+ vectorStorageType?: string;
66
+ similarityThreshold?: number;
67
+ }
68
+ export interface TTLConfig {
69
+ defaultTTL?: number;
70
+ refreshOnRead?: boolean;
71
+ }
72
+ export interface StoreConfig {
73
+ index?: IndexConfig;
74
+ ttl?: TTLConfig;
75
+ }
76
+ export declare class RedisStore {
77
+ private readonly client;
78
+ private readonly indexConfig?;
79
+ private readonly ttlConfig?;
80
+ private readonly embeddings?;
81
+ constructor(client: RedisConnection, config?: StoreConfig);
82
+ static fromConnString(connString: string, config?: StoreConfig): Promise<RedisStore>;
83
+ static fromCluster(rootNodes: Array<{
84
+ url: string;
85
+ }>, config?: StoreConfig): Promise<RedisStore>;
86
+ setup(): Promise<void>;
87
+ get(namespace: string[], key: string, options?: {
88
+ refreshTTL?: boolean;
89
+ }): Promise<Item | null>;
90
+ put(namespace: string[], key: string, value: any, options?: {
91
+ ttl?: number;
92
+ index?: boolean | string[];
93
+ }): Promise<void>;
94
+ delete(namespace: string[], key: string): Promise<void>;
95
+ search(namespacePrefix: string[], options?: {
96
+ filter?: Filter;
97
+ query?: string;
98
+ limit?: number;
99
+ offset?: number;
100
+ refreshTTL?: boolean;
101
+ similarityThreshold?: number;
102
+ }): Promise<SearchItem[]>;
103
+ listNamespaces(options?: {
104
+ prefix?: string[];
105
+ suffix?: string[];
106
+ maxDepth?: number;
107
+ limit?: number;
108
+ offset?: number;
109
+ }): Promise<string[][]>;
110
+ batch(ops: Operation[]): Promise<any[]>;
111
+ close(): Promise<void>;
112
+ /**
113
+ * Get statistics about the store.
114
+ * Returns document counts and other metrics.
115
+ */
116
+ getStatistics(): Promise<{
117
+ totalDocuments: number;
118
+ namespaceCount: number;
119
+ vectorDocuments?: number;
120
+ indexInfo?: Record<string, any>;
121
+ }>;
122
+ private validateNamespace;
123
+ private refreshItemTTL;
124
+ private escapeTagValue;
125
+ /**
126
+ * Calculate similarity score based on the distance metric.
127
+ * Converts raw distance to a normalized similarity score [0,1].
128
+ */
129
+ private calculateSimilarityScore;
130
+ }
131
+ export { FilterBuilder };
132
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}