@cogitator-ai/memory 0.1.0
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.
- package/LICENSE +21 -0
- package/README.md +89 -0
- package/dist/__tests__/context-builder.test.d.ts +2 -0
- package/dist/__tests__/context-builder.test.d.ts.map +1 -0
- package/dist/__tests__/context-builder.test.js +139 -0
- package/dist/__tests__/context-builder.test.js.map +1 -0
- package/dist/__tests__/memory-adapter.test.d.ts +2 -0
- package/dist/__tests__/memory-adapter.test.d.ts.map +1 -0
- package/dist/__tests__/memory-adapter.test.js +236 -0
- package/dist/__tests__/memory-adapter.test.js.map +1 -0
- package/dist/__tests__/token-counter.test.d.ts +2 -0
- package/dist/__tests__/token-counter.test.d.ts.map +1 -0
- package/dist/__tests__/token-counter.test.js +56 -0
- package/dist/__tests__/token-counter.test.js.map +1 -0
- package/dist/adapters/base.d.ts +22 -0
- package/dist/adapters/base.d.ts.map +1 -0
- package/dist/adapters/base.js +16 -0
- package/dist/adapters/base.js.map +1 -0
- package/dist/adapters/index.d.ts +9 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +25 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/memory.d.ts +29 -0
- package/dist/adapters/memory.d.ts.map +1 -0
- package/dist/adapters/memory.js +130 -0
- package/dist/adapters/memory.js.map +1 -0
- package/dist/adapters/postgres.d.ts +43 -0
- package/dist/adapters/postgres.d.ts.map +1 -0
- package/dist/adapters/postgres.js +450 -0
- package/dist/adapters/postgres.js.map +1 -0
- package/dist/adapters/redis.d.ts +30 -0
- package/dist/adapters/redis.d.ts.map +1 -0
- package/dist/adapters/redis.js +186 -0
- package/dist/adapters/redis.js.map +1 -0
- package/dist/context-builder.d.ts +26 -0
- package/dist/context-builder.d.ts.map +1 -0
- package/dist/context-builder.js +154 -0
- package/dist/context-builder.js.map +1 -0
- package/dist/embedding/factory.d.ts +6 -0
- package/dist/embedding/factory.d.ts.map +1 -0
- package/dist/embedding/factory.js +18 -0
- package/dist/embedding/factory.js.map +1 -0
- package/dist/embedding/index.d.ts +7 -0
- package/dist/embedding/index.d.ts.map +1 -0
- package/dist/embedding/index.js +7 -0
- package/dist/embedding/index.js.map +1 -0
- package/dist/embedding/ollama.d.ts +19 -0
- package/dist/embedding/ollama.d.ts.map +1 -0
- package/dist/embedding/ollama.js +63 -0
- package/dist/embedding/ollama.js.map +1 -0
- package/dist/embedding/openai.d.ts +14 -0
- package/dist/embedding/openai.d.ts.map +1 -0
- package/dist/embedding/openai.js +56 -0
- package/dist/embedding/openai.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/schema.d.ts +169 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +52 -0
- package/dist/schema.js.map +1 -0
- package/dist/token-counter.d.ts +24 -0
- package/dist/token-counter.d.ts.map +1 -0
- package/dist/token-counter.js +40 -0
- package/dist/token-counter.js.map +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEtG,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,UAAU,CAAC;AAElB,YAAY,EACV,UAAU,EACV,MAAM,EACN,WAAW,EACX,IAAI,EACJ,SAAS,EACT,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,YAAY,GACb,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @cogitator-ai/memory
|
|
3
|
+
*
|
|
4
|
+
* Memory adapters for Cogitator AI agents
|
|
5
|
+
*/
|
|
6
|
+
export { BaseMemoryAdapter, InMemoryAdapter, createMemoryAdapter, } from './adapters/index';
|
|
7
|
+
export { RedisAdapter } from './adapters/redis';
|
|
8
|
+
export { PostgresAdapter } from './adapters/postgres';
|
|
9
|
+
export { ContextBuilder } from './context-builder';
|
|
10
|
+
export { countTokens, countMessageTokens, countMessagesTokens, truncateToTokens, } from './token-counter';
|
|
11
|
+
export { OpenAIEmbeddingService, OllamaEmbeddingService, createEmbeddingService, } from './embedding/index';
|
|
12
|
+
export { MemoryProviderSchema, InMemoryConfigSchema, RedisConfigSchema, PostgresConfigSchema, MemoryAdapterConfigSchema, ContextStrategySchema, ContextBuilderConfigSchema, EmbeddingProviderSchema, OpenAIEmbeddingConfigSchema, OllamaEmbeddingConfigSchema, EmbeddingServiceConfigSchema, } from './schema';
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,mBAAmB,GAEpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAqD,MAAM,mBAAmB,CAAC;AAEtG,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,UAAU,CAAC"}
|
package/dist/schema.d.ts
ADDED
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schemas for memory configuration validation
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
export declare const MemoryProviderSchema: z.ZodEnum<["memory", "redis", "postgres"]>;
|
|
6
|
+
export declare const InMemoryConfigSchema: z.ZodObject<{
|
|
7
|
+
provider: z.ZodLiteral<"memory">;
|
|
8
|
+
maxEntries: z.ZodOptional<z.ZodNumber>;
|
|
9
|
+
}, "strip", z.ZodTypeAny, {
|
|
10
|
+
provider: "memory";
|
|
11
|
+
maxEntries?: number | undefined;
|
|
12
|
+
}, {
|
|
13
|
+
provider: "memory";
|
|
14
|
+
maxEntries?: number | undefined;
|
|
15
|
+
}>;
|
|
16
|
+
export declare const RedisConfigSchema: z.ZodObject<{
|
|
17
|
+
provider: z.ZodLiteral<"redis">;
|
|
18
|
+
url: z.ZodString;
|
|
19
|
+
keyPrefix: z.ZodOptional<z.ZodString>;
|
|
20
|
+
ttl: z.ZodOptional<z.ZodNumber>;
|
|
21
|
+
}, "strip", z.ZodTypeAny, {
|
|
22
|
+
url: string;
|
|
23
|
+
provider: "redis";
|
|
24
|
+
keyPrefix?: string | undefined;
|
|
25
|
+
ttl?: number | undefined;
|
|
26
|
+
}, {
|
|
27
|
+
url: string;
|
|
28
|
+
provider: "redis";
|
|
29
|
+
keyPrefix?: string | undefined;
|
|
30
|
+
ttl?: number | undefined;
|
|
31
|
+
}>;
|
|
32
|
+
export declare const PostgresConfigSchema: z.ZodObject<{
|
|
33
|
+
provider: z.ZodLiteral<"postgres">;
|
|
34
|
+
connectionString: z.ZodString;
|
|
35
|
+
schema: z.ZodOptional<z.ZodString>;
|
|
36
|
+
poolSize: z.ZodOptional<z.ZodNumber>;
|
|
37
|
+
}, "strip", z.ZodTypeAny, {
|
|
38
|
+
provider: "postgres";
|
|
39
|
+
connectionString: string;
|
|
40
|
+
schema?: string | undefined;
|
|
41
|
+
poolSize?: number | undefined;
|
|
42
|
+
}, {
|
|
43
|
+
provider: "postgres";
|
|
44
|
+
connectionString: string;
|
|
45
|
+
schema?: string | undefined;
|
|
46
|
+
poolSize?: number | undefined;
|
|
47
|
+
}>;
|
|
48
|
+
export declare const MemoryAdapterConfigSchema: z.ZodDiscriminatedUnion<"provider", [z.ZodObject<{
|
|
49
|
+
provider: z.ZodLiteral<"memory">;
|
|
50
|
+
maxEntries: z.ZodOptional<z.ZodNumber>;
|
|
51
|
+
}, "strip", z.ZodTypeAny, {
|
|
52
|
+
provider: "memory";
|
|
53
|
+
maxEntries?: number | undefined;
|
|
54
|
+
}, {
|
|
55
|
+
provider: "memory";
|
|
56
|
+
maxEntries?: number | undefined;
|
|
57
|
+
}>, z.ZodObject<{
|
|
58
|
+
provider: z.ZodLiteral<"redis">;
|
|
59
|
+
url: z.ZodString;
|
|
60
|
+
keyPrefix: z.ZodOptional<z.ZodString>;
|
|
61
|
+
ttl: z.ZodOptional<z.ZodNumber>;
|
|
62
|
+
}, "strip", z.ZodTypeAny, {
|
|
63
|
+
url: string;
|
|
64
|
+
provider: "redis";
|
|
65
|
+
keyPrefix?: string | undefined;
|
|
66
|
+
ttl?: number | undefined;
|
|
67
|
+
}, {
|
|
68
|
+
url: string;
|
|
69
|
+
provider: "redis";
|
|
70
|
+
keyPrefix?: string | undefined;
|
|
71
|
+
ttl?: number | undefined;
|
|
72
|
+
}>, z.ZodObject<{
|
|
73
|
+
provider: z.ZodLiteral<"postgres">;
|
|
74
|
+
connectionString: z.ZodString;
|
|
75
|
+
schema: z.ZodOptional<z.ZodString>;
|
|
76
|
+
poolSize: z.ZodOptional<z.ZodNumber>;
|
|
77
|
+
}, "strip", z.ZodTypeAny, {
|
|
78
|
+
provider: "postgres";
|
|
79
|
+
connectionString: string;
|
|
80
|
+
schema?: string | undefined;
|
|
81
|
+
poolSize?: number | undefined;
|
|
82
|
+
}, {
|
|
83
|
+
provider: "postgres";
|
|
84
|
+
connectionString: string;
|
|
85
|
+
schema?: string | undefined;
|
|
86
|
+
poolSize?: number | undefined;
|
|
87
|
+
}>]>;
|
|
88
|
+
export declare const ContextStrategySchema: z.ZodEnum<["recent", "relevant", "hybrid"]>;
|
|
89
|
+
export declare const ContextBuilderConfigSchema: z.ZodObject<{
|
|
90
|
+
maxTokens: z.ZodNumber;
|
|
91
|
+
reserveTokens: z.ZodOptional<z.ZodNumber>;
|
|
92
|
+
strategy: z.ZodEnum<["recent", "relevant", "hybrid"]>;
|
|
93
|
+
includeSystemPrompt: z.ZodOptional<z.ZodBoolean>;
|
|
94
|
+
includeFacts: z.ZodOptional<z.ZodBoolean>;
|
|
95
|
+
includeSemanticContext: z.ZodOptional<z.ZodBoolean>;
|
|
96
|
+
}, "strip", z.ZodTypeAny, {
|
|
97
|
+
maxTokens: number;
|
|
98
|
+
strategy: "recent" | "relevant" | "hybrid";
|
|
99
|
+
reserveTokens?: number | undefined;
|
|
100
|
+
includeSystemPrompt?: boolean | undefined;
|
|
101
|
+
includeFacts?: boolean | undefined;
|
|
102
|
+
includeSemanticContext?: boolean | undefined;
|
|
103
|
+
}, {
|
|
104
|
+
maxTokens: number;
|
|
105
|
+
strategy: "recent" | "relevant" | "hybrid";
|
|
106
|
+
reserveTokens?: number | undefined;
|
|
107
|
+
includeSystemPrompt?: boolean | undefined;
|
|
108
|
+
includeFacts?: boolean | undefined;
|
|
109
|
+
includeSemanticContext?: boolean | undefined;
|
|
110
|
+
}>;
|
|
111
|
+
export declare const EmbeddingProviderSchema: z.ZodEnum<["openai", "ollama"]>;
|
|
112
|
+
export declare const OpenAIEmbeddingConfigSchema: z.ZodObject<{
|
|
113
|
+
provider: z.ZodLiteral<"openai">;
|
|
114
|
+
apiKey: z.ZodString;
|
|
115
|
+
model: z.ZodOptional<z.ZodString>;
|
|
116
|
+
baseUrl: z.ZodOptional<z.ZodString>;
|
|
117
|
+
}, "strip", z.ZodTypeAny, {
|
|
118
|
+
provider: "openai";
|
|
119
|
+
apiKey: string;
|
|
120
|
+
model?: string | undefined;
|
|
121
|
+
baseUrl?: string | undefined;
|
|
122
|
+
}, {
|
|
123
|
+
provider: "openai";
|
|
124
|
+
apiKey: string;
|
|
125
|
+
model?: string | undefined;
|
|
126
|
+
baseUrl?: string | undefined;
|
|
127
|
+
}>;
|
|
128
|
+
export declare const OllamaEmbeddingConfigSchema: z.ZodObject<{
|
|
129
|
+
provider: z.ZodLiteral<"ollama">;
|
|
130
|
+
model: z.ZodOptional<z.ZodString>;
|
|
131
|
+
baseUrl: z.ZodOptional<z.ZodString>;
|
|
132
|
+
}, "strip", z.ZodTypeAny, {
|
|
133
|
+
provider: "ollama";
|
|
134
|
+
model?: string | undefined;
|
|
135
|
+
baseUrl?: string | undefined;
|
|
136
|
+
}, {
|
|
137
|
+
provider: "ollama";
|
|
138
|
+
model?: string | undefined;
|
|
139
|
+
baseUrl?: string | undefined;
|
|
140
|
+
}>;
|
|
141
|
+
export declare const EmbeddingServiceConfigSchema: z.ZodDiscriminatedUnion<"provider", [z.ZodObject<{
|
|
142
|
+
provider: z.ZodLiteral<"openai">;
|
|
143
|
+
apiKey: z.ZodString;
|
|
144
|
+
model: z.ZodOptional<z.ZodString>;
|
|
145
|
+
baseUrl: z.ZodOptional<z.ZodString>;
|
|
146
|
+
}, "strip", z.ZodTypeAny, {
|
|
147
|
+
provider: "openai";
|
|
148
|
+
apiKey: string;
|
|
149
|
+
model?: string | undefined;
|
|
150
|
+
baseUrl?: string | undefined;
|
|
151
|
+
}, {
|
|
152
|
+
provider: "openai";
|
|
153
|
+
apiKey: string;
|
|
154
|
+
model?: string | undefined;
|
|
155
|
+
baseUrl?: string | undefined;
|
|
156
|
+
}>, z.ZodObject<{
|
|
157
|
+
provider: z.ZodLiteral<"ollama">;
|
|
158
|
+
model: z.ZodOptional<z.ZodString>;
|
|
159
|
+
baseUrl: z.ZodOptional<z.ZodString>;
|
|
160
|
+
}, "strip", z.ZodTypeAny, {
|
|
161
|
+
provider: "ollama";
|
|
162
|
+
model?: string | undefined;
|
|
163
|
+
baseUrl?: string | undefined;
|
|
164
|
+
}, {
|
|
165
|
+
provider: "ollama";
|
|
166
|
+
model?: string | undefined;
|
|
167
|
+
baseUrl?: string | undefined;
|
|
168
|
+
}>]>;
|
|
169
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,oBAAoB,4CAA0C,CAAC;AAE5E,eAAO,MAAM,oBAAoB;;;;;;;;;EAG/B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAK5B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAK/B,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIpC,CAAC;AAEH,eAAO,MAAM,qBAAqB,6CAA2C,CAAC;AAE9E,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;EAOrC,CAAC;AAEH,eAAO,MAAM,uBAAuB,iCAA+B,CAAC;AAEpE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;EAKtC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;EAItC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGvC,CAAC"}
|
package/dist/schema.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schemas for memory configuration validation
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
export const MemoryProviderSchema = z.enum(['memory', 'redis', 'postgres']);
|
|
6
|
+
export const InMemoryConfigSchema = z.object({
|
|
7
|
+
provider: z.literal('memory'),
|
|
8
|
+
maxEntries: z.number().positive().optional(),
|
|
9
|
+
});
|
|
10
|
+
export const RedisConfigSchema = z.object({
|
|
11
|
+
provider: z.literal('redis'),
|
|
12
|
+
url: z.string().url(),
|
|
13
|
+
keyPrefix: z.string().optional(),
|
|
14
|
+
ttl: z.number().positive().optional(),
|
|
15
|
+
});
|
|
16
|
+
export const PostgresConfigSchema = z.object({
|
|
17
|
+
provider: z.literal('postgres'),
|
|
18
|
+
connectionString: z.string(),
|
|
19
|
+
schema: z.string().optional(),
|
|
20
|
+
poolSize: z.number().positive().optional(),
|
|
21
|
+
});
|
|
22
|
+
export const MemoryAdapterConfigSchema = z.discriminatedUnion('provider', [
|
|
23
|
+
InMemoryConfigSchema,
|
|
24
|
+
RedisConfigSchema,
|
|
25
|
+
PostgresConfigSchema,
|
|
26
|
+
]);
|
|
27
|
+
export const ContextStrategySchema = z.enum(['recent', 'relevant', 'hybrid']);
|
|
28
|
+
export const ContextBuilderConfigSchema = z.object({
|
|
29
|
+
maxTokens: z.number().positive(),
|
|
30
|
+
reserveTokens: z.number().positive().optional(),
|
|
31
|
+
strategy: ContextStrategySchema,
|
|
32
|
+
includeSystemPrompt: z.boolean().optional(),
|
|
33
|
+
includeFacts: z.boolean().optional(),
|
|
34
|
+
includeSemanticContext: z.boolean().optional(),
|
|
35
|
+
});
|
|
36
|
+
export const EmbeddingProviderSchema = z.enum(['openai', 'ollama']);
|
|
37
|
+
export const OpenAIEmbeddingConfigSchema = z.object({
|
|
38
|
+
provider: z.literal('openai'),
|
|
39
|
+
apiKey: z.string(),
|
|
40
|
+
model: z.string().optional(),
|
|
41
|
+
baseUrl: z.string().url().optional(),
|
|
42
|
+
});
|
|
43
|
+
export const OllamaEmbeddingConfigSchema = z.object({
|
|
44
|
+
provider: z.literal('ollama'),
|
|
45
|
+
model: z.string().optional(),
|
|
46
|
+
baseUrl: z.string().url().optional(),
|
|
47
|
+
});
|
|
48
|
+
export const EmbeddingServiceConfigSchema = z.discriminatedUnion('provider', [
|
|
49
|
+
OpenAIEmbeddingConfigSchema,
|
|
50
|
+
OllamaEmbeddingConfigSchema,
|
|
51
|
+
]);
|
|
52
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC5B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC/B,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,kBAAkB,CAAC,UAAU,EAAE;IACxE,oBAAoB;IACpB,iBAAiB;IACjB,oBAAoB;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE9E,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC/C,QAAQ,EAAE,qBAAqB;IAC/B,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC3C,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACpC,sBAAsB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC/C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,kBAAkB,CAAC,UAAU,EAAE;IAC3E,2BAA2B;IAC3B,2BAA2B;CAC5B,CAAC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token counting utilities
|
|
3
|
+
*
|
|
4
|
+
* Uses simple estimation (~4 chars per token for English).
|
|
5
|
+
* More accurate than nothing, avoids tiktoken WASM dependency.
|
|
6
|
+
*/
|
|
7
|
+
import type { Message } from '@cogitator-ai/types';
|
|
8
|
+
/**
|
|
9
|
+
* Estimate token count for a string
|
|
10
|
+
*/
|
|
11
|
+
export declare function countTokens(text: string): number;
|
|
12
|
+
/**
|
|
13
|
+
* Estimate token count for a message (includes overhead)
|
|
14
|
+
*/
|
|
15
|
+
export declare function countMessageTokens(message: Message): number;
|
|
16
|
+
/**
|
|
17
|
+
* Estimate token count for an array of messages
|
|
18
|
+
*/
|
|
19
|
+
export declare function countMessagesTokens(messages: Message[]): number;
|
|
20
|
+
/**
|
|
21
|
+
* Truncate text to fit within token limit
|
|
22
|
+
*/
|
|
23
|
+
export declare function truncateToTokens(text: string, maxTokens: number): string;
|
|
24
|
+
//# sourceMappingURL=token-counter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-counter.d.ts","sourceRoot":"","sources":["../src/token-counter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAKnD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGhD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAE3D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAE/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAQxE"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token counting utilities
|
|
3
|
+
*
|
|
4
|
+
* Uses simple estimation (~4 chars per token for English).
|
|
5
|
+
* More accurate than nothing, avoids tiktoken WASM dependency.
|
|
6
|
+
*/
|
|
7
|
+
const CHARS_PER_TOKEN = 4;
|
|
8
|
+
const MESSAGE_OVERHEAD = 4;
|
|
9
|
+
/**
|
|
10
|
+
* Estimate token count for a string
|
|
11
|
+
*/
|
|
12
|
+
export function countTokens(text) {
|
|
13
|
+
if (!text)
|
|
14
|
+
return 0;
|
|
15
|
+
return Math.ceil(text.length / CHARS_PER_TOKEN);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Estimate token count for a message (includes overhead)
|
|
19
|
+
*/
|
|
20
|
+
export function countMessageTokens(message) {
|
|
21
|
+
return countTokens(message.content) + MESSAGE_OVERHEAD;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Estimate token count for an array of messages
|
|
25
|
+
*/
|
|
26
|
+
export function countMessagesTokens(messages) {
|
|
27
|
+
return messages.reduce((sum, msg) => sum + countMessageTokens(msg), 0);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Truncate text to fit within token limit
|
|
31
|
+
*/
|
|
32
|
+
export function truncateToTokens(text, maxTokens) {
|
|
33
|
+
const currentTokens = countTokens(text);
|
|
34
|
+
if (currentTokens <= maxTokens) {
|
|
35
|
+
return text;
|
|
36
|
+
}
|
|
37
|
+
const maxChars = maxTokens * CHARS_PER_TOKEN;
|
|
38
|
+
return text.slice(0, maxChars);
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=token-counter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-counter.js","sourceRoot":"","sources":["../src/token-counter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAE3B;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,CAAC;IACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,OAAO,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,gBAAgB,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAmB;IACrD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACzE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,SAAiB;IAC9D,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,aAAa,IAAI,SAAS,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS,GAAG,eAAe,CAAC;IAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AACjC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@cogitator-ai/memory",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Memory adapters for Cogitator AI agents",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist"
|
|
16
|
+
],
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"@types/pg": "^8.10.9",
|
|
19
|
+
"nanoid": "^5.0.4",
|
|
20
|
+
"zod": "^3.22.4",
|
|
21
|
+
"@cogitator-ai/redis": "0.1.0",
|
|
22
|
+
"@cogitator-ai/types": "0.1.0"
|
|
23
|
+
},
|
|
24
|
+
"optionalDependencies": {
|
|
25
|
+
"ioredis": "^5.3.2",
|
|
26
|
+
"pg": "^8.11.3",
|
|
27
|
+
"openai": "^4.24.0"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"typescript": "^5.3.0",
|
|
31
|
+
"vitest": "^1.0.0"
|
|
32
|
+
},
|
|
33
|
+
"peerDependencies": {
|
|
34
|
+
"ioredis": "^5.0.0",
|
|
35
|
+
"pg": "^8.0.0"
|
|
36
|
+
},
|
|
37
|
+
"peerDependenciesMeta": {
|
|
38
|
+
"ioredis": {
|
|
39
|
+
"optional": true
|
|
40
|
+
},
|
|
41
|
+
"pg": {
|
|
42
|
+
"optional": true
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"repository": {
|
|
46
|
+
"type": "git",
|
|
47
|
+
"url": "https://github.com/eL1fe/cogitator.git",
|
|
48
|
+
"directory": "packages/memory"
|
|
49
|
+
},
|
|
50
|
+
"publishConfig": {
|
|
51
|
+
"access": "public"
|
|
52
|
+
},
|
|
53
|
+
"license": "MIT",
|
|
54
|
+
"scripts": {
|
|
55
|
+
"build": "tsc",
|
|
56
|
+
"dev": "tsc --watch",
|
|
57
|
+
"clean": "rm -rf dist",
|
|
58
|
+
"typecheck": "tsc --noEmit",
|
|
59
|
+
"test": "vitest run",
|
|
60
|
+
"test:watch": "vitest"
|
|
61
|
+
}
|
|
62
|
+
}
|