audrey 0.15.0 → 0.16.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.
- package/LICENSE +21 -21
- package/README.md +808 -681
- package/mcp-server/config.js +80 -76
- package/mcp-server/index.js +728 -456
- package/package.json +76 -77
- package/src/adaptive.js +53 -53
- package/src/affect.js +64 -64
- package/src/audrey.js +604 -647
- package/src/causal.js +95 -95
- package/src/confidence.js +120 -120
- package/src/consolidate.js +265 -242
- package/src/context.js +15 -15
- package/src/db.js +370 -333
- package/src/decay.js +84 -84
- package/src/embedding.js +256 -256
- package/src/encode.js +63 -85
- package/src/export.js +67 -61
- package/src/forget.js +111 -111
- package/src/import.js +245 -123
- package/src/index.js +27 -20
- package/src/interference.js +51 -51
- package/src/introspect.js +48 -48
- package/src/llm.js +246 -240
- package/src/migrate.js +58 -58
- package/src/prompts.js +223 -223
- package/src/recall.js +352 -329
- package/src/rollback.js +42 -42
- package/src/ulid.js +18 -18
- package/src/utils.js +38 -38
- package/src/validate.js +172 -172
package/mcp-server/config.js
CHANGED
|
@@ -1,76 +1,80 @@
|
|
|
1
|
-
import { homedir } from 'node:os';
|
|
2
|
-
import { join } from 'node:path';
|
|
3
|
-
|
|
4
|
-
export const VERSION = '0.
|
|
5
|
-
export const SERVER_NAME = 'audrey-memory';
|
|
6
|
-
export const DEFAULT_DATA_DIR = join(homedir(), '.audrey', 'data');
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Resolves which embedding provider to use.
|
|
10
|
-
* Priority: explicit config -> gemini (if GOOGLE_API_KEY exists) -> local
|
|
11
|
-
* OpenAI is NEVER auto-selected -- must be set explicitly via AUDREY_EMBEDDING_PROVIDER=openai.
|
|
12
|
-
*/
|
|
13
|
-
export function resolveEmbeddingProvider(env, explicit) {
|
|
14
|
-
if (explicit && explicit !== 'auto') {
|
|
15
|
-
const dims = explicit === 'openai' ? 1536 : explicit === 'gemini' ? 3072 : 384;
|
|
16
|
-
const apiKey = explicit === 'gemini'
|
|
17
|
-
? (env.GOOGLE_API_KEY || env.GEMINI_API_KEY)
|
|
18
|
-
: explicit === 'openai'
|
|
19
|
-
? env.OPENAI_API_KEY
|
|
20
|
-
: undefined;
|
|
21
|
-
const result = { provider: explicit, apiKey, dimensions: dims };
|
|
22
|
-
if (explicit === 'local') result.device = env.AUDREY_DEVICE || 'gpu';
|
|
23
|
-
return result;
|
|
24
|
-
}
|
|
25
|
-
if (env.GOOGLE_API_KEY || env.GEMINI_API_KEY) {
|
|
26
|
-
return { provider: 'gemini', apiKey: env.GOOGLE_API_KEY || env.GEMINI_API_KEY, dimensions: 3072 };
|
|
27
|
-
}
|
|
28
|
-
return { provider: 'local', dimensions: 384, device: env.AUDREY_DEVICE || 'gpu' };
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export function buildAudreyConfig() {
|
|
32
|
-
const dataDir = process.env.AUDREY_DATA_DIR || DEFAULT_DATA_DIR;
|
|
33
|
-
const agent = process.env.AUDREY_AGENT || 'claude-code';
|
|
34
|
-
const explicitProvider = process.env.AUDREY_EMBEDDING_PROVIDER;
|
|
35
|
-
const llmProvider = process.env.AUDREY_LLM_PROVIDER;
|
|
36
|
-
|
|
37
|
-
const embedding = resolveEmbeddingProvider(process.env, explicitProvider);
|
|
38
|
-
|
|
39
|
-
const config = { dataDir, agent, embedding };
|
|
40
|
-
|
|
41
|
-
if (llmProvider === 'anthropic') {
|
|
42
|
-
config.llm = { provider: 'anthropic', apiKey: process.env.ANTHROPIC_API_KEY };
|
|
43
|
-
} else if (llmProvider === 'openai') {
|
|
44
|
-
config.llm = { provider: 'openai', apiKey: process.env.OPENAI_API_KEY };
|
|
45
|
-
} else if (llmProvider === 'mock') {
|
|
46
|
-
config.llm = { provider: 'mock' };
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
return config;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export function buildInstallArgs(env = process.env) {
|
|
53
|
-
const envPairs = [`AUDREY_DATA_DIR=${DEFAULT_DATA_DIR}`];
|
|
54
|
-
|
|
55
|
-
const embedding = resolveEmbeddingProvider(env);
|
|
56
|
-
if (embedding.provider === 'gemini') {
|
|
57
|
-
envPairs.push('AUDREY_EMBEDDING_PROVIDER=gemini');
|
|
58
|
-
envPairs.push(`GOOGLE_API_KEY=${embedding.apiKey}`);
|
|
59
|
-
} else if (embedding.provider === 'openai') {
|
|
60
|
-
envPairs.push('AUDREY_EMBEDDING_PROVIDER=openai');
|
|
61
|
-
envPairs.push(`OPENAI_API_KEY=${env.OPENAI_API_KEY}`);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
if (env.ANTHROPIC_API_KEY) {
|
|
65
|
-
envPairs.push('AUDREY_LLM_PROVIDER=anthropic');
|
|
66
|
-
envPairs.push(`ANTHROPIC_API_KEY=${env.ANTHROPIC_API_KEY}`);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
const args = ['mcp', 'add', '-s', 'user', SERVER_NAME];
|
|
70
|
-
for (const pair of envPairs) {
|
|
71
|
-
args.push('-e', pair);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
1
|
+
import { homedir } from 'node:os';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
|
|
4
|
+
export const VERSION = '0.16.1';
|
|
5
|
+
export const SERVER_NAME = 'audrey-memory';
|
|
6
|
+
export const DEFAULT_DATA_DIR = join(homedir(), '.audrey', 'data');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Resolves which embedding provider to use.
|
|
10
|
+
* Priority: explicit config -> gemini (if GOOGLE_API_KEY exists) -> local
|
|
11
|
+
* OpenAI is NEVER auto-selected -- must be set explicitly via AUDREY_EMBEDDING_PROVIDER=openai.
|
|
12
|
+
*/
|
|
13
|
+
export function resolveEmbeddingProvider(env, explicit) {
|
|
14
|
+
if (explicit && explicit !== 'auto') {
|
|
15
|
+
const dims = explicit === 'openai' ? 1536 : explicit === 'gemini' ? 3072 : 384;
|
|
16
|
+
const apiKey = explicit === 'gemini'
|
|
17
|
+
? (env.GOOGLE_API_KEY || env.GEMINI_API_KEY)
|
|
18
|
+
: explicit === 'openai'
|
|
19
|
+
? env.OPENAI_API_KEY
|
|
20
|
+
: undefined;
|
|
21
|
+
const result = { provider: explicit, apiKey, dimensions: dims };
|
|
22
|
+
if (explicit === 'local') result.device = env.AUDREY_DEVICE || 'gpu';
|
|
23
|
+
return result;
|
|
24
|
+
}
|
|
25
|
+
if (env.GOOGLE_API_KEY || env.GEMINI_API_KEY) {
|
|
26
|
+
return { provider: 'gemini', apiKey: env.GOOGLE_API_KEY || env.GEMINI_API_KEY, dimensions: 3072 };
|
|
27
|
+
}
|
|
28
|
+
return { provider: 'local', dimensions: 384, device: env.AUDREY_DEVICE || 'gpu' };
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function buildAudreyConfig() {
|
|
32
|
+
const dataDir = process.env.AUDREY_DATA_DIR || DEFAULT_DATA_DIR;
|
|
33
|
+
const agent = process.env.AUDREY_AGENT || 'claude-code';
|
|
34
|
+
const explicitProvider = process.env.AUDREY_EMBEDDING_PROVIDER;
|
|
35
|
+
const llmProvider = process.env.AUDREY_LLM_PROVIDER;
|
|
36
|
+
|
|
37
|
+
const embedding = resolveEmbeddingProvider(process.env, explicitProvider);
|
|
38
|
+
|
|
39
|
+
const config = { dataDir, agent, embedding };
|
|
40
|
+
|
|
41
|
+
if (llmProvider === 'anthropic') {
|
|
42
|
+
config.llm = { provider: 'anthropic', apiKey: process.env.ANTHROPIC_API_KEY };
|
|
43
|
+
} else if (llmProvider === 'openai') {
|
|
44
|
+
config.llm = { provider: 'openai', apiKey: process.env.OPENAI_API_KEY };
|
|
45
|
+
} else if (llmProvider === 'mock') {
|
|
46
|
+
config.llm = { provider: 'mock' };
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return config;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export function buildInstallArgs(env = process.env) {
|
|
53
|
+
const envPairs = [`AUDREY_DATA_DIR=${DEFAULT_DATA_DIR}`];
|
|
54
|
+
|
|
55
|
+
const embedding = resolveEmbeddingProvider(env);
|
|
56
|
+
if (embedding.provider === 'gemini') {
|
|
57
|
+
envPairs.push('AUDREY_EMBEDDING_PROVIDER=gemini');
|
|
58
|
+
envPairs.push(`GOOGLE_API_KEY=${embedding.apiKey}`);
|
|
59
|
+
} else if (embedding.provider === 'openai') {
|
|
60
|
+
envPairs.push('AUDREY_EMBEDDING_PROVIDER=openai');
|
|
61
|
+
envPairs.push(`OPENAI_API_KEY=${env.OPENAI_API_KEY}`);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (env.ANTHROPIC_API_KEY) {
|
|
65
|
+
envPairs.push('AUDREY_LLM_PROVIDER=anthropic');
|
|
66
|
+
envPairs.push(`ANTHROPIC_API_KEY=${env.ANTHROPIC_API_KEY}`);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const args = ['mcp', 'add', '-s', 'user', SERVER_NAME];
|
|
70
|
+
for (const pair of envPairs) {
|
|
71
|
+
args.push('-e', pair);
|
|
72
|
+
}
|
|
73
|
+
if (process.platform === 'win32') {
|
|
74
|
+
args.push('--', 'cmd', '/c', 'npx', 'audrey');
|
|
75
|
+
} else {
|
|
76
|
+
args.push('--', 'npx', 'audrey');
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return args;
|
|
80
|
+
}
|