@psiclawops/hypermem 0.5.6 → 0.6.2
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/README.md +11 -54
- package/dist/background-indexer.d.ts.map +1 -1
- package/dist/background-indexer.js +26 -18
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +16 -2
- package/dist/compositor.d.ts.map +1 -1
- package/dist/compositor.js +146 -19
- package/dist/context-backfill.d.ts +46 -0
- package/dist/context-backfill.d.ts.map +1 -0
- package/dist/context-backfill.js +113 -0
- package/dist/context-store.d.ts +77 -0
- package/dist/context-store.d.ts.map +1 -0
- package/dist/context-store.js +177 -0
- package/dist/cross-agent.d.ts +12 -0
- package/dist/cross-agent.d.ts.map +1 -1
- package/dist/cross-agent.js +31 -19
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +8 -0
- package/dist/dreaming-promoter.d.ts +1 -1
- package/dist/dreaming-promoter.js +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -6
- package/dist/message-store.d.ts +31 -2
- package/dist/message-store.d.ts.map +1 -1
- package/dist/message-store.js +131 -17
- package/dist/preference-store.d.ts +1 -1
- package/dist/preference-store.js +1 -1
- package/dist/profiles.d.ts +3 -1
- package/dist/profiles.d.ts.map +1 -1
- package/dist/profiles.js +8 -0
- package/dist/repair-tool-pairs.d.ts.map +1 -1
- package/dist/repair-tool-pairs.js +73 -2
- package/dist/schema.d.ts +1 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +27 -1
- package/dist/seed.d.ts +1 -1
- package/dist/seed.js +1 -1
- package/dist/session-flusher.d.ts +2 -2
- package/dist/session-flusher.js +2 -2
- package/dist/spawn-context.d.ts +1 -1
- package/dist/spawn-context.js +1 -1
- package/dist/topic-synthesizer.js +1 -1
- package/dist/trigger-registry.d.ts +1 -1
- package/dist/trigger-registry.js +4 -4
- package/dist/types.d.ts +11 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/vector-store.d.ts +10 -1
- package/dist/vector-store.d.ts.map +1 -1
- package/dist/vector-store.js +353 -0
- package/dist/version.d.ts +5 -5
- package/dist/version.js +5 -5
- package/package.json +3 -2
package/dist/seed.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Usage:
|
|
8
8
|
* const seeder = new WorkspaceSeeder(hypermem);
|
|
9
|
-
* const result = await seeder.seedWorkspace('/path/to/workspace', { agentId: '
|
|
9
|
+
* const result = await seeder.seedWorkspace('/path/to/workspace', { agentId: 'agent1' });
|
|
10
10
|
*
|
|
11
11
|
* Idempotent: skips files whose source hash hasn't changed since last index.
|
|
12
12
|
* Atomic: each file's chunks are swapped in a single transaction.
|
|
@@ -33,8 +33,8 @@ export interface FlushSessionResult {
|
|
|
33
33
|
* from those stores naturally.
|
|
34
34
|
*
|
|
35
35
|
* @param cache Connected CacheLayer instance
|
|
36
|
-
* @param agentId Agent identifier (e.g. "
|
|
37
|
-
* @param sessionKey Full session key (e.g. "agent:
|
|
36
|
+
* @param agentId Agent identifier (e.g. "agent1")
|
|
37
|
+
* @param sessionKey Full session key (e.g. "agent:agent1:webchat:scratchpad")
|
|
38
38
|
* @param opts Optional flags
|
|
39
39
|
*/
|
|
40
40
|
export declare function flushSession(cache: CacheLayer, agentId: string, sessionKey: string, opts?: FlushSessionOptions): Promise<FlushSessionResult>;
|
package/dist/session-flusher.js
CHANGED
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
* from those stores naturally.
|
|
19
19
|
*
|
|
20
20
|
* @param cache Connected CacheLayer instance
|
|
21
|
-
* @param agentId Agent identifier (e.g. "
|
|
22
|
-
* @param sessionKey Full session key (e.g. "agent:
|
|
21
|
+
* @param agentId Agent identifier (e.g. "agent1")
|
|
22
|
+
* @param sessionKey Full session key (e.g. "agent:agent1:webchat:scratchpad")
|
|
23
23
|
* @param opts Optional flags
|
|
24
24
|
*/
|
|
25
25
|
export async function flushSession(cache, agentId, sessionKey, opts = {}) {
|
package/dist/spawn-context.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Usage:
|
|
8
8
|
* const ctx = await buildSpawnContext(messageStore, docChunkStore, agentId, {
|
|
9
|
-
* parentSessionKey: 'agent:
|
|
9
|
+
* parentSessionKey: 'agent:agent1:webchat:main',
|
|
10
10
|
* workingSnapshot: 10,
|
|
11
11
|
* documents: ['/path/to/spec.md'],
|
|
12
12
|
* });
|
package/dist/spawn-context.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Usage:
|
|
8
8
|
* const ctx = await buildSpawnContext(messageStore, docChunkStore, agentId, {
|
|
9
|
-
* parentSessionKey: 'agent:
|
|
9
|
+
* parentSessionKey: 'agent:agent1:webchat:main',
|
|
10
10
|
* workingSnapshot: 10,
|
|
11
11
|
* documents: ['/path/to/spec.md'],
|
|
12
12
|
* });
|
|
@@ -35,7 +35,7 @@ function keystoneScore(msg) {
|
|
|
35
35
|
const backtickMatches = text.match(/`[^`]+`/g) || [];
|
|
36
36
|
score += backtickMatches.length * 0.2;
|
|
37
37
|
// Agent mentions (known patterns)
|
|
38
|
-
const agentMentions = text.match(/\b(
|
|
38
|
+
const agentMentions = text.match(/\b(agent1|agent2|agent4|agent3|agent5|agent6|director1|director2|director7|specialist2|specialist1)\b/gi) || [];
|
|
39
39
|
score += agentMentions.length * 0.25;
|
|
40
40
|
// Quoted content
|
|
41
41
|
const quotedMatches = text.match(/"[^"]{10,}"/g) || [];
|
|
@@ -39,7 +39,7 @@ export interface CollectionTrigger {
|
|
|
39
39
|
export declare const TRIGGER_REGISTRY_VERSION = "1.0.0";
|
|
40
40
|
/**
|
|
41
41
|
* Default trigger registry for standard ACA collections.
|
|
42
|
-
* Covers the core ACA offload use case from
|
|
42
|
+
* Covers the core ACA offload use case from agent6's spec.
|
|
43
43
|
*/
|
|
44
44
|
export declare const TRIGGER_REGISTRY: CollectionTrigger[];
|
|
45
45
|
/** Backward-compat alias — same reference as TRIGGER_REGISTRY */
|
package/dist/trigger-registry.js
CHANGED
|
@@ -13,7 +13,7 @@ import { createHash } from 'node:crypto';
|
|
|
13
13
|
export const TRIGGER_REGISTRY_VERSION = '1.0.0';
|
|
14
14
|
/**
|
|
15
15
|
* Default trigger registry for standard ACA collections.
|
|
16
|
-
* Covers the core ACA offload use case from
|
|
16
|
+
* Covers the core ACA offload use case from agent6's spec.
|
|
17
17
|
*/
|
|
18
18
|
export const TRIGGER_REGISTRY = [
|
|
19
19
|
{
|
|
@@ -61,7 +61,7 @@ export const TRIGGER_REGISTRY = [
|
|
|
61
61
|
],
|
|
62
62
|
maxTokens: 800,
|
|
63
63
|
maxChunks: 2,
|
|
64
|
-
owner: '
|
|
64
|
+
owner: 'agent1',
|
|
65
65
|
category: 'operations',
|
|
66
66
|
description: 'Agent operational procedures: boot sequence, heartbeat, work queue, session startup',
|
|
67
67
|
},
|
|
@@ -98,7 +98,7 @@ export const TRIGGER_REGISTRY = [
|
|
|
98
98
|
],
|
|
99
99
|
maxTokens: 1500,
|
|
100
100
|
maxChunks: 4,
|
|
101
|
-
owner: '
|
|
101
|
+
owner: 'agent1',
|
|
102
102
|
category: 'memory',
|
|
103
103
|
description: 'Decision history: past choices, previously agreed approaches, recalled context',
|
|
104
104
|
},
|
|
@@ -124,7 +124,7 @@ export const TRIGGER_REGISTRY = [
|
|
|
124
124
|
],
|
|
125
125
|
maxTokens: 1200,
|
|
126
126
|
maxChunks: 3,
|
|
127
|
-
owner: '
|
|
127
|
+
owner: 'agent1',
|
|
128
128
|
category: 'operations',
|
|
129
129
|
description: 'Agent tooling reference: CLI commands, config paths, deployment procedures, quick reference',
|
|
130
130
|
},
|
package/dist/types.d.ts
CHANGED
|
@@ -70,7 +70,7 @@ export type FactScope = 'agent' | 'session' | 'user';
|
|
|
70
70
|
/**
|
|
71
71
|
* Memory visibility levels:
|
|
72
72
|
* - private: Only the owning agent can read. Identity, SOUL, personal reflections.
|
|
73
|
-
* - org: Agents in the same org (e.g.,
|
|
73
|
+
* - org: Agents in the same org (e.g., agent1's directors: Pylon, Vigil, Plane).
|
|
74
74
|
* - council: All council seats can read.
|
|
75
75
|
* - fleet: Any agent in the fleet can read.
|
|
76
76
|
*/
|
|
@@ -309,7 +309,7 @@ export interface ProviderMessage {
|
|
|
309
309
|
* to identify high-signal unprocessed messages.
|
|
310
310
|
*
|
|
311
311
|
* Stored in Redis (hm:{a}:s:{s}:cursor) with dual-write to SQLite for
|
|
312
|
-
* durability across Redis eviction (
|
|
312
|
+
* durability across Redis eviction (agent2 Gate 2).
|
|
313
313
|
*/
|
|
314
314
|
export interface SessionCursor {
|
|
315
315
|
/** StoredMessage.id of the newest message included in the last window */
|
|
@@ -368,13 +368,21 @@ export interface EmbeddingProviderConfig {
|
|
|
368
368
|
* - 'ollama': local Ollama (nomic-embed-text or any pulled model)
|
|
369
369
|
* - 'openai': OpenAI Embeddings API (text-embedding-3-small / 3-large)
|
|
370
370
|
*/
|
|
371
|
-
provider?: 'ollama' | 'openai';
|
|
371
|
+
provider?: 'ollama' | 'openai' | 'gemini';
|
|
372
372
|
/** Ollama base URL. Default: http://localhost:11434 */
|
|
373
373
|
ollamaUrl: string;
|
|
374
374
|
/** OpenAI API key. Required when provider is 'openai'. */
|
|
375
375
|
openaiApiKey?: string;
|
|
376
376
|
/** OpenAI base URL. Default: https://api.openai.com/v1 */
|
|
377
377
|
openaiBaseUrl?: string;
|
|
378
|
+
/** Gemini API key. Alternative to OAuth — passed as ?key= query param. */
|
|
379
|
+
geminiApiKey?: string;
|
|
380
|
+
/** Gemini API base URL. Default: https://generativelanguage.googleapis.com */
|
|
381
|
+
geminiBaseUrl?: string;
|
|
382
|
+
/** Gemini task type for indexing. Default: RETRIEVAL_DOCUMENT */
|
|
383
|
+
geminiIndexTaskType?: string;
|
|
384
|
+
/** Gemini task type for queries. Default: RETRIEVAL_QUERY */
|
|
385
|
+
geminiQueryTaskType?: string;
|
|
378
386
|
/**
|
|
379
387
|
* Embedding model name.
|
|
380
388
|
* - ollama default: nomic-embed-text (768d)
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/vector-store.d.ts
CHANGED
|
@@ -19,14 +19,23 @@ export interface EmbeddingConfig {
|
|
|
19
19
|
* Embedding provider. Default: 'ollama'.
|
|
20
20
|
* - 'ollama': local Ollama instance (nomic-embed-text or any pull'd model)
|
|
21
21
|
* - 'openai': OpenAI Embeddings API (text-embedding-3-small / 3-large)
|
|
22
|
+
* - 'gemini': Google Gemini Embedding API (gemini-embedding-2-preview)
|
|
22
23
|
*/
|
|
23
|
-
provider?: 'ollama' | 'openai';
|
|
24
|
+
provider?: 'ollama' | 'openai' | 'gemini';
|
|
24
25
|
/** Ollama base URL. Default: http://localhost:11434 */
|
|
25
26
|
ollamaUrl: string;
|
|
26
27
|
/** OpenAI API key. Required when provider is 'openai'. */
|
|
27
28
|
openaiApiKey?: string;
|
|
28
29
|
/** OpenAI base URL. Default: https://api.openai.com/v1 */
|
|
29
30
|
openaiBaseUrl?: string;
|
|
31
|
+
/** Gemini API key. Alternative to OAuth — passed as ?key= query param. */
|
|
32
|
+
geminiApiKey?: string;
|
|
33
|
+
/** Gemini API base URL. Default: https://generativelanguage.googleapis.com */
|
|
34
|
+
geminiBaseUrl?: string;
|
|
35
|
+
/** Gemini task type for indexing. Default: RETRIEVAL_DOCUMENT */
|
|
36
|
+
geminiIndexTaskType?: string;
|
|
37
|
+
/** Gemini task type for queries. Default: RETRIEVAL_QUERY */
|
|
38
|
+
geminiQueryTaskType?: string;
|
|
30
39
|
/** Embedding model name. Default: nomic-embed-text (ollama) or text-embedding-3-small (openai) */
|
|
31
40
|
model: string;
|
|
32
41
|
/** Embedding dimensions. Default: 768 (ollama/nomic) or 1536 (openai/3-small) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector-store.d.ts","sourceRoot":"","sources":["../src/vector-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"vector-store.d.ts","sourceRoot":"","sources":["../src/vector-store.ts"],"names":[],"mappings":"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"}
|
package/dist/vector-store.js
CHANGED
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
* - Batch embedding support for bulk indexing
|
|
15
15
|
*/
|
|
16
16
|
import { createHash } from 'node:crypto';
|
|
17
|
+
import { readFileSync, writeFileSync, existsSync, readdirSync, realpathSync } from 'node:fs';
|
|
18
|
+
import { join, dirname, delimiter } from 'node:path';
|
|
17
19
|
const DEFAULT_EMBEDDING_CONFIG = {
|
|
18
20
|
provider: 'ollama',
|
|
19
21
|
ollamaUrl: 'http://localhost:11434',
|
|
@@ -30,6 +32,13 @@ const OPENAI_DEFAULTS = {
|
|
|
30
32
|
dimensions: 1536,
|
|
31
33
|
batchSize: 128,
|
|
32
34
|
};
|
|
35
|
+
/** Provider-specific defaults applied when provider is 'gemini' and fields are not set. */
|
|
36
|
+
const GEMINI_DEFAULTS = {
|
|
37
|
+
model: 'gemini-embedding-2-preview',
|
|
38
|
+
dimensions: 3072,
|
|
39
|
+
batchSize: 100, // Gemini batch limit
|
|
40
|
+
timeout: 15000,
|
|
41
|
+
};
|
|
33
42
|
const _embeddingCache = new Map();
|
|
34
43
|
/**
|
|
35
44
|
* Insert an entry into the LRU cache, evicting the oldest if over capacity.
|
|
@@ -113,6 +122,338 @@ async function generateOpenAIEmbeddings(texts, config) {
|
|
|
113
122
|
}
|
|
114
123
|
return results;
|
|
115
124
|
}
|
|
125
|
+
let _geminiTokenCache = null;
|
|
126
|
+
/**
|
|
127
|
+
* Extract Gemini CLI OAuth client credentials.
|
|
128
|
+
*
|
|
129
|
+
* Strategy:
|
|
130
|
+
* 1. Check env vars GEMINI_CLI_OAUTH_CLIENT_ID / GEMINI_CLI_OAUTH_CLIENT_SECRET
|
|
131
|
+
* 2. Find the `gemini` binary in PATH, resolve to real path, navigate to oauth2.js,
|
|
132
|
+
* regex out client_id and client_secret.
|
|
133
|
+
*/
|
|
134
|
+
function resolveGeminiCliCredentials() {
|
|
135
|
+
const envId = process.env.GEMINI_CLI_OAUTH_CLIENT_ID;
|
|
136
|
+
const envSecret = process.env.GEMINI_CLI_OAUTH_CLIENT_SECRET;
|
|
137
|
+
if (envId && envSecret) {
|
|
138
|
+
return { clientId: envId, clientSecret: envSecret };
|
|
139
|
+
}
|
|
140
|
+
// Find gemini binary in PATH
|
|
141
|
+
const pathDirs = (process.env.PATH ?? '').split(delimiter);
|
|
142
|
+
let geminiBinPath = null;
|
|
143
|
+
for (const dir of pathDirs) {
|
|
144
|
+
const candidate = join(dir, 'gemini');
|
|
145
|
+
if (existsSync(candidate)) {
|
|
146
|
+
geminiBinPath = candidate;
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
if (!geminiBinPath) {
|
|
151
|
+
console.log('[hypermem-vector] Gemini CLI binary not found in PATH; cannot extract OAuth credentials');
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
try {
|
|
155
|
+
// Resolve symlinks to get actual install location
|
|
156
|
+
const realBin = realpathSync(geminiBinPath);
|
|
157
|
+
// Navigate from bin to the oauth2.js module
|
|
158
|
+
// Typical layout: .../node_modules/.bin/gemini -> ../gemini-cli/bin/gemini.js
|
|
159
|
+
// oauth2.js is at: .../node_modules/gemini-cli/src/oauth2.js or similar
|
|
160
|
+
const binDir = dirname(realBin);
|
|
161
|
+
const packageDir = dirname(binDir); // go up from bin/
|
|
162
|
+
// Search for oauth2.js in common locations
|
|
163
|
+
const candidates = [
|
|
164
|
+
join(packageDir, 'src', 'oauth2.js'),
|
|
165
|
+
join(packageDir, 'dist', 'oauth2.js'),
|
|
166
|
+
join(packageDir, 'lib', 'oauth2.js'),
|
|
167
|
+
join(packageDir, 'oauth2.js'),
|
|
168
|
+
];
|
|
169
|
+
let oauthContent = null;
|
|
170
|
+
for (const c of candidates) {
|
|
171
|
+
if (existsSync(c)) {
|
|
172
|
+
oauthContent = readFileSync(c, 'utf-8');
|
|
173
|
+
break;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
// Also try searching recursively in the package dir for any file containing 'client_id'
|
|
177
|
+
if (!oauthContent) {
|
|
178
|
+
// Try common JS bundle locations — first oauth-named files, then all .js
|
|
179
|
+
const searchDirs = [packageDir];
|
|
180
|
+
for (const searchDir of searchDirs) {
|
|
181
|
+
if (!existsSync(searchDir))
|
|
182
|
+
continue;
|
|
183
|
+
const entries = readdirSync(searchDir, { recursive: true });
|
|
184
|
+
for (const entry of entries) {
|
|
185
|
+
const fullPath = join(searchDir, entry);
|
|
186
|
+
if (typeof entry === 'string' && (entry.endsWith('.js') || entry.endsWith('.mjs')) && entry.includes('oauth')) {
|
|
187
|
+
try {
|
|
188
|
+
oauthContent = readFileSync(fullPath, 'utf-8');
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
catch { /* skip unreadable */ }
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
if (oauthContent)
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
if (!oauthContent) {
|
|
199
|
+
console.log('[hypermem-vector] Could not find oauth2.js in Gemini CLI package');
|
|
200
|
+
}
|
|
201
|
+
// Regex out client_id and client_secret from oauth file
|
|
202
|
+
if (oauthContent) {
|
|
203
|
+
const idMatch = oauthContent.match(/client_id["'\s:=]+["']([^"']+)["']/i);
|
|
204
|
+
const secretMatch = oauthContent.match(/client_secret["'\s:=]+["']([^"']+)["']/i);
|
|
205
|
+
if (idMatch?.[1] && secretMatch?.[1]) {
|
|
206
|
+
return { clientId: idMatch[1], clientSecret: secretMatch[1] };
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
// Fallback: scan all bundle JS files for Google OAuth client_id pattern
|
|
210
|
+
// Bundled CLIs (e.g. @google/gemini-cli) split credentials across chunks
|
|
211
|
+
const bundleDir = join(packageDir, 'bundle');
|
|
212
|
+
if (existsSync(bundleDir)) {
|
|
213
|
+
const googleIdRe = /["']([\d]+-[a-z0-9]+\.apps\.googleusercontent\.com)["']/;
|
|
214
|
+
const clientSecretRe = /client_secret["'\s:=]+["']([^"']+)["']/i;
|
|
215
|
+
// Also match bundled patterns: secret alongside or near client_id
|
|
216
|
+
const inlineSecretRe = /["'](GOCSPX-[^"']+)["']/;
|
|
217
|
+
let foundId = null;
|
|
218
|
+
let foundSecret = null;
|
|
219
|
+
const bundleFiles = readdirSync(bundleDir)
|
|
220
|
+
.filter(f => f.endsWith('.js') || f.endsWith('.mjs'))
|
|
221
|
+
.sort();
|
|
222
|
+
for (const file of bundleFiles) {
|
|
223
|
+
try {
|
|
224
|
+
const content = readFileSync(join(bundleDir, file), 'utf-8');
|
|
225
|
+
if (!foundId) {
|
|
226
|
+
const m = content.match(googleIdRe);
|
|
227
|
+
if (m)
|
|
228
|
+
foundId = m[1];
|
|
229
|
+
}
|
|
230
|
+
if (!foundSecret) {
|
|
231
|
+
const m = content.match(clientSecretRe) || content.match(inlineSecretRe);
|
|
232
|
+
if (m)
|
|
233
|
+
foundSecret = m[1];
|
|
234
|
+
}
|
|
235
|
+
if (foundId && foundSecret)
|
|
236
|
+
break;
|
|
237
|
+
}
|
|
238
|
+
catch { /* skip */ }
|
|
239
|
+
}
|
|
240
|
+
if (foundId && foundSecret) {
|
|
241
|
+
return { clientId: foundId, clientSecret: foundSecret };
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
console.log('[hypermem-vector] Could not extract client_id/client_secret from Gemini CLI');
|
|
245
|
+
return null;
|
|
246
|
+
}
|
|
247
|
+
catch (err) {
|
|
248
|
+
console.log('[hypermem-vector] Error extracting Gemini CLI credentials:', err);
|
|
249
|
+
return null;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Resolve a Gemini OAuth access token from OpenClaw's secrets store.
|
|
254
|
+
*
|
|
255
|
+
* Reads ~/.openclaw/secrets/secrets.json, finds the google-gemini-cli credential,
|
|
256
|
+
* refreshes if expired, and caches in memory.
|
|
257
|
+
*/
|
|
258
|
+
async function resolveGeminiOAuthToken() {
|
|
259
|
+
// Return cached token if still valid (with 60s buffer)
|
|
260
|
+
if (_geminiTokenCache && Date.now() < _geminiTokenCache.expiresAt - 60_000) {
|
|
261
|
+
return _geminiTokenCache.accessToken;
|
|
262
|
+
}
|
|
263
|
+
const secretsPath = join(process.env.HOME ?? '/root', '.openclaw', 'secrets', 'secrets.json');
|
|
264
|
+
if (!existsSync(secretsPath)) {
|
|
265
|
+
console.log('[hypermem-vector] Secrets file not found:', secretsPath);
|
|
266
|
+
return null;
|
|
267
|
+
}
|
|
268
|
+
let secrets;
|
|
269
|
+
try {
|
|
270
|
+
secrets = JSON.parse(readFileSync(secretsPath, 'utf-8'));
|
|
271
|
+
}
|
|
272
|
+
catch (err) {
|
|
273
|
+
console.log('[hypermem-vector] Failed to parse secrets.json:', err);
|
|
274
|
+
return null;
|
|
275
|
+
}
|
|
276
|
+
// Search for google-gemini-cli credential across all agents
|
|
277
|
+
let credential = null;
|
|
278
|
+
let credentialPath = []; // path segments for writing back
|
|
279
|
+
const agents = secrets.agents;
|
|
280
|
+
if (agents && typeof agents === 'object') {
|
|
281
|
+
for (const agentId of Object.keys(agents)) {
|
|
282
|
+
const profiles = agents[agentId]?.['auth-profiles']?.profiles;
|
|
283
|
+
if (!profiles || typeof profiles !== 'object')
|
|
284
|
+
continue;
|
|
285
|
+
for (const profileKey of Object.keys(profiles)) {
|
|
286
|
+
if (profileKey.startsWith('google-gemini-cli:')) {
|
|
287
|
+
credential = profiles[profileKey];
|
|
288
|
+
credentialPath = ['agents', agentId, 'auth-profiles', 'profiles', profileKey];
|
|
289
|
+
break;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
if (credential)
|
|
293
|
+
break;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
if (!credential) {
|
|
297
|
+
console.log('[hypermem-vector] No google-gemini-cli credential found in secrets.json');
|
|
298
|
+
return null;
|
|
299
|
+
}
|
|
300
|
+
// Check if token is still valid (with 60s buffer)
|
|
301
|
+
if (Date.now() < credential.expires - 60_000) {
|
|
302
|
+
_geminiTokenCache = { accessToken: credential.access, expiresAt: credential.expires };
|
|
303
|
+
return credential.access;
|
|
304
|
+
}
|
|
305
|
+
// Token expired, refresh it
|
|
306
|
+
console.log('[hypermem-vector] Gemini OAuth token expired, refreshing...');
|
|
307
|
+
const cliCreds = resolveGeminiCliCredentials();
|
|
308
|
+
if (!cliCreds) {
|
|
309
|
+
console.log('[hypermem-vector] Cannot refresh: no CLI credentials available. Set GEMINI_CLI_OAUTH_CLIENT_ID and GEMINI_CLI_OAUTH_CLIENT_SECRET env vars.');
|
|
310
|
+
return null;
|
|
311
|
+
}
|
|
312
|
+
try {
|
|
313
|
+
const refreshResponse = await fetch('https://oauth2.googleapis.com/token', {
|
|
314
|
+
method: 'POST',
|
|
315
|
+
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
316
|
+
body: new URLSearchParams({
|
|
317
|
+
client_id: cliCreds.clientId,
|
|
318
|
+
client_secret: cliCreds.clientSecret,
|
|
319
|
+
refresh_token: credential.refresh,
|
|
320
|
+
grant_type: 'refresh_token',
|
|
321
|
+
}),
|
|
322
|
+
});
|
|
323
|
+
if (!refreshResponse.ok) {
|
|
324
|
+
const body = await refreshResponse.text().catch(() => '');
|
|
325
|
+
console.log(`[hypermem-vector] OAuth refresh failed: ${refreshResponse.status} ${refreshResponse.statusText} — ${body}`);
|
|
326
|
+
return null;
|
|
327
|
+
}
|
|
328
|
+
const tokenData = await refreshResponse.json();
|
|
329
|
+
const newExpires = Date.now() + tokenData.expires_in * 1000;
|
|
330
|
+
// Write updated token back to secrets.json
|
|
331
|
+
try {
|
|
332
|
+
// Re-read to avoid clobbering concurrent changes
|
|
333
|
+
const freshSecrets = JSON.parse(readFileSync(secretsPath, 'utf-8'));
|
|
334
|
+
let target = freshSecrets;
|
|
335
|
+
for (let i = 0; i < credentialPath.length - 1; i++) {
|
|
336
|
+
target = target[credentialPath[i]];
|
|
337
|
+
}
|
|
338
|
+
const lastKey = credentialPath[credentialPath.length - 1];
|
|
339
|
+
if (target[lastKey]) {
|
|
340
|
+
target[lastKey].access = tokenData.access_token;
|
|
341
|
+
target[lastKey].expires = newExpires;
|
|
342
|
+
}
|
|
343
|
+
writeFileSync(secretsPath, JSON.stringify(freshSecrets, null, 2), 'utf-8');
|
|
344
|
+
}
|
|
345
|
+
catch (writeErr) {
|
|
346
|
+
console.log('[hypermem-vector] Warning: refreshed token but failed to write back to secrets.json:', writeErr);
|
|
347
|
+
}
|
|
348
|
+
_geminiTokenCache = { accessToken: tokenData.access_token, expiresAt: newExpires };
|
|
349
|
+
return tokenData.access_token;
|
|
350
|
+
}
|
|
351
|
+
catch (err) {
|
|
352
|
+
console.log('[hypermem-vector] OAuth token refresh error:', err);
|
|
353
|
+
return null;
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* L2-normalize a vector in place.
|
|
358
|
+
* Gemini pre-normalizes at native dimensions but lower outputDimensionality may not be unit-length.
|
|
359
|
+
*/
|
|
360
|
+
function l2Normalize(vec) {
|
|
361
|
+
let sumSq = 0;
|
|
362
|
+
for (let i = 0; i < vec.length; i++)
|
|
363
|
+
sumSq += vec[i] * vec[i];
|
|
364
|
+
if (sumSq === 0)
|
|
365
|
+
return vec;
|
|
366
|
+
const norm = Math.sqrt(sumSq);
|
|
367
|
+
if (Math.abs(norm - 1.0) < 1e-6)
|
|
368
|
+
return vec; // already unit-length
|
|
369
|
+
for (let i = 0; i < vec.length; i++)
|
|
370
|
+
vec[i] /= norm;
|
|
371
|
+
return vec;
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Generate embeddings via Google Gemini Embedding API.
|
|
375
|
+
* Uses batchEmbedContents endpoint, respects config.batchSize (max 100).
|
|
376
|
+
* Auth: OAuth token from secrets store, or API key via config/env.
|
|
377
|
+
*/
|
|
378
|
+
async function generateGeminiEmbeddings(texts, config, taskType) {
|
|
379
|
+
const baseUrl = config.geminiBaseUrl ?? 'https://generativelanguage.googleapis.com';
|
|
380
|
+
const model = config.model;
|
|
381
|
+
const effectiveTaskType = taskType ?? config.geminiIndexTaskType ?? 'RETRIEVAL_DOCUMENT';
|
|
382
|
+
const results = [];
|
|
383
|
+
// Resolve auth: API key takes precedence (simpler), then OAuth
|
|
384
|
+
const apiKey = config.geminiApiKey ?? process.env.GEMINI_EMBEDDING_API_KEY ?? process.env.GEMINI_API_KEY ?? process.env.GOOGLE_API_KEY ?? null;
|
|
385
|
+
let oauthToken = null;
|
|
386
|
+
if (!apiKey) {
|
|
387
|
+
oauthToken = await resolveGeminiOAuthToken();
|
|
388
|
+
if (!oauthToken) {
|
|
389
|
+
throw new Error('[hypermem] Gemini embedding provider requires authentication. ' +
|
|
390
|
+
'Set geminiApiKey in config, GEMINI_EMBEDDING_API_KEY env var, or configure a google-gemini-cli OAuth credential in OpenClaw secrets.');
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
const effectiveBatchSize = Math.min(config.batchSize, 100); // Gemini hard limit
|
|
394
|
+
for (let i = 0; i < texts.length; i += effectiveBatchSize) {
|
|
395
|
+
const batch = texts.slice(i, i + effectiveBatchSize);
|
|
396
|
+
const requests = batch.map(text => ({
|
|
397
|
+
model: `models/${model}`,
|
|
398
|
+
content: { parts: [{ text }] },
|
|
399
|
+
taskType: effectiveTaskType,
|
|
400
|
+
outputDimensionality: config.dimensions,
|
|
401
|
+
}));
|
|
402
|
+
let url;
|
|
403
|
+
const headers = { 'Content-Type': 'application/json' };
|
|
404
|
+
if (apiKey) {
|
|
405
|
+
url = `${baseUrl}/v1beta/models/${model}:batchEmbedContents?key=${apiKey}`;
|
|
406
|
+
}
|
|
407
|
+
else {
|
|
408
|
+
url = `${baseUrl}/v1beta/models/${model}:batchEmbedContents`;
|
|
409
|
+
headers['Authorization'] = `Bearer ${oauthToken}`;
|
|
410
|
+
}
|
|
411
|
+
const controller = new AbortController();
|
|
412
|
+
const timer = setTimeout(() => controller.abort(), config.timeout);
|
|
413
|
+
let retried = false;
|
|
414
|
+
const doRequest = async () => {
|
|
415
|
+
const response = await fetch(url, {
|
|
416
|
+
method: 'POST',
|
|
417
|
+
headers,
|
|
418
|
+
body: JSON.stringify({ requests }),
|
|
419
|
+
signal: controller.signal,
|
|
420
|
+
});
|
|
421
|
+
if (response.status === 401 && !retried && !apiKey) {
|
|
422
|
+
// OAuth token may have been refreshed by another process; re-resolve once
|
|
423
|
+
retried = true;
|
|
424
|
+
_geminiTokenCache = null; // force re-read
|
|
425
|
+
const freshToken = await resolveGeminiOAuthToken();
|
|
426
|
+
if (freshToken) {
|
|
427
|
+
oauthToken = freshToken;
|
|
428
|
+
headers['Authorization'] = `Bearer ${oauthToken}`;
|
|
429
|
+
return doRequest();
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
if (!response.ok) {
|
|
433
|
+
const body = await response.text().catch(() => '');
|
|
434
|
+
throw new Error(`Gemini embedding failed: ${response.status} ${response.statusText} — ${body}`);
|
|
435
|
+
}
|
|
436
|
+
const data = await response.json();
|
|
437
|
+
for (const item of data.embeddings) {
|
|
438
|
+
if (item.values.length !== config.dimensions) {
|
|
439
|
+
throw new Error(`Gemini embedding dimension mismatch: expected ${config.dimensions}, got ${item.values.length}. ` +
|
|
440
|
+
'If you changed models or dimensions, re-index via hypermem reindex.');
|
|
441
|
+
}
|
|
442
|
+
const vec = new Float32Array(item.values);
|
|
443
|
+
// L2 normalize as safety net for reduced dimensions
|
|
444
|
+
l2Normalize(vec);
|
|
445
|
+
results.push(vec);
|
|
446
|
+
}
|
|
447
|
+
};
|
|
448
|
+
try {
|
|
449
|
+
await doRequest();
|
|
450
|
+
}
|
|
451
|
+
finally {
|
|
452
|
+
clearTimeout(timer);
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
return results;
|
|
456
|
+
}
|
|
116
457
|
/**
|
|
117
458
|
* Generate embeddings via Ollama API.
|
|
118
459
|
* Supports single and batch embedding.
|
|
@@ -133,6 +474,18 @@ export async function generateEmbeddings(texts, config = DEFAULT_EMBEDDING_CONFI
|
|
|
133
474
|
// adds complexity without proportional benefit given async background use).
|
|
134
475
|
return generateOpenAIEmbeddings(texts, config);
|
|
135
476
|
}
|
|
477
|
+
if (config.provider === 'gemini') {
|
|
478
|
+
config = {
|
|
479
|
+
...DEFAULT_EMBEDDING_CONFIG,
|
|
480
|
+
...config,
|
|
481
|
+
model: config.model !== DEFAULT_EMBEDDING_CONFIG.model ? config.model : GEMINI_DEFAULTS.model,
|
|
482
|
+
dimensions: config.dimensions !== DEFAULT_EMBEDDING_CONFIG.dimensions ? config.dimensions : GEMINI_DEFAULTS.dimensions,
|
|
483
|
+
batchSize: config.batchSize !== DEFAULT_EMBEDDING_CONFIG.batchSize ? config.batchSize : GEMINI_DEFAULTS.batchSize,
|
|
484
|
+
};
|
|
485
|
+
// Gemini path — no LRU cache (same rationale as OpenAI: billed API calls,
|
|
486
|
+
// background indexing context, minimal benefit from this-layer caching).
|
|
487
|
+
return generateGeminiEmbeddings(texts, config);
|
|
488
|
+
}
|
|
136
489
|
if (texts.length === 0)
|
|
137
490
|
return [];
|
|
138
491
|
const maxSize = Math.min(config.cacheSize ?? DEFAULT_EMBEDDING_CONFIG.cacheSize ?? 128, 10_000 // Hard cap: prevent unbounded memory growth from operator misconfiguration
|
package/dist/version.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Release version — matches package.json and is stamped into library.db on every startup. */
|
|
2
|
-
export declare const ENGINE_VERSION = "0.
|
|
2
|
+
export declare const ENGINE_VERSION = "0.6.2";
|
|
3
3
|
/** Minimum Node.js version required — matches package.json engines field. */
|
|
4
4
|
export declare const MIN_NODE_VERSION = "22.0.0";
|
|
5
5
|
/** @deprecated No longer used — Redis was replaced with SQLite :memory: CacheLayer. */
|
|
@@ -10,7 +10,7 @@ export declare const SQLITE_VEC_VERSION = "0.1.9";
|
|
|
10
10
|
* Main DB (hypermem.db) schema version.
|
|
11
11
|
* Re-exported here for convenience; authoritative value lives in schema.ts.
|
|
12
12
|
*/
|
|
13
|
-
export declare const MAIN_SCHEMA_VERSION =
|
|
13
|
+
export declare const MAIN_SCHEMA_VERSION = 8;
|
|
14
14
|
/**
|
|
15
15
|
* Library DB (library.db) schema version.
|
|
16
16
|
* Re-exported here for convenience; authoritative value lives in library-schema.ts.
|
|
@@ -21,14 +21,14 @@ export declare const LIBRARY_SCHEMA_VERSION_EXPORT = 12;
|
|
|
21
21
|
* Maps to: main schema v6, library schema v12.
|
|
22
22
|
* Matches ENGINE_VERSION for the 0.5.2 release.
|
|
23
23
|
*/
|
|
24
|
-
export declare const HYPERMEM_COMPAT_VERSION = "0.
|
|
24
|
+
export declare const HYPERMEM_COMPAT_VERSION = "0.6.2";
|
|
25
25
|
/**
|
|
26
26
|
* Schema compatibility map — machine-readable version requirements.
|
|
27
27
|
* Use this to verify DB schemas match the running engine.
|
|
28
28
|
*/
|
|
29
29
|
export declare const SCHEMA_COMPAT: {
|
|
30
|
-
readonly compatVersion: "0.
|
|
31
|
-
readonly mainSchema:
|
|
30
|
+
readonly compatVersion: "0.6.2";
|
|
31
|
+
readonly mainSchema: 8;
|
|
32
32
|
readonly librarySchema: 12;
|
|
33
33
|
};
|
|
34
34
|
//# sourceMappingURL=version.d.ts.map
|