@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.
Files changed (53) hide show
  1. package/README.md +11 -54
  2. package/dist/background-indexer.d.ts.map +1 -1
  3. package/dist/background-indexer.js +26 -18
  4. package/dist/cache.d.ts.map +1 -1
  5. package/dist/cache.js +16 -2
  6. package/dist/compositor.d.ts.map +1 -1
  7. package/dist/compositor.js +146 -19
  8. package/dist/context-backfill.d.ts +46 -0
  9. package/dist/context-backfill.d.ts.map +1 -0
  10. package/dist/context-backfill.js +113 -0
  11. package/dist/context-store.d.ts +77 -0
  12. package/dist/context-store.d.ts.map +1 -0
  13. package/dist/context-store.js +177 -0
  14. package/dist/cross-agent.d.ts +12 -0
  15. package/dist/cross-agent.d.ts.map +1 -1
  16. package/dist/cross-agent.js +31 -19
  17. package/dist/db.d.ts.map +1 -1
  18. package/dist/db.js +8 -0
  19. package/dist/dreaming-promoter.d.ts +1 -1
  20. package/dist/dreaming-promoter.js +1 -1
  21. package/dist/index.d.ts +4 -2
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +25 -6
  24. package/dist/message-store.d.ts +31 -2
  25. package/dist/message-store.d.ts.map +1 -1
  26. package/dist/message-store.js +131 -17
  27. package/dist/preference-store.d.ts +1 -1
  28. package/dist/preference-store.js +1 -1
  29. package/dist/profiles.d.ts +3 -1
  30. package/dist/profiles.d.ts.map +1 -1
  31. package/dist/profiles.js +8 -0
  32. package/dist/repair-tool-pairs.d.ts.map +1 -1
  33. package/dist/repair-tool-pairs.js +73 -2
  34. package/dist/schema.d.ts +1 -1
  35. package/dist/schema.d.ts.map +1 -1
  36. package/dist/schema.js +27 -1
  37. package/dist/seed.d.ts +1 -1
  38. package/dist/seed.js +1 -1
  39. package/dist/session-flusher.d.ts +2 -2
  40. package/dist/session-flusher.js +2 -2
  41. package/dist/spawn-context.d.ts +1 -1
  42. package/dist/spawn-context.js +1 -1
  43. package/dist/topic-synthesizer.js +1 -1
  44. package/dist/trigger-registry.d.ts +1 -1
  45. package/dist/trigger-registry.js +4 -4
  46. package/dist/types.d.ts +11 -3
  47. package/dist/types.d.ts.map +1 -1
  48. package/dist/vector-store.d.ts +10 -1
  49. package/dist/vector-store.d.ts.map +1 -1
  50. package/dist/vector-store.js +353 -0
  51. package/dist/version.d.ts +5 -5
  52. package/dist/version.js +5 -5
  53. 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: 'alice' });
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. "alice")
37
- * @param sessionKey Full session key (e.g. "agent:alice:webchat:scratchpad")
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>;
@@ -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. "alice")
22
- * @param sessionKey Full session key (e.g. "agent:alice:webchat:scratchpad")
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 = {}) {
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * Usage:
8
8
  * const ctx = await buildSpawnContext(messageStore, docChunkStore, agentId, {
9
- * parentSessionKey: 'agent:alice:webchat:main',
9
+ * parentSessionKey: 'agent:agent1:webchat:main',
10
10
  * workingSnapshot: 10,
11
11
  * documents: ['/path/to/spec.md'],
12
12
  * });
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * Usage:
8
8
  * const ctx = await buildSpawnContext(messageStore, docChunkStore, agentId, {
9
- * parentSessionKey: 'agent:alice:webchat:main',
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(alice|bob|clarity|dave|oscar|carol|hank|jack|leo|nancy|mike)\b/gi) || [];
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 Carol's spec.
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 */
@@ -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 Carol's spec.
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: 'alice',
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: 'alice',
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: 'alice',
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., Alice's directors: Hank, Jack, Irene).
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 (Bob Gate 2).
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)
@@ -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":"AAAA;;;;;;GAMG;AAIH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IACpC,WAAW,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;AAC7G,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;AAEjE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAID,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAIrD;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC;AAEvE;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;IACxE,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,QAAQ,CAAC;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE1D,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAID,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,eAAe,CAAC;AAE/H,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,WAAW,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAID;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0FAA0F;IAC1F,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oFAAoF;IACpF,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iGAAiG;IACjG,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,mBAAmB,EAAE,OAAO,CAAC;IAC7B,qDAAqD;IACrD,aAAa,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,uBAAuB,EAAE,MAAM,CAAC;IAChC,uEAAuE;IACvE,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gEAAgE;IAChE,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,wBAAwB,GAAG,cAAc,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,SAAS,CAAC;IACrH,sDAAsD;IACtD,aAAa,EAAE,WAAW,GAAG,cAAc,GAAG,cAAc,GAAG,MAAM,CAAC;IACtE,8DAA8D;IAC9D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kEAAkE;IAClE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8EAA8E;IAC9E,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iGAAiG;IACjG,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,uGAAuG;IACvG,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oFAAoF;IACpF,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,8EAA8E;IAC9E,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,eAAe,CAAC;IACvB,gEAAgE;IAChE,SAAS,EAAE,OAAO,CAAC;IACnB,4FAA4F;IAC5F,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAID;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAID,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,uBAAuB,CAAC;IACnC,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,OAAO,wBAAwB,EAAE,aAAa,CAAC;IAC1D,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,OAAO,uBAAuB,EAAE,cAAc,CAAC;IAC1D;;;;;;OAMG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC1C,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,6DAA6D;IAC7D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,kCAAkC;AAClC,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC;AAEtC,MAAM,WAAW,gBAAgB;IAC/B;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,8FAA8F;IAC9F,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB,EAAE,MAAM,CAAC;IAC/B;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;OAIG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,yBAAyB,EAAE,MAAM,CAAC;IAClC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACvE,uCAAuC;IACvC,aAAa,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACpE,uCAAuC;IACvC,cAAc,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACrE;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CAQvB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;IACjD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,4BAA4B,EAAE,MAAM,CAAC;IACrC,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
@@ -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":"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"}
1
+ {"version":3,"file":"vector-store.d.ts","sourceRoot":"","sources":["../src/vector-store.ts"],"names":[],"mappings":"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"}
@@ -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.5.6";
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 = 6;
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.5.6";
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.5.6";
31
- readonly mainSchema: 6;
30
+ readonly compatVersion: "0.6.2";
31
+ readonly mainSchema: 8;
32
32
  readonly librarySchema: 12;
33
33
  };
34
34
  //# sourceMappingURL=version.d.ts.map