hoomanjs 1.28.1 → 1.28.3
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 +10 -16
- package/dist/acp/sessions/config-options.js +2 -2
- package/dist/acp/sessions/config-options.js.map +1 -1
- package/dist/acp/utils/tool-kind.js +4 -4
- package/dist/chat/index.js +1 -1
- package/dist/chat/index.js.map +1 -1
- package/dist/cli.js +3 -1
- package/dist/cli.js.map +1 -1
- package/dist/configure/app.js +5 -113
- package/dist/configure/app.js.map +1 -1
- package/dist/core/agent/index.d.ts +1 -1
- package/dist/core/agent/index.js +14 -2
- package/dist/core/agent/index.js.map +1 -1
- package/dist/core/config.d.ts +10 -36
- package/dist/core/config.js +13 -66
- package/dist/core/config.js.map +1 -1
- package/dist/core/memory/index.d.ts +1 -0
- package/dist/core/memory/index.js +1 -0
- package/dist/core/memory/index.js.map +1 -1
- package/dist/core/memory/ltm/llama-embed.d.ts +28 -0
- package/dist/core/memory/ltm/llama-embed.js +204 -0
- package/dist/core/memory/ltm/llama-embed.js.map +1 -0
- package/dist/core/memory/ltm/sqlite.d.ts +12 -0
- package/dist/core/memory/ltm/sqlite.js +101 -0
- package/dist/core/memory/ltm/sqlite.js.map +1 -0
- package/dist/core/memory/ltm/store.d.ts +13 -6
- package/dist/core/memory/ltm/store.js +192 -92
- package/dist/core/memory/ltm/store.js.map +1 -1
- package/dist/core/memory/ltm/tools.js +4 -4
- package/dist/core/memory/ltm/utils.d.ts +9 -11
- package/dist/core/memory/ltm/utils.js +14 -15
- package/dist/core/memory/ltm/utils.js.map +1 -1
- package/dist/core/memory/wiki/index.d.ts +4 -0
- package/dist/core/memory/wiki/index.js +4 -0
- package/dist/core/memory/wiki/index.js.map +1 -0
- package/dist/core/memory/wiki/store.d.ts +37 -0
- package/dist/core/memory/wiki/store.js +317 -0
- package/dist/core/memory/wiki/store.js.map +1 -0
- package/dist/core/memory/wiki/tools.d.ts +11 -0
- package/dist/core/memory/wiki/tools.js +291 -0
- package/dist/core/memory/wiki/tools.js.map +1 -0
- package/dist/core/memory/wiki/types.d.ts +25 -0
- package/dist/core/memory/wiki/types.js +2 -0
- package/dist/core/memory/wiki/types.js.map +1 -0
- package/dist/core/prompts/static/ltm.md +4 -4
- package/dist/core/prompts/static/wiki.md +2 -2
- package/dist/core/prompts/system.d.ts +4 -0
- package/dist/core/prompts/system.js +36 -4
- package/dist/core/prompts/system.js.map +1 -1
- package/dist/core/skills/built-in/hooman-config/SKILL.md +8 -30
- package/dist/core/state/tool-approvals.js +5 -5
- package/dist/core/tools/index.d.ts +1 -1
- package/dist/core/tools/index.js +1 -1
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/plan.d.ts +2 -2
- package/dist/core/utils/paths.d.ts +7 -0
- package/dist/core/utils/paths.js +9 -0
- package/dist/core/utils/paths.js.map +1 -1
- package/dist/index.d.ts +4 -5
- package/dist/index.js +3 -4
- package/dist/index.js.map +1 -1
- package/package.json +18 -3
- package/dist/core/memory/ltm/embed.d.ts +0 -16
- package/dist/core/memory/ltm/embed.js +0 -49
- package/dist/core/memory/ltm/embed.js.map +0 -1
- package/dist/core/tools/wiki.d.ts +0 -11
- package/dist/core/tools/wiki.js +0 -566
- package/dist/core/tools/wiki.js.map +0 -1
package/dist/core/config.d.ts
CHANGED
|
@@ -26,6 +26,16 @@ declare const NamedLlmSchema: z.ZodObject<{
|
|
|
26
26
|
}, z.core.$strip>;
|
|
27
27
|
default: z.ZodDefault<z.ZodBoolean>;
|
|
28
28
|
}, z.core.$strip>;
|
|
29
|
+
/**
|
|
30
|
+
* Default GGUF embedding model for `node-llama-cpp` `resolveModelFile`.
|
|
31
|
+
* Must be a resolvable URI (e.g. `hf:…`) or an existing filename under the cache dir;
|
|
32
|
+
* the bare name `embeddinggemma` is not valid here—see QMD `llm.ts` default.
|
|
33
|
+
*/
|
|
34
|
+
export declare const DEFAULT_LTM_EMBED_MODEL = "hf:ggml-org/embeddinggemma-300M-GGUF/embeddinggemma-300M-Q8_0.gguf";
|
|
35
|
+
/** Default wiki (QMD) model URIs (passed into `createStore`; change here to retune wiki search). */
|
|
36
|
+
export declare const DEFAULT_WIKI_EMBED_MODEL = "hf:ggml-org/embeddinggemma-300M-GGUF/embeddinggemma-300M-Q8_0.gguf";
|
|
37
|
+
export declare const DEFAULT_WIKI_RERANK_MODEL = "hf:ggml-org/Qwen3-Reranker-0.6B-Q8_0-GGUF/qwen3-reranker-0.6b-q8_0.gguf";
|
|
38
|
+
export declare const DEFAULT_WIKI_GENERATE_MODEL = "hf:tobil/qmd-query-expansion-0.6B-gguf/qmd-query-expansion-0.6B-q4_k_m.gguf";
|
|
29
39
|
declare const ConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
30
40
|
name: z.ZodString;
|
|
31
41
|
llms: z.ZodArray<z.ZodObject<{
|
|
@@ -86,21 +96,9 @@ declare const ConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
86
96
|
}, z.core.$strip>>;
|
|
87
97
|
ltm: z.ZodOptional<z.ZodObject<{
|
|
88
98
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
89
|
-
chroma: z.ZodOptional<z.ZodObject<{
|
|
90
|
-
url: z.ZodOptional<z.ZodString>;
|
|
91
|
-
collection: z.ZodOptional<z.ZodObject<{
|
|
92
|
-
memory: z.ZodOptional<z.ZodString>;
|
|
93
|
-
}, z.core.$strip>>;
|
|
94
|
-
}, z.core.$strip>>;
|
|
95
99
|
}, z.core.$strip>>;
|
|
96
100
|
wiki: z.ZodOptional<z.ZodObject<{
|
|
97
101
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
98
|
-
chroma: z.ZodOptional<z.ZodObject<{
|
|
99
|
-
url: z.ZodOptional<z.ZodString>;
|
|
100
|
-
collection: z.ZodOptional<z.ZodObject<{
|
|
101
|
-
wiki: z.ZodOptional<z.ZodString>;
|
|
102
|
-
}, z.core.$strip>>;
|
|
103
|
-
}, z.core.$strip>>;
|
|
104
102
|
}, z.core.$strip>>;
|
|
105
103
|
agents: z.ZodOptional<z.ZodObject<{
|
|
106
104
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -171,21 +169,9 @@ declare const ConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
171
169
|
};
|
|
172
170
|
ltm: {
|
|
173
171
|
enabled: boolean;
|
|
174
|
-
chroma: {
|
|
175
|
-
url: string;
|
|
176
|
-
collection: {
|
|
177
|
-
memory: string;
|
|
178
|
-
};
|
|
179
|
-
};
|
|
180
172
|
};
|
|
181
173
|
wiki: {
|
|
182
174
|
enabled: boolean;
|
|
183
|
-
chroma: {
|
|
184
|
-
url: string;
|
|
185
|
-
collection: {
|
|
186
|
-
wiki: string;
|
|
187
|
-
};
|
|
188
|
-
};
|
|
189
175
|
};
|
|
190
176
|
agents: {
|
|
191
177
|
enabled: boolean;
|
|
@@ -254,21 +240,9 @@ declare const ConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
254
240
|
} | undefined;
|
|
255
241
|
ltm?: {
|
|
256
242
|
enabled?: boolean | undefined;
|
|
257
|
-
chroma?: {
|
|
258
|
-
url?: string | undefined;
|
|
259
|
-
collection?: {
|
|
260
|
-
memory?: string | undefined;
|
|
261
|
-
} | undefined;
|
|
262
|
-
} | undefined;
|
|
263
243
|
} | undefined;
|
|
264
244
|
wiki?: {
|
|
265
245
|
enabled?: boolean | undefined;
|
|
266
|
-
chroma?: {
|
|
267
|
-
url?: string | undefined;
|
|
268
|
-
collection?: {
|
|
269
|
-
wiki?: string | undefined;
|
|
270
|
-
} | undefined;
|
|
271
|
-
} | undefined;
|
|
272
246
|
} | undefined;
|
|
273
247
|
agents?: {
|
|
274
248
|
enabled?: boolean | undefined;
|
package/dist/core/config.js
CHANGED
|
@@ -38,37 +38,18 @@ const DEFAULT_PROMPTS = {
|
|
|
38
38
|
execution: true,
|
|
39
39
|
guardrails: true,
|
|
40
40
|
};
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
collection: z
|
|
52
|
-
.object({
|
|
53
|
-
memory: z.string().min(1).optional(),
|
|
54
|
-
})
|
|
55
|
-
.optional(),
|
|
56
|
-
});
|
|
41
|
+
/**
|
|
42
|
+
* Default GGUF embedding model for `node-llama-cpp` `resolveModelFile`.
|
|
43
|
+
* Must be a resolvable URI (e.g. `hf:…`) or an existing filename under the cache dir;
|
|
44
|
+
* the bare name `embeddinggemma` is not valid here—see QMD `llm.ts` default.
|
|
45
|
+
*/
|
|
46
|
+
export const DEFAULT_LTM_EMBED_MODEL = "hf:ggml-org/embeddinggemma-300M-GGUF/embeddinggemma-300M-Q8_0.gguf";
|
|
47
|
+
/** Default wiki (QMD) model URIs (passed into `createStore`; change here to retune wiki search). */
|
|
48
|
+
export const DEFAULT_WIKI_EMBED_MODEL = DEFAULT_LTM_EMBED_MODEL;
|
|
49
|
+
export const DEFAULT_WIKI_RERANK_MODEL = "hf:ggml-org/Qwen3-Reranker-0.6B-Q8_0-GGUF/qwen3-reranker-0.6b-q8_0.gguf";
|
|
50
|
+
export const DEFAULT_WIKI_GENERATE_MODEL = "hf:tobil/qmd-query-expansion-0.6B-gguf/qmd-query-expansion-0.6B-q4_k_m.gguf";
|
|
57
51
|
const LtmPartialSchema = z.object({
|
|
58
52
|
enabled: z.boolean().optional(),
|
|
59
|
-
chroma: LtmChromaPartialSchema.optional(),
|
|
60
|
-
});
|
|
61
|
-
const WikiChromaPartialSchema = z.object({
|
|
62
|
-
url: z.string().min(1).optional(),
|
|
63
|
-
collection: z
|
|
64
|
-
.object({
|
|
65
|
-
wiki: z.string().min(1).optional(),
|
|
66
|
-
})
|
|
67
|
-
.optional(),
|
|
68
|
-
});
|
|
69
|
-
const WikiPartialSchema = z.object({
|
|
70
|
-
enabled: z.boolean().optional(),
|
|
71
|
-
chroma: WikiChromaPartialSchema.optional(),
|
|
72
53
|
});
|
|
73
54
|
const ToolTogglePartialSchema = z.object({
|
|
74
55
|
enabled: z.boolean().optional(),
|
|
@@ -126,7 +107,7 @@ const ToolsPartialSchema = z.object({
|
|
|
126
107
|
shell: ToolTogglePartialSchema.optional(),
|
|
127
108
|
sleep: ToolTogglePartialSchema.optional(),
|
|
128
109
|
ltm: LtmPartialSchema.optional(),
|
|
129
|
-
wiki:
|
|
110
|
+
wiki: ToolTogglePartialSchema.optional(),
|
|
130
111
|
agents: AgentsPartialSchema.optional(),
|
|
131
112
|
});
|
|
132
113
|
const ConfigSchema = z
|
|
@@ -190,23 +171,9 @@ const ConfigSchema = z
|
|
|
190
171
|
},
|
|
191
172
|
ltm: {
|
|
192
173
|
enabled: ltm?.enabled ?? false,
|
|
193
|
-
chroma: {
|
|
194
|
-
url: ltm?.chroma?.url ?? DEFAULT_CHROMA.url,
|
|
195
|
-
collection: {
|
|
196
|
-
memory: ltm?.chroma?.collection?.memory ??
|
|
197
|
-
DEFAULT_CHROMA.collection.memory,
|
|
198
|
-
},
|
|
199
|
-
},
|
|
200
174
|
},
|
|
201
175
|
wiki: {
|
|
202
176
|
enabled: wiki?.enabled ?? false,
|
|
203
|
-
chroma: {
|
|
204
|
-
url: wiki?.chroma?.url ?? DEFAULT_WIKI_CHROMA.url,
|
|
205
|
-
collection: {
|
|
206
|
-
wiki: wiki?.chroma?.collection?.wiki ??
|
|
207
|
-
DEFAULT_WIKI_CHROMA.collection.wiki,
|
|
208
|
-
},
|
|
209
|
-
},
|
|
210
177
|
},
|
|
211
178
|
agents: {
|
|
212
179
|
enabled: input.tools?.agents?.enabled ?? true,
|
|
@@ -257,17 +224,9 @@ const defaultConfigData = () => ({
|
|
|
257
224
|
},
|
|
258
225
|
ltm: {
|
|
259
226
|
enabled: false,
|
|
260
|
-
chroma: {
|
|
261
|
-
url: "http://127.0.0.1:8000",
|
|
262
|
-
collection: { memory: "memory" },
|
|
263
|
-
},
|
|
264
227
|
},
|
|
265
228
|
wiki: {
|
|
266
229
|
enabled: false,
|
|
267
|
-
chroma: {
|
|
268
|
-
url: "http://127.0.0.1:8000",
|
|
269
|
-
collection: { wiki: "wiki" },
|
|
270
|
-
},
|
|
271
230
|
},
|
|
272
231
|
agents: {
|
|
273
232
|
enabled: true,
|
|
@@ -317,20 +276,8 @@ export class Config {
|
|
|
317
276
|
filesystem: { ...this.data.tools.filesystem },
|
|
318
277
|
shell: { ...this.data.tools.shell },
|
|
319
278
|
sleep: { ...this.data.tools.sleep },
|
|
320
|
-
ltm: {
|
|
321
|
-
|
|
322
|
-
chroma: {
|
|
323
|
-
...this.data.tools.ltm.chroma,
|
|
324
|
-
collection: { ...this.data.tools.ltm.chroma.collection },
|
|
325
|
-
},
|
|
326
|
-
},
|
|
327
|
-
wiki: {
|
|
328
|
-
...this.data.tools.wiki,
|
|
329
|
-
chroma: {
|
|
330
|
-
...this.data.tools.wiki.chroma,
|
|
331
|
-
collection: { ...this.data.tools.wiki.chroma.collection },
|
|
332
|
-
},
|
|
333
|
-
},
|
|
279
|
+
ltm: { ...this.data.tools.ltm },
|
|
280
|
+
wiki: { ...this.data.tools.wiki },
|
|
334
281
|
agents: { ...this.data.tools.agents },
|
|
335
282
|
};
|
|
336
283
|
}
|
package/dist/core/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { create as createShortTermMemory } from "./stm/index.js";
|
|
2
2
|
export { createLongTermMemoryStore, createLongTermMemoryTools, LongTermMemoryStore, } from "./ltm/index.js";
|
|
3
|
+
export { WikiStore, createWikiStore } from "./wiki/index.js";
|
|
3
4
|
export type { ArchiveMemoryInput, LongTermMemoryOptions, LongTermMemoryScope, MemorySource, SearchMemoryInput, SearchMemoryResult, StoreMemoryInput, StoreMemoryResult, UpdateMemoryInput, } from "./ltm/index.js";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { create as createShortTermMemory } from "./stm/index.js";
|
|
2
2
|
export { createLongTermMemoryStore, createLongTermMemoryTools, LongTermMemoryStore, } from "./ltm/index.js";
|
|
3
|
+
export { WikiStore, createWikiStore } from "./wiki/index.js";
|
|
3
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare function isQwen3EmbeddingModel(modelUri: string): boolean;
|
|
2
|
+
export declare function formatQueryForEmbedding(query: string, modelUri?: string): string;
|
|
3
|
+
export declare function formatDocForEmbedding(text: string, title: string | undefined, modelUri?: string): string;
|
|
4
|
+
export type LtmLlamaEmbedderOptions = {
|
|
5
|
+
modelUri: string;
|
|
6
|
+
cacheDir: string;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Lazy local GGUF embeddings (node-llama-cpp), matching QMD formatting rules.
|
|
10
|
+
*/
|
|
11
|
+
export declare class LtmLlamaEmbedder {
|
|
12
|
+
private readonly modelUri;
|
|
13
|
+
private readonly cacheDir;
|
|
14
|
+
private llama;
|
|
15
|
+
private model;
|
|
16
|
+
private context;
|
|
17
|
+
private loadPromise;
|
|
18
|
+
constructor(options: LtmLlamaEmbedderOptions);
|
|
19
|
+
get resolvedModelUri(): string;
|
|
20
|
+
/** Load GGUF + embedding context (no forward pass). Call at agent startup to avoid blocking tools. */
|
|
21
|
+
warmup(): Promise<void>;
|
|
22
|
+
private ensureLoaded;
|
|
23
|
+
private resolveEmbedTokenLimit;
|
|
24
|
+
private truncateToContextSize;
|
|
25
|
+
embedQuery(query: string): Promise<Float32Array>;
|
|
26
|
+
embedDocument(content: string): Promise<Float32Array>;
|
|
27
|
+
dispose(): Promise<void>;
|
|
28
|
+
}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { getLlama, resolveModelFile, LlamaLogLevel, } from "node-llama-cpp";
|
|
2
|
+
import { closeSync, existsSync, mkdirSync, openSync, readSync, statSync, unlinkSync, } from "node:fs";
|
|
3
|
+
const GGUF_MAGIC = Buffer.from("GGUF");
|
|
4
|
+
function validateGgufFile(filePath, modelUri) {
|
|
5
|
+
if (!existsSync(filePath)) {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
const fd = openSync(filePath, "r");
|
|
9
|
+
const sniff = Buffer.alloc(512);
|
|
10
|
+
try {
|
|
11
|
+
readSync(fd, sniff, 0, 512, 0);
|
|
12
|
+
}
|
|
13
|
+
finally {
|
|
14
|
+
closeSync(fd);
|
|
15
|
+
}
|
|
16
|
+
const header = sniff.subarray(0, 4);
|
|
17
|
+
if (header.equals(GGUF_MAGIC)) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const text = sniff.toString("utf-8").toLowerCase();
|
|
21
|
+
const isHtml = text.includes("<!doctype") || text.includes("<html");
|
|
22
|
+
const got = header.toString("utf-8");
|
|
23
|
+
const sizeKB = (statSync(filePath).size / 1024).toFixed(0);
|
|
24
|
+
unlinkSync(filePath);
|
|
25
|
+
if (isHtml) {
|
|
26
|
+
throw new Error(`Downloaded LTM embed model is an HTML page, not GGUF (${sizeKB} KB).\n` +
|
|
27
|
+
`Model: ${modelUri}\nPath: ${filePath}`);
|
|
28
|
+
}
|
|
29
|
+
throw new Error(`LTM embed model is not valid GGUF (expected "GGUF", got "${got}", ${sizeKB} KB).\n` +
|
|
30
|
+
`Model: ${modelUri}`);
|
|
31
|
+
}
|
|
32
|
+
export function isQwen3EmbeddingModel(modelUri) {
|
|
33
|
+
return /qwen.*embed/i.test(modelUri) || /embed.*qwen/i.test(modelUri);
|
|
34
|
+
}
|
|
35
|
+
export function formatQueryForEmbedding(query, modelUri) {
|
|
36
|
+
const uri = modelUri ?? "";
|
|
37
|
+
if (isQwen3EmbeddingModel(uri)) {
|
|
38
|
+
return `Instruct: Retrieve relevant documents for the given query\nQuery: ${query}`;
|
|
39
|
+
}
|
|
40
|
+
return `task: search result | query: ${query}`;
|
|
41
|
+
}
|
|
42
|
+
export function formatDocForEmbedding(text, title, modelUri) {
|
|
43
|
+
const uri = modelUri ?? "";
|
|
44
|
+
if (isQwen3EmbeddingModel(uri)) {
|
|
45
|
+
return title ? `${title}\n${text}` : text;
|
|
46
|
+
}
|
|
47
|
+
return `title: ${title || "none"} | text: ${text}`;
|
|
48
|
+
}
|
|
49
|
+
function resolveLlamaGpuMode() {
|
|
50
|
+
if (process.env.CI) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
const raw = process.env.HOOMAN_LTM_LLAMA_GPU?.trim() ||
|
|
54
|
+
process.env.QMD_LLAMA_GPU?.trim() ||
|
|
55
|
+
"";
|
|
56
|
+
const normalized = raw.toLowerCase();
|
|
57
|
+
if (!normalized) {
|
|
58
|
+
return "auto";
|
|
59
|
+
}
|
|
60
|
+
if (["false", "off", "none", "disable", "disabled", "0"].includes(normalized)) {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
if (normalized === "metal" ||
|
|
64
|
+
normalized === "vulkan" ||
|
|
65
|
+
normalized === "cuda") {
|
|
66
|
+
return normalized;
|
|
67
|
+
}
|
|
68
|
+
return "auto";
|
|
69
|
+
}
|
|
70
|
+
function resolveEmbedContextSize() {
|
|
71
|
+
const v = Number.parseInt(process.env.HOOMAN_LTM_EMBED_CONTEXT_SIZE ?? "", 10);
|
|
72
|
+
if (Number.isFinite(v) && v > 0) {
|
|
73
|
+
return v;
|
|
74
|
+
}
|
|
75
|
+
return 2048;
|
|
76
|
+
}
|
|
77
|
+
const EMBED_CONTEXT_SIZE = resolveEmbedContextSize();
|
|
78
|
+
/**
|
|
79
|
+
* Lazy local GGUF embeddings (node-llama-cpp), matching QMD formatting rules.
|
|
80
|
+
*/
|
|
81
|
+
export class LtmLlamaEmbedder {
|
|
82
|
+
modelUri;
|
|
83
|
+
cacheDir;
|
|
84
|
+
llama = null;
|
|
85
|
+
model = null;
|
|
86
|
+
context = null;
|
|
87
|
+
loadPromise = null;
|
|
88
|
+
constructor(options) {
|
|
89
|
+
this.modelUri = options.modelUri;
|
|
90
|
+
this.cacheDir = options.cacheDir;
|
|
91
|
+
}
|
|
92
|
+
get resolvedModelUri() {
|
|
93
|
+
return this.modelUri;
|
|
94
|
+
}
|
|
95
|
+
/** Load GGUF + embedding context (no forward pass). Call at agent startup to avoid blocking tools. */
|
|
96
|
+
async warmup() {
|
|
97
|
+
await this.ensureLoaded();
|
|
98
|
+
}
|
|
99
|
+
async ensureLoaded() {
|
|
100
|
+
if (this.context) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
if (this.loadPromise) {
|
|
104
|
+
await this.loadPromise;
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
this.loadPromise = (async () => {
|
|
108
|
+
if (!existsSync(this.cacheDir)) {
|
|
109
|
+
mkdirSync(this.cacheDir, { recursive: true });
|
|
110
|
+
}
|
|
111
|
+
const modelPath = await resolveModelFile(this.modelUri, this.cacheDir);
|
|
112
|
+
validateGgufFile(modelPath, this.modelUri);
|
|
113
|
+
const gpuMode = resolveLlamaGpuMode();
|
|
114
|
+
const loadLlama = async (gpu) => getLlama({
|
|
115
|
+
build: "never",
|
|
116
|
+
logLevel: LlamaLogLevel.error,
|
|
117
|
+
gpu,
|
|
118
|
+
});
|
|
119
|
+
let llama;
|
|
120
|
+
if (gpuMode === false) {
|
|
121
|
+
llama = await loadLlama(false);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
try {
|
|
125
|
+
llama = await loadLlama(gpuMode);
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
llama = await loadLlama(false);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
this.llama = llama;
|
|
132
|
+
const model = await llama.loadModel({ modelPath });
|
|
133
|
+
this.model = model;
|
|
134
|
+
const trained = model.trainContextSize;
|
|
135
|
+
const contextSize = typeof trained === "number" && Number.isFinite(trained) && trained > 0
|
|
136
|
+
? Math.max(1, Math.min(EMBED_CONTEXT_SIZE, trained))
|
|
137
|
+
: EMBED_CONTEXT_SIZE;
|
|
138
|
+
this.context = await model.createEmbeddingContext({ contextSize });
|
|
139
|
+
})();
|
|
140
|
+
try {
|
|
141
|
+
await this.loadPromise;
|
|
142
|
+
}
|
|
143
|
+
finally {
|
|
144
|
+
this.loadPromise = null;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
resolveEmbedTokenLimit() {
|
|
148
|
+
const trained = this.model?.trainContextSize;
|
|
149
|
+
if (typeof trained === "number" &&
|
|
150
|
+
Number.isFinite(trained) &&
|
|
151
|
+
trained > 0) {
|
|
152
|
+
return Math.max(1, Math.min(EMBED_CONTEXT_SIZE, trained));
|
|
153
|
+
}
|
|
154
|
+
return EMBED_CONTEXT_SIZE;
|
|
155
|
+
}
|
|
156
|
+
truncateToContextSize(text) {
|
|
157
|
+
if (!this.model) {
|
|
158
|
+
return text;
|
|
159
|
+
}
|
|
160
|
+
const maxTokens = this.resolveEmbedTokenLimit();
|
|
161
|
+
if (maxTokens <= 0) {
|
|
162
|
+
return text;
|
|
163
|
+
}
|
|
164
|
+
const tokens = this.model.tokenize(text);
|
|
165
|
+
if (tokens.length <= maxTokens) {
|
|
166
|
+
return text;
|
|
167
|
+
}
|
|
168
|
+
const safeLimit = Math.max(1, maxTokens - 4);
|
|
169
|
+
const truncatedTokens = tokens.slice(0, safeLimit);
|
|
170
|
+
return this.model.detokenize(truncatedTokens);
|
|
171
|
+
}
|
|
172
|
+
async embedQuery(query) {
|
|
173
|
+
await this.ensureLoaded();
|
|
174
|
+
if (!this.context || !this.model) {
|
|
175
|
+
throw new Error("LTM embed context not initialized");
|
|
176
|
+
}
|
|
177
|
+
const formatted = formatQueryForEmbedding(query, this.modelUri);
|
|
178
|
+
const safe = this.truncateToContextSize(formatted);
|
|
179
|
+
const result = await this.context.getEmbeddingFor(safe);
|
|
180
|
+
return new Float32Array(result.vector);
|
|
181
|
+
}
|
|
182
|
+
async embedDocument(content) {
|
|
183
|
+
await this.ensureLoaded();
|
|
184
|
+
if (!this.context || !this.model) {
|
|
185
|
+
throw new Error("LTM embed context not initialized");
|
|
186
|
+
}
|
|
187
|
+
const formatted = formatDocForEmbedding(content, undefined, this.modelUri);
|
|
188
|
+
const safe = this.truncateToContextSize(formatted);
|
|
189
|
+
const result = await this.context.getEmbeddingFor(safe);
|
|
190
|
+
return new Float32Array(result.vector);
|
|
191
|
+
}
|
|
192
|
+
async dispose() {
|
|
193
|
+
if (this.context) {
|
|
194
|
+
await this.context.dispose();
|
|
195
|
+
this.context = null;
|
|
196
|
+
}
|
|
197
|
+
if (this.model) {
|
|
198
|
+
await this.model.dispose();
|
|
199
|
+
this.model = null;
|
|
200
|
+
}
|
|
201
|
+
this.llama = null;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=llama-embed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llama-embed.js","sourceRoot":"","sources":["../../../../src/core/memory/ltm/llama-embed.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import Database from "better-sqlite3";
|
|
2
|
+
export type LtmDatabase = Database.Database;
|
|
3
|
+
declare const META_DIMS = "embedding_dims";
|
|
4
|
+
declare const META_MODEL = "embedding_model_id";
|
|
5
|
+
export declare function loadSqliteVecExtension(db: LtmDatabase): void;
|
|
6
|
+
export declare function verifySqliteVecLoaded(db: LtmDatabase): void;
|
|
7
|
+
export declare function openLtmDatabase(path: string): LtmDatabase;
|
|
8
|
+
export declare function getStoreMeta(db: LtmDatabase, key: string): string | null;
|
|
9
|
+
export declare function setStoreMeta(db: LtmDatabase, key: string, value: string): void;
|
|
10
|
+
export declare function ensureVecTable(db: LtmDatabase, dimensions: number): void;
|
|
11
|
+
export declare function persistEmbeddingSchemaMeta(db: LtmDatabase, modelId: string, dimensions: number): void;
|
|
12
|
+
export { META_DIMS, META_MODEL };
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import Database from "better-sqlite3";
|
|
2
|
+
import * as sqliteVec from "sqlite-vec";
|
|
3
|
+
const META_DIMS = "embedding_dims";
|
|
4
|
+
const META_MODEL = "embedding_model_id";
|
|
5
|
+
export function loadSqliteVecExtension(db) {
|
|
6
|
+
sqliteVec.load(db);
|
|
7
|
+
}
|
|
8
|
+
export function verifySqliteVecLoaded(db) {
|
|
9
|
+
try {
|
|
10
|
+
const row = db.prepare(`SELECT vec_version() AS version`).get();
|
|
11
|
+
if (!row?.version || typeof row.version !== "string") {
|
|
12
|
+
throw new Error("vec_version() returned no version");
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
catch (err) {
|
|
16
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
17
|
+
throw new Error(`sqlite-vec extension is unavailable (probe failed: ${msg}). ` +
|
|
18
|
+
"Ensure sqlite-vec native bindings are installed for your platform.");
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function migrateSchema(db) {
|
|
22
|
+
db.exec(`
|
|
23
|
+
CREATE TABLE IF NOT EXISTS ltm_memories (
|
|
24
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
25
|
+
user_id TEXT NOT NULL,
|
|
26
|
+
type TEXT NOT NULL,
|
|
27
|
+
status TEXT NOT NULL,
|
|
28
|
+
content TEXT NOT NULL,
|
|
29
|
+
importance REAL NOT NULL,
|
|
30
|
+
strength REAL NOT NULL,
|
|
31
|
+
access_count INTEGER NOT NULL,
|
|
32
|
+
confidence REAL,
|
|
33
|
+
created_at INTEGER NOT NULL,
|
|
34
|
+
updated_at INTEGER,
|
|
35
|
+
last_accessed_at INTEGER,
|
|
36
|
+
version INTEGER NOT NULL,
|
|
37
|
+
source TEXT NOT NULL,
|
|
38
|
+
tags_json TEXT,
|
|
39
|
+
entities_json TEXT,
|
|
40
|
+
related_to_json TEXT,
|
|
41
|
+
superseded_by TEXT
|
|
42
|
+
);
|
|
43
|
+
CREATE INDEX IF NOT EXISTS idx_ltm_user_status ON ltm_memories(user_id, status);
|
|
44
|
+
CREATE INDEX IF NOT EXISTS idx_ltm_user_type ON ltm_memories(user_id, type);
|
|
45
|
+
|
|
46
|
+
CREATE TABLE IF NOT EXISTS ltm_store_meta (
|
|
47
|
+
key TEXT PRIMARY KEY,
|
|
48
|
+
value TEXT NOT NULL
|
|
49
|
+
);
|
|
50
|
+
`);
|
|
51
|
+
}
|
|
52
|
+
export function openLtmDatabase(path) {
|
|
53
|
+
const db = new Database(path);
|
|
54
|
+
db.pragma("journal_mode = WAL");
|
|
55
|
+
db.pragma("foreign_keys = ON");
|
|
56
|
+
loadSqliteVecExtension(db);
|
|
57
|
+
verifySqliteVecLoaded(db);
|
|
58
|
+
migrateSchema(db);
|
|
59
|
+
return db;
|
|
60
|
+
}
|
|
61
|
+
export function getStoreMeta(db, key) {
|
|
62
|
+
const row = db
|
|
63
|
+
.prepare(`SELECT value FROM ltm_store_meta WHERE key = ?`)
|
|
64
|
+
.get(key);
|
|
65
|
+
return row?.value ?? null;
|
|
66
|
+
}
|
|
67
|
+
export function setStoreMeta(db, key, value) {
|
|
68
|
+
db.prepare(`INSERT INTO ltm_store_meta (key, value) VALUES (?, ?)
|
|
69
|
+
ON CONFLICT(key) DO UPDATE SET value = excluded.value`).run(key, value);
|
|
70
|
+
}
|
|
71
|
+
export function ensureVecTable(db, dimensions) {
|
|
72
|
+
const tableInfo = db
|
|
73
|
+
.prepare(`SELECT sql FROM sqlite_master WHERE type='table' AND name='vectors_vec'`)
|
|
74
|
+
.get();
|
|
75
|
+
if (tableInfo) {
|
|
76
|
+
const match = tableInfo.sql.match(/float\[(\d+)\]/);
|
|
77
|
+
const hasMemoryId = tableInfo.sql.includes("memory_id");
|
|
78
|
+
const hasCosine = tableInfo.sql.includes("distance_metric=cosine");
|
|
79
|
+
const existingDims = match?.[1] ? Number.parseInt(match[1], 10) : null;
|
|
80
|
+
if (existingDims === dimensions && hasMemoryId && hasCosine) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (existingDims !== null && existingDims !== dimensions) {
|
|
84
|
+
throw new Error(`LTM embedding dimension mismatch: existing vectors are ${existingDims}d but the current model produces ${dimensions}d. ` +
|
|
85
|
+
"Change back to the previous embed model or delete ~/.hooman/ltm.sqlite to rebuild (data loss).");
|
|
86
|
+
}
|
|
87
|
+
db.exec("DROP TABLE IF EXISTS vectors_vec");
|
|
88
|
+
}
|
|
89
|
+
db.exec(`CREATE VIRTUAL TABLE vectors_vec USING vec0(memory_id TEXT PRIMARY KEY, embedding float[${dimensions}] distance_metric=cosine)`);
|
|
90
|
+
}
|
|
91
|
+
export function persistEmbeddingSchemaMeta(db, modelId, dimensions) {
|
|
92
|
+
const existingModel = getStoreMeta(db, META_MODEL);
|
|
93
|
+
if (existingModel != null && existingModel !== modelId) {
|
|
94
|
+
throw new Error(`LTM database was built with embed model "${existingModel}" but config requests "${modelId}". ` +
|
|
95
|
+
"Change DEFAULT_LTM_EMBED_MODEL in Hooman or delete ltm.sqlite to rebuild (data loss).");
|
|
96
|
+
}
|
|
97
|
+
setStoreMeta(db, META_MODEL, modelId);
|
|
98
|
+
setStoreMeta(db, META_DIMS, String(dimensions));
|
|
99
|
+
}
|
|
100
|
+
export { META_DIMS, META_MODEL };
|
|
101
|
+
//# sourceMappingURL=sqlite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../../../src/core/memory/ltm/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AAIxC,MAAM,SAAS,GAAG,gBAAgB,CAAC;AACnC,MAAM,UAAU,GAAG,oBAAoB,CAAC;AAExC,MAAM,UAAU,sBAAsB,CAAC,EAAe;IACpD,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EAAe;IACnD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,GAAG,EAEhD,CAAC;QACd,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,KAAK,CACb,sDAAsD,GAAG,KAAK;YAC5D,oEAAoE,CACvE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,EAAe;IACpC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BP,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC/B,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC3B,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAC1B,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAe,EAAE,GAAW;IACvD,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CAAC,gDAAgD,CAAC;SACzD,GAAG,CAAC,GAAG,CAAkC,CAAC;IAC7C,OAAO,GAAG,EAAE,KAAK,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,EAAe,EACf,GAAW,EACX,KAAa;IAEb,EAAE,CAAC,OAAO,CACR;2DACuD,CACxD,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAe,EAAE,UAAkB;IAChE,MAAM,SAAS,GAAG,EAAE;SACjB,OAAO,CACN,yEAAyE,CAC1E;SACA,GAAG,EAA4B,CAAC;IAEnC,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;QACnE,MAAM,YAAY,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACvE,IAAI,YAAY,KAAK,UAAU,IAAI,WAAW,IAAI,SAAS,EAAE,CAAC;YAC5D,OAAO;QACT,CAAC;QACD,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CACb,0DAA0D,YAAY,oCAAoC,UAAU,KAAK;gBACvH,gGAAgG,CACnG,CAAC;QACJ,CAAC;QACD,EAAE,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAC9C,CAAC;IAED,EAAE,CAAC,IAAI,CACL,2FAA2F,UAAU,2BAA2B,CACjI,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,EAAe,EACf,OAAe,EACf,UAAkB;IAElB,MAAM,aAAa,GAAG,YAAY,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IACnD,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CACb,4CAA4C,aAAa,0BAA0B,OAAO,KAAK;YAC7F,uFAAuF,CAC1F,CAAC;IACJ,CAAC;IACD,YAAY,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACtC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC"}
|