hippo-memory 1.22.0 → 1.23.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.
Files changed (41) hide show
  1. package/README.md +2 -1
  2. package/dist/capture.d.ts.map +1 -1
  3. package/dist/capture.js +3 -2
  4. package/dist/capture.js.map +1 -1
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/cli.js +94 -22
  7. package/dist/cli.js.map +1 -1
  8. package/dist/config.d.ts +10 -0
  9. package/dist/config.d.ts.map +1 -1
  10. package/dist/config.js +1 -0
  11. package/dist/config.js.map +1 -1
  12. package/dist/embedding-provider.d.ts +76 -0
  13. package/dist/embedding-provider.d.ts.map +1 -0
  14. package/dist/embedding-provider.js +301 -0
  15. package/dist/embedding-provider.js.map +1 -0
  16. package/dist/embeddings.d.ts +1 -0
  17. package/dist/embeddings.d.ts.map +1 -1
  18. package/dist/embeddings.js +112 -55
  19. package/dist/embeddings.js.map +1 -1
  20. package/dist/search.d.ts.map +1 -1
  21. package/dist/search.js +31 -13
  22. package/dist/search.js.map +1 -1
  23. package/dist/src/capture.js +3 -2
  24. package/dist/src/capture.js.map +1 -1
  25. package/dist/src/cli.js +94 -22
  26. package/dist/src/cli.js.map +1 -1
  27. package/dist/src/config.js +1 -0
  28. package/dist/src/config.js.map +1 -1
  29. package/dist/src/embedding-provider.js +301 -0
  30. package/dist/src/embedding-provider.js.map +1 -0
  31. package/dist/src/embeddings.js +112 -55
  32. package/dist/src/embeddings.js.map +1 -1
  33. package/dist/src/search.js +31 -13
  34. package/dist/src/search.js.map +1 -1
  35. package/dist/src/version.js +1 -1
  36. package/dist/version.d.ts +1 -1
  37. package/dist/version.js +1 -1
  38. package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
  39. package/extensions/openclaw-plugin/package.json +1 -1
  40. package/openclaw.plugin.json +1 -1
  41. package/package.json +1 -1
package/dist/config.d.ts CHANGED
@@ -18,6 +18,16 @@ export interface HippoConfig {
18
18
  enabled: boolean | 'auto';
19
19
  model: string;
20
20
  hybridWeight: number;
21
+ /** Embedding backend. 'local' (default) = zero-dependency transformers.js.
22
+ * 'openai' | 'voyage' | 'cohere' = opt-in API embedder; needs the provider's
23
+ * API key in env (OPENAI_API_KEY / VOYAGE_API_KEY / COHERE_API_KEY).
24
+ * See src/embedding-provider.ts. */
25
+ provider?: 'local' | 'openai' | 'voyage' | 'cohere';
26
+ /** Optional API base-URL override (self-host / proxy). HTTPS only (localhost
27
+ * may use http). Ignored by the local provider. */
28
+ apiBaseUrl?: string;
29
+ /** Batch size for API embedding requests. Default 64. */
30
+ batchSize?: number;
21
31
  };
22
32
  global: {
23
33
  enabled: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,KAAK,aAAa,EAA8C,MAAM,qBAAqB,CAAC;AAErG,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAE1D,MAAM,WAAW,WAAW;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,UAAU,EAAE;QACV,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,OAAO,EAAE,aAAa,CAAC;IACvB;kEAC8D;IAC9D,GAAG,EAAE;QACH,OAAO,EAAE,OAAO,CAAC;QACjB;iCACyB;QACzB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,MAAM,EAAE;QACN;mFAC2E;QAC3E,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,8EAA8E;IAC9E,MAAM,EAAE;QACN,2EAA2E;QAC3E,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,0EAA0E;IAC1E,gBAAgB,EAAE,OAAO,CAAC;IAC1B,2EAA2E;IAC3E,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;8BAE0B;IAC1B,YAAY,EAAE;QACZ,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,UAAU,EAAE;QACV,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,QAAQ,EAAE;QACR,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,QAAQ,EAAE;QACR,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,OAAO,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AA6DD,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAoCzD;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAGvE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,KAAK,aAAa,EAA8C,MAAM,qBAAqB,CAAC;AAErG,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAE1D,MAAM,WAAW,WAAW;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,UAAU,EAAE;QACV,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;QACrB;;;6CAGqC;QACrC,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;QACpD;4DACoD;QACpD,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,yDAAyD;QACzD,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,OAAO,EAAE,aAAa,CAAC;IACvB;kEAC8D;IAC9D,GAAG,EAAE;QACH,OAAO,EAAE,OAAO,CAAC;QACjB;iCACyB;QACzB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,MAAM,EAAE;QACN;mFAC2E;QAC3E,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,8EAA8E;IAC9E,MAAM,EAAE;QACN,2EAA2E;QAC3E,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,0EAA0E;IAC1E,gBAAgB,EAAE,OAAO,CAAC;IAC1B,2EAA2E;IAC3E,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;8BAE0B;IAC1B,YAAY,EAAE;QACZ,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,UAAU,EAAE;QACV,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,QAAQ,EAAE;QACR,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,QAAQ,EAAE;QACR,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,OAAO,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AA8DD,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAoCzD;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAGvE"}
package/dist/config.js CHANGED
@@ -19,6 +19,7 @@ const DEFAULT_CONFIG = {
19
19
  enabled: 'auto',
20
20
  model: 'Xenova/all-MiniLM-L6-v2',
21
21
  hybridWeight: 0.6,
22
+ provider: 'local',
22
23
  },
23
24
  global: {
24
25
  enabled: true,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Pluggable embedding providers for Hippo.
3
+ *
4
+ * The local `@xenova/transformers` path stays the zero-DEPENDENCY DEFAULT. Opt-in
5
+ * API providers (OpenAI / Voyage / Cohere) let a user bring a frontier embedder
6
+ * (e.g. text-embedding-3-large) for frontier-class retrieval. They use the native
7
+ * `fetch` global (Node >= 22.5, see package.json engines — NO new dependency) and
8
+ * read their key from a conventional env var. The provider is selected by
9
+ * `config.embeddings.provider` (default `'local'`).
10
+ *
11
+ * Design contract (see docs/plans/2026-06-08-b-pluggable-embedding-provider.md):
12
+ * - Local provider `id` is the BARE model string, so existing stores whose DB
13
+ * meta `embedding_model` is `Xenova/all-MiniLM-L6-v2` see NO identity change
14
+ * and are NOT force-reindexed on upgrade.
15
+ * - API provider `id` is `${kind}:${model}`; switching to/from an API embedder
16
+ * (or a dimension change) flips the identity and triggers the existing
17
+ * reindex-on-change path.
18
+ * - `resolveEmbeddingProvider` NEVER throws. `isAvailable()` is provider-aware
19
+ * (local -> dependency installed; api -> key present). `embed()` MAY throw on
20
+ * a hard transport/auth failure so a reindex can abort atomically; hot paths
21
+ * wrap it and fall back to BM25.
22
+ *
23
+ * The exact request/response shapes for the API providers are documented from each
24
+ * vendor's public embeddings API; they are unit-tested here against a mocked
25
+ * `fetch` and are integration-verified in Workstream C (real API calls are
26
+ * egress-blocked in the build sandbox).
27
+ */
28
+ import { type EmbeddingRole } from './embeddings.js';
29
+ export type EmbeddingProviderKind = 'local' | 'openai' | 'voyage' | 'cohere';
30
+ export declare const API_PROVIDER_KINDS: readonly EmbeddingProviderKind[];
31
+ export interface EmbeddingProvider {
32
+ readonly kind: EmbeddingProviderKind;
33
+ readonly model: string;
34
+ /**
35
+ * Identity recorded in DB meta to drive reindex-on-change.
36
+ * local -> bare model string (back-compat); api -> `${kind}:${model}`.
37
+ */
38
+ readonly id: string;
39
+ /** Known fixed output dimension, if any (undefined for local / unknown). */
40
+ readonly dimensions?: number;
41
+ /** Env var holding this provider's API key (undefined for the local provider). */
42
+ readonly keyEnv?: string;
43
+ /** local -> dependency installed; api -> key present. NEVER throws. */
44
+ isAvailable(): boolean;
45
+ /**
46
+ * Batch-embed. Returns one row per input in order; a row is `[]` when that
47
+ * single item could not be embedded. MAY throw on a hard transport/auth
48
+ * failure (so a reindex aborts before saving a partial index).
49
+ */
50
+ embed(texts: string[], role?: EmbeddingRole): Promise<number[][]>;
51
+ }
52
+ export interface ResolveProviderOptions {
53
+ /** Explicit model override (mirrors resolveEmbeddingModel's explicitModel). */
54
+ model?: string;
55
+ /** Explicit provider override (mainly for tests). */
56
+ provider?: EmbeddingProviderKind;
57
+ }
58
+ /**
59
+ * Build the active embedding provider from config (or an explicit override).
60
+ * Never throws for a missing key — that surfaces via `isAvailable()` on the hot
61
+ * paths and as a hard error only from the explicit `hippo embed` command. The
62
+ * only hard throw is an invalid config (e.g. an insecure apiBaseUrl), a
63
+ * deliberate loud failure; hot-path callers (search) wrap this in try/catch.
64
+ */
65
+ export declare function resolveEmbeddingProvider(hippoRoot: string, opts?: ResolveProviderOptions): EmbeddingProvider;
66
+ /**
67
+ * The reindex identity for the active provider. Use this (NOT resolveEmbeddingModel)
68
+ * everywhere `embeddingModelRequiresReindex` / stored-model comparisons happen.
69
+ */
70
+ export declare function resolveEmbeddingIdentity(hippoRoot: string, opts?: ResolveProviderOptions): string;
71
+ /**
72
+ * Provider-aware availability for a store: local -> dependency installed;
73
+ * api -> key present. Use at the call sites that decide whether to embed.
74
+ */
75
+ export declare function isEmbeddingConfigured(hippoRoot: string): boolean;
76
+ //# sourceMappingURL=embedding-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding-provider.d.ts","sourceRoot":"","sources":["../src/embedding-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EACL,KAAK,aAAa,EAKnB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7E,eAAO,MAAM,kBAAkB,EAAE,SAAS,qBAAqB,EAAmC,CAAC;AAOnG,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,kFAAkF;IAClF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,uEAAuE;IACvE,WAAW,IAAI,OAAO,CAAC;IACvB;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CACnE;AAiPD,MAAM,WAAW,sBAAsB;IACrC,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,sBAA2B,GAChC,iBAAiB,CA+BnB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE,sBAA2B,GAAG,MAAM,CAErG;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAQhE"}
@@ -0,0 +1,301 @@
1
+ /**
2
+ * Pluggable embedding providers for Hippo.
3
+ *
4
+ * The local `@xenova/transformers` path stays the zero-DEPENDENCY DEFAULT. Opt-in
5
+ * API providers (OpenAI / Voyage / Cohere) let a user bring a frontier embedder
6
+ * (e.g. text-embedding-3-large) for frontier-class retrieval. They use the native
7
+ * `fetch` global (Node >= 22.5, see package.json engines — NO new dependency) and
8
+ * read their key from a conventional env var. The provider is selected by
9
+ * `config.embeddings.provider` (default `'local'`).
10
+ *
11
+ * Design contract (see docs/plans/2026-06-08-b-pluggable-embedding-provider.md):
12
+ * - Local provider `id` is the BARE model string, so existing stores whose DB
13
+ * meta `embedding_model` is `Xenova/all-MiniLM-L6-v2` see NO identity change
14
+ * and are NOT force-reindexed on upgrade.
15
+ * - API provider `id` is `${kind}:${model}`; switching to/from an API embedder
16
+ * (or a dimension change) flips the identity and triggers the existing
17
+ * reindex-on-change path.
18
+ * - `resolveEmbeddingProvider` NEVER throws. `isAvailable()` is provider-aware
19
+ * (local -> dependency installed; api -> key present). `embed()` MAY throw on
20
+ * a hard transport/auth failure so a reindex can abort atomically; hot paths
21
+ * wrap it and fall back to BM25.
22
+ *
23
+ * The exact request/response shapes for the API providers are documented from each
24
+ * vendor's public embeddings API; they are unit-tested here against a mocked
25
+ * `fetch` and are integration-verified in Workstream C (real API calls are
26
+ * egress-blocked in the build sandbox).
27
+ */
28
+ import { getEmbedding, isEmbeddingAvailable, resolveEmbeddingModel, DEFAULT_EMBEDDING_MODEL, } from './embeddings.js';
29
+ import { loadConfig } from './config.js';
30
+ export const API_PROVIDER_KINDS = ['openai', 'voyage', 'cohere'];
31
+ const DEFAULT_API_BATCH_SIZE = 64;
32
+ /** Per-request timeout for API embedding calls. A provider/proxy that accepts
33
+ * the connection but never responds must not hang embed/recall indefinitely. */
34
+ const REQUEST_TIMEOUT_MS = 30_000;
35
+ // ---------------------------------------------------------------------------
36
+ // Local provider — wraps the existing zero-dep transformers.js path.
37
+ // ---------------------------------------------------------------------------
38
+ class LocalEmbeddingProvider {
39
+ model;
40
+ enabled;
41
+ kind = 'local';
42
+ constructor(model, enabled = true) {
43
+ this.model = model;
44
+ this.enabled = enabled;
45
+ }
46
+ get id() {
47
+ return this.model;
48
+ }
49
+ isAvailable() {
50
+ return this.enabled && isEmbeddingAvailable();
51
+ }
52
+ async embed(texts, role) {
53
+ // Sequential to preserve the historical single-pipeline behaviour and avoid
54
+ // contending the one cached pipeline instance with N concurrent calls.
55
+ const out = [];
56
+ for (const text of texts) {
57
+ out.push(await getEmbedding(text, this.model, role));
58
+ }
59
+ return out;
60
+ }
61
+ }
62
+ const API_SHAPES = {
63
+ openai: {
64
+ keyEnv: 'OPENAI_API_KEY',
65
+ defaultBaseUrl: 'https://api.openai.com/v1',
66
+ path: 'embeddings',
67
+ defaultModel: 'text-embedding-3-large',
68
+ // OpenAI has no asymmetric query/passage input type for embeddings.
69
+ buildBody: (model, texts) => ({ model, input: texts }),
70
+ extractVectors: (json) => {
71
+ const data = json.data ?? [];
72
+ return data.map((d) => d.embedding ?? []);
73
+ },
74
+ },
75
+ voyage: {
76
+ keyEnv: 'VOYAGE_API_KEY',
77
+ defaultBaseUrl: 'https://api.voyageai.com/v1',
78
+ path: 'embeddings',
79
+ defaultModel: 'voyage-3',
80
+ buildBody: (model, texts, role) => {
81
+ const body = { model, input: texts };
82
+ if (role)
83
+ body.input_type = role === 'query' ? 'query' : 'document';
84
+ return body;
85
+ },
86
+ extractVectors: (json) => {
87
+ const data = json.data ?? [];
88
+ return data.map((d) => d.embedding ?? []);
89
+ },
90
+ },
91
+ cohere: {
92
+ keyEnv: 'COHERE_API_KEY',
93
+ defaultBaseUrl: 'https://api.cohere.com/v2',
94
+ path: 'embed',
95
+ defaultModel: 'embed-v4.0',
96
+ buildBody: (model, texts, role) => ({
97
+ model,
98
+ texts,
99
+ input_type: role === 'query' ? 'search_query' : 'search_document',
100
+ embedding_types: ['float'],
101
+ }),
102
+ extractVectors: (json) => {
103
+ // Cohere v2: { embeddings: { float: number[][] } }
104
+ const emb = json.embeddings;
105
+ return emb?.float ?? [];
106
+ },
107
+ },
108
+ };
109
+ /** Remove a secret substring from any string before it surfaces in an error. */
110
+ function redact(text, secret) {
111
+ if (!secret)
112
+ return text;
113
+ return text.split(secret).join('***');
114
+ }
115
+ function l2normalize(v) {
116
+ let norm = 0;
117
+ for (const x of v)
118
+ norm += x * x;
119
+ norm = Math.sqrt(norm);
120
+ if (norm < 1e-12)
121
+ return v;
122
+ return v.map((x) => x / norm);
123
+ }
124
+ class ApiEmbeddingProvider {
125
+ kind;
126
+ model;
127
+ baseUrl;
128
+ batchSize;
129
+ enabled;
130
+ constructor(kind, model, baseUrl, batchSize, enabled = true) {
131
+ this.kind = kind;
132
+ this.model = model;
133
+ this.baseUrl = baseUrl;
134
+ this.batchSize = batchSize;
135
+ this.enabled = enabled;
136
+ }
137
+ get id() {
138
+ return `${this.kind}:${this.model}`;
139
+ }
140
+ get keyEnv() {
141
+ return API_SHAPES[this.kind].keyEnv;
142
+ }
143
+ isAvailable() {
144
+ return this.enabled && !!process.env[this.keyEnv]?.trim();
145
+ }
146
+ async embed(texts, role) {
147
+ if (texts.length === 0)
148
+ return [];
149
+ const key = process.env[this.keyEnv]?.trim();
150
+ if (!key) {
151
+ // Hard, actionable failure — never includes a key value (there is none).
152
+ throw new Error(`Embedding provider '${this.kind}' is configured but ${this.keyEnv} is not set. ` +
153
+ `Export ${this.keyEnv} or set config.embeddings.provider back to 'local'.`);
154
+ }
155
+ const out = [];
156
+ for (let i = 0; i < texts.length; i += this.batchSize) {
157
+ const chunk = texts.slice(i, i + this.batchSize);
158
+ const vecs = await this.embedChunk(chunk, key, role);
159
+ for (const v of vecs)
160
+ out.push(v.length > 0 ? l2normalize(v) : v);
161
+ }
162
+ return out;
163
+ }
164
+ async embedChunk(chunk, key, role) {
165
+ const shape = API_SHAPES[this.kind];
166
+ const url = `${this.baseUrl.replace(/\/$/, '')}/${shape.path}`;
167
+ let resp;
168
+ try {
169
+ resp = await fetch(url, {
170
+ method: 'POST',
171
+ headers: {
172
+ 'content-type': 'application/json',
173
+ authorization: `Bearer ${key}`,
174
+ },
175
+ body: JSON.stringify(shape.buildBody(this.model, chunk, role)),
176
+ signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
177
+ });
178
+ }
179
+ catch (err) {
180
+ const msg = err instanceof Error ? err.message : String(err);
181
+ throw new Error(redact(`embedding request to ${this.kind} failed: ${msg}`, key));
182
+ }
183
+ if (!resp.ok) {
184
+ let detail = '';
185
+ try {
186
+ detail = await resp.text();
187
+ }
188
+ catch {
189
+ /* ignore body read error */
190
+ }
191
+ throw new Error(redact(`${this.kind} embeddings HTTP ${resp.status}: ${detail.slice(0, 300)}`, key));
192
+ }
193
+ let json;
194
+ try {
195
+ json = await resp.json();
196
+ }
197
+ catch (err) {
198
+ const msg = err instanceof Error ? err.message : String(err);
199
+ throw new Error(redact(`${this.kind} embeddings returned invalid JSON: ${msg}`, key));
200
+ }
201
+ const vectors = shape.extractVectors(json);
202
+ // A 200 response with the wrong number of vectors (or any empty/malformed
203
+ // vector) is a provider/proxy contract violation, NOT a per-item miss. Throw
204
+ // so a reindex aborts atomically (preserving the prior usable index) and the
205
+ // explicit backfill surfaces it, instead of silently saving []-padded rows.
206
+ if (vectors.length !== chunk.length) {
207
+ throw new Error(redact(`${this.kind} embeddings returned ${vectors.length} vectors for ${chunk.length} inputs`, key));
208
+ }
209
+ for (let i = 0; i < vectors.length; i++) {
210
+ if (!vectors[i] || vectors[i].length === 0) {
211
+ throw new Error(redact(`${this.kind} embeddings returned an empty vector at index ${i}`, key));
212
+ }
213
+ }
214
+ return vectors;
215
+ }
216
+ }
217
+ // ---------------------------------------------------------------------------
218
+ // Resolution
219
+ // ---------------------------------------------------------------------------
220
+ function readEmbeddingsConfig(hippoRoot) {
221
+ try {
222
+ return loadConfig(hippoRoot).embeddings;
223
+ }
224
+ catch {
225
+ return {};
226
+ }
227
+ }
228
+ /** Validate a user-supplied API base URL: HTTPS only (or explicit localhost). */
229
+ function validateBaseUrl(url, fallback) {
230
+ const candidate = url?.trim();
231
+ if (!candidate)
232
+ return fallback;
233
+ let parsed;
234
+ try {
235
+ parsed = new URL(candidate);
236
+ }
237
+ catch {
238
+ throw new Error(`config.embeddings.apiBaseUrl is not a valid URL: ${candidate}`);
239
+ }
240
+ const isLocalhost = parsed.hostname === 'localhost' || parsed.hostname === '127.0.0.1';
241
+ if (parsed.protocol !== 'https:' && !isLocalhost) {
242
+ throw new Error(`config.embeddings.apiBaseUrl must use https (got ${parsed.protocol}//${parsed.hostname}). ` +
243
+ `Plaintext http is only allowed for localhost.`);
244
+ }
245
+ return candidate;
246
+ }
247
+ /**
248
+ * Build the active embedding provider from config (or an explicit override).
249
+ * Never throws for a missing key — that surfaces via `isAvailable()` on the hot
250
+ * paths and as a hard error only from the explicit `hippo embed` command. The
251
+ * only hard throw is an invalid config (e.g. an insecure apiBaseUrl), a
252
+ * deliberate loud failure; hot-path callers (search) wrap this in try/catch.
253
+ */
254
+ export function resolveEmbeddingProvider(hippoRoot, opts = {}) {
255
+ const cfg = readEmbeddingsConfig(hippoRoot);
256
+ const requested = (opts.provider ?? cfg.provider ?? 'local');
257
+ // An explicit embeddings.enabled=false hard-disables embedding for BOTH local
258
+ // and API providers — for API this prevents unwanted paid off-box calls.
259
+ const enabled = cfg.enabled !== false;
260
+ if (requested === 'local') {
261
+ return new LocalEmbeddingProvider(resolveEmbeddingModel(hippoRoot, opts.model), enabled);
262
+ }
263
+ if (!API_PROVIDER_KINDS.includes(requested)) {
264
+ // Fail loud on a typo'd provider rather than silently using local (which
265
+ // would reindex with the local model and clobber the intended identity).
266
+ throw new Error(`Unknown embeddings.provider '${requested}'. Valid values: local, ${API_PROVIDER_KINDS.filter((k) => k !== 'local').join(', ')}.`);
267
+ }
268
+ const kind = requested;
269
+ const shape = API_SHAPES[kind];
270
+ // If no API model was chosen (config left the local default in place), fall
271
+ // back to the provider's flagship model rather than POSTing a local model id.
272
+ const requestedModel = (opts.model ?? cfg.model)?.trim();
273
+ const model = requestedModel && requestedModel !== DEFAULT_EMBEDDING_MODEL ? requestedModel : shape.defaultModel;
274
+ const baseUrl = validateBaseUrl(cfg.apiBaseUrl, shape.defaultBaseUrl);
275
+ const batchSize = typeof cfg.batchSize === 'number' && Number.isInteger(cfg.batchSize) && cfg.batchSize > 0
276
+ ? cfg.batchSize
277
+ : DEFAULT_API_BATCH_SIZE;
278
+ return new ApiEmbeddingProvider(kind, model, baseUrl, batchSize, enabled);
279
+ }
280
+ /**
281
+ * The reindex identity for the active provider. Use this (NOT resolveEmbeddingModel)
282
+ * everywhere `embeddingModelRequiresReindex` / stored-model comparisons happen.
283
+ */
284
+ export function resolveEmbeddingIdentity(hippoRoot, opts = {}) {
285
+ return resolveEmbeddingProvider(hippoRoot, opts).id;
286
+ }
287
+ /**
288
+ * Provider-aware availability for a store: local -> dependency installed;
289
+ * api -> key present. Use at the call sites that decide whether to embed.
290
+ */
291
+ export function isEmbeddingConfigured(hippoRoot) {
292
+ try {
293
+ return resolveEmbeddingProvider(hippoRoot).isAvailable();
294
+ }
295
+ catch {
296
+ // Invalid embedding config (e.g. an insecure apiBaseUrl) must not crash the
297
+ // best-effort ingestion guard — treat it as "not configured" and skip.
298
+ return false;
299
+ }
300
+ }
301
+ //# sourceMappingURL=embedding-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding-provider.js","sourceRoot":"","sources":["../src/embedding-provider.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  * Falls back silently if the library is not installed.
5
5
  */
6
6
  import { MemoryEntry } from './memory.js';
7
+ export declare const DEFAULT_EMBEDDING_MODEL = "Xenova/all-MiniLM-L6-v2";
7
8
  /**
8
9
  * Per-model pooling dispatch for `@xenova/transformers`'s feature-extraction
9
10
  * pipeline. BGE family models were trained with CLS pooling (per BAAI's
@@ -1 +1 @@
1
- {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../src/embeddings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAmB1C;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAExD;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAMrE;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAqB9C;AA6ED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAYvF;AAyBD,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAiC,GAC9D,MAAM,GAAG,IAAI,CAIf;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAiC,GAC9D,OAAO,CAGT;AAoCD;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,KAAK,SAA0B,EAC/B,IAAI,CAAC,EAAE,aAAa,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC,CAenB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAiBjE;AAID;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAQ9E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAU3F;AAkBD;;GAEG;AACH,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,WAAW,EAClB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CA6Cf;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAkDjB"}
1
+ {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../src/embeddings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAiB1C,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAGjE;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAExD;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAMrE;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAqB9C;AA6ED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAYvF;AAyBD,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAiC,GAC9D,MAAM,GAAG,IAAI,CAIf;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAiC,GAC9D,OAAO,CAGT;AAyCD;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,KAAK,SAA0B,EAC/B,IAAI,CAAC,EAAE,aAAa,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC,CAenB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAiBjE;AAID;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAQ9E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAU3F;AAkBD;;GAEG;AACH,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,WAAW,EAClB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAsDf;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CA+FjB"}