@xfabric/memory 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +10 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -2
- package/dist/index.js.map +1 -1
- package/dist/memory-manager.d.ts +83 -1
- package/dist/memory-manager.d.ts.map +1 -1
- package/dist/memory-manager.js +491 -8
- package/dist/memory-manager.js.map +1 -1
- package/dist/plugin/index.d.ts +8 -0
- package/dist/plugin/index.d.ts.map +1 -0
- package/dist/plugin/index.js +130 -0
- package/dist/plugin/index.js.map +1 -0
- package/dist/providers/batch-gemini.d.ts +20 -0
- package/dist/providers/batch-gemini.d.ts.map +1 -0
- package/dist/providers/batch-gemini.js +279 -0
- package/dist/providers/batch-gemini.js.map +1 -0
- package/dist/providers/batch-openai.d.ts +20 -0
- package/dist/providers/batch-openai.d.ts.map +1 -0
- package/dist/providers/batch-openai.js +267 -0
- package/dist/providers/batch-openai.js.map +1 -0
- package/dist/providers/batch-runner.d.ts +62 -0
- package/dist/providers/batch-runner.d.ts.map +1 -0
- package/dist/providers/batch-runner.js +141 -0
- package/dist/providers/batch-runner.js.map +1 -0
- package/dist/providers/index.d.ts +3 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +4 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/sync/index.d.ts +1 -0
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +1 -0
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/session-events.d.ts +23 -0
- package/dist/sync/session-events.d.ts.map +1 -0
- package/dist/sync/session-events.js +35 -0
- package/dist/sync/session-events.js.map +1 -0
- package/dist/types.d.ts +125 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +21 -0
- package/dist/types.js.map +1 -1
- package/dist/utils/cache-key.d.ts +73 -0
- package/dist/utils/cache-key.d.ts.map +1 -0
- package/dist/utils/cache-key.js +62 -0
- package/dist/utils/cache-key.js.map +1 -0
- package/dist/utils/error-detection.d.ts +20 -0
- package/dist/utils/error-detection.d.ts.map +1 -0
- package/dist/utils/error-detection.js +28 -0
- package/dist/utils/error-detection.js.map +1 -0
- package/dist/utils/fingerprint.d.ts +9 -0
- package/dist/utils/fingerprint.d.ts.map +1 -0
- package/dist/utils/fingerprint.js +27 -0
- package/dist/utils/fingerprint.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/lazy-manager.d.ts +26 -0
- package/dist/utils/lazy-manager.d.ts.map +1 -0
- package/dist/utils/lazy-manager.js +50 -0
- package/dist/utils/lazy-manager.js.map +1 -0
- package/dist/utils/provider-key.d.ts +22 -0
- package/dist/utils/provider-key.d.ts.map +1 -0
- package/dist/utils/provider-key.js +31 -0
- package/dist/utils/provider-key.js.map +1 -0
- package/dist/utils/status-format.d.ts +44 -0
- package/dist/utils/status-format.d.ts.map +1 -0
- package/dist/utils/status-format.js +39 -0
- package/dist/utils/status-format.js.map +1 -0
- package/package.json +22 -12
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enhanced provider key computation with header fingerprinting
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Compute a unique embedding provider key for cache isolation
|
|
6
|
+
* Includes header fingerprinting for complete configuration tracking
|
|
7
|
+
*/
|
|
8
|
+
export declare function computeEmbeddingProviderKey(params: {
|
|
9
|
+
providerId: string;
|
|
10
|
+
providerModel: string;
|
|
11
|
+
openAi?: {
|
|
12
|
+
baseUrl: string;
|
|
13
|
+
model: string;
|
|
14
|
+
headers: Record<string, string>;
|
|
15
|
+
};
|
|
16
|
+
gemini?: {
|
|
17
|
+
baseUrl: string;
|
|
18
|
+
model: string;
|
|
19
|
+
headers: Record<string, string>;
|
|
20
|
+
};
|
|
21
|
+
}): string;
|
|
22
|
+
//# sourceMappingURL=provider-key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-key.d.ts","sourceRoot":"","sources":["../../src/utils/provider-key.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;IAC7E,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;CAC9E,GAAG,MAAM,CAwBT"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enhanced provider key computation with header fingerprinting
|
|
3
|
+
*/
|
|
4
|
+
import { hashText } from "./hash.js";
|
|
5
|
+
import { fingerprintHeaderNames } from "./fingerprint.js";
|
|
6
|
+
/**
|
|
7
|
+
* Compute a unique embedding provider key for cache isolation
|
|
8
|
+
* Includes header fingerprinting for complete configuration tracking
|
|
9
|
+
*/
|
|
10
|
+
export function computeEmbeddingProviderKey(params) {
|
|
11
|
+
if (params.openAi) {
|
|
12
|
+
const headerNames = fingerprintHeaderNames(params.openAi.headers);
|
|
13
|
+
return hashText(JSON.stringify({
|
|
14
|
+
provider: "openai",
|
|
15
|
+
baseUrl: params.openAi.baseUrl,
|
|
16
|
+
model: params.openAi.model,
|
|
17
|
+
headerNames,
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
if (params.gemini) {
|
|
21
|
+
const headerNames = fingerprintHeaderNames(params.gemini.headers);
|
|
22
|
+
return hashText(JSON.stringify({
|
|
23
|
+
provider: "gemini",
|
|
24
|
+
baseUrl: params.gemini.baseUrl,
|
|
25
|
+
model: params.gemini.model,
|
|
26
|
+
headerNames,
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
return hashText(JSON.stringify({ provider: params.providerId, model: params.providerModel }));
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=provider-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-key.js","sourceRoot":"","sources":["../../src/utils/provider-key.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAK3C;IACC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,WAAW,GAAG,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClE,OAAO,QAAQ,CACb,IAAI,CAAC,SAAS,CAAC;YACb,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;YAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;YAC1B,WAAW;SACZ,CAAC,CACH,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,WAAW,GAAG,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClE,OAAO,QAAQ,CACb,IAAI,CAAC,SAAS,CAAC;YACb,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;YAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;YAC1B,WAAW;SACZ,CAAC,CACH,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AAChG,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Status formatting utilities for memory system state display
|
|
3
|
+
*/
|
|
4
|
+
export type Tone = "ok" | "warn" | "muted";
|
|
5
|
+
/**
|
|
6
|
+
* Resolve the display state for vector search capability
|
|
7
|
+
*/
|
|
8
|
+
export declare function resolveMemoryVectorState(vector: {
|
|
9
|
+
enabled: boolean;
|
|
10
|
+
available?: boolean;
|
|
11
|
+
}): {
|
|
12
|
+
tone: Tone;
|
|
13
|
+
state: "ready" | "unavailable" | "disabled" | "unknown";
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Resolve the display state for FTS (full-text search) capability
|
|
17
|
+
*/
|
|
18
|
+
export declare function resolveMemoryFtsState(fts: {
|
|
19
|
+
enabled: boolean;
|
|
20
|
+
available: boolean;
|
|
21
|
+
}): {
|
|
22
|
+
tone: Tone;
|
|
23
|
+
state: "ready" | "unavailable" | "disabled";
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Resolve a summary string for cache status
|
|
27
|
+
*/
|
|
28
|
+
export declare function resolveMemoryCacheSummary(cache: {
|
|
29
|
+
enabled: boolean;
|
|
30
|
+
entries?: number;
|
|
31
|
+
}): {
|
|
32
|
+
tone: Tone;
|
|
33
|
+
text: string;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Resolve the display state for cache capability
|
|
37
|
+
*/
|
|
38
|
+
export declare function resolveMemoryCacheState(cache: {
|
|
39
|
+
enabled: boolean;
|
|
40
|
+
}): {
|
|
41
|
+
tone: Tone;
|
|
42
|
+
state: "enabled" | "disabled";
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=status-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-format.d.ts","sourceRoot":"","sources":["../../src/utils/status-format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3C;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG;IAC3F,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;CACzD,CAKA;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GAAG;IACpF,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,UAAU,CAAC;CAC7C,CAGA;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IACxF,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd,CAIA;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG;IACpE,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,SAAS,GAAG,UAAU,CAAC;CAC/B,CAEA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Status formatting utilities for memory system state display
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Resolve the display state for vector search capability
|
|
6
|
+
*/
|
|
7
|
+
export function resolveMemoryVectorState(vector) {
|
|
8
|
+
if (vector.enabled === false)
|
|
9
|
+
return { tone: "muted", state: "disabled" };
|
|
10
|
+
if (vector.available === true)
|
|
11
|
+
return { tone: "ok", state: "ready" };
|
|
12
|
+
if (vector.available === false)
|
|
13
|
+
return { tone: "warn", state: "unavailable" };
|
|
14
|
+
return { tone: "muted", state: "unknown" };
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Resolve the display state for FTS (full-text search) capability
|
|
18
|
+
*/
|
|
19
|
+
export function resolveMemoryFtsState(fts) {
|
|
20
|
+
if (fts.enabled === false)
|
|
21
|
+
return { tone: "muted", state: "disabled" };
|
|
22
|
+
return fts.available ? { tone: "ok", state: "ready" } : { tone: "warn", state: "unavailable" };
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Resolve a summary string for cache status
|
|
26
|
+
*/
|
|
27
|
+
export function resolveMemoryCacheSummary(cache) {
|
|
28
|
+
if (!cache.enabled)
|
|
29
|
+
return { tone: "muted", text: "cache off" };
|
|
30
|
+
const suffix = typeof cache.entries === "number" ? ` (${cache.entries})` : "";
|
|
31
|
+
return { tone: "ok", text: `cache on${suffix}` };
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Resolve the display state for cache capability
|
|
35
|
+
*/
|
|
36
|
+
export function resolveMemoryCacheState(cache) {
|
|
37
|
+
return cache.enabled ? { tone: "ok", state: "enabled" } : { tone: "muted", state: "disabled" };
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=status-format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-format.js","sourceRoot":"","sources":["../../src/utils/status-format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAiD;IAIxF,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAC1E,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACrE,IAAI,MAAM,CAAC,SAAS,KAAK,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAC9E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAA6C;IAIjF,IAAI,GAAG,CAAC,OAAO,KAAK,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACvE,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AACjG,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAA6C;IAIrF,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAChE,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,MAAM,EAAE,EAAE,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAA2B;IAIjE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACjG,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xfabric/memory",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Semantic memory search for AI agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": {
|
|
8
8
|
"import": "./dist/index.js",
|
|
9
9
|
"types": "./dist/index.d.ts"
|
|
10
|
+
},
|
|
11
|
+
"./plugin": {
|
|
12
|
+
"import": "./dist/plugin/index.js",
|
|
13
|
+
"types": "./dist/plugin/index.d.ts"
|
|
10
14
|
}
|
|
11
15
|
},
|
|
12
16
|
"main": "./dist/index.js",
|
|
@@ -14,14 +18,6 @@
|
|
|
14
18
|
"files": [
|
|
15
19
|
"dist"
|
|
16
20
|
],
|
|
17
|
-
"scripts": {
|
|
18
|
-
"build": "tsc",
|
|
19
|
-
"test": "vitest run",
|
|
20
|
-
"test:watch": "vitest",
|
|
21
|
-
"test:coverage": "vitest run --coverage",
|
|
22
|
-
"clean": "rm -rf dist",
|
|
23
|
-
"prepublishOnly": "pnpm run build"
|
|
24
|
-
},
|
|
25
21
|
"engines": {
|
|
26
22
|
"node": ">=22.0.0"
|
|
27
23
|
},
|
|
@@ -31,6 +27,7 @@
|
|
|
31
27
|
"sqlite-vec": "0.1.7-alpha.2"
|
|
32
28
|
},
|
|
33
29
|
"devDependencies": {
|
|
30
|
+
"@opencode-ai/plugin": "^1.0.0",
|
|
34
31
|
"@types/better-sqlite3": "^7.6.12",
|
|
35
32
|
"@types/node": "^22.0.0",
|
|
36
33
|
"@vitest/coverage-v8": "^3.0.0",
|
|
@@ -38,11 +35,15 @@
|
|
|
38
35
|
"vitest": "^3.0.0"
|
|
39
36
|
},
|
|
40
37
|
"peerDependencies": {
|
|
41
|
-
"node-llama-cpp": "^3.15.0"
|
|
38
|
+
"node-llama-cpp": "^3.15.0",
|
|
39
|
+
"@opencode-ai/plugin": "^1.0.0"
|
|
42
40
|
},
|
|
43
41
|
"peerDependenciesMeta": {
|
|
44
42
|
"node-llama-cpp": {
|
|
45
43
|
"optional": true
|
|
44
|
+
},
|
|
45
|
+
"@opencode-ai/plugin": {
|
|
46
|
+
"optional": true
|
|
46
47
|
}
|
|
47
48
|
},
|
|
48
49
|
"keywords": [
|
|
@@ -53,7 +54,9 @@
|
|
|
53
54
|
"agents",
|
|
54
55
|
"llm",
|
|
55
56
|
"vector-search",
|
|
56
|
-
"sqlite"
|
|
57
|
+
"sqlite",
|
|
58
|
+
"opencode",
|
|
59
|
+
"plugin"
|
|
57
60
|
],
|
|
58
61
|
"license": "MIT",
|
|
59
62
|
"repository": {
|
|
@@ -63,5 +66,12 @@
|
|
|
63
66
|
"homepage": "https://github.com/xfabric/memory#readme",
|
|
64
67
|
"bugs": {
|
|
65
68
|
"url": "https://github.com/xfabric/memory/issues"
|
|
69
|
+
},
|
|
70
|
+
"scripts": {
|
|
71
|
+
"build": "tsc",
|
|
72
|
+
"test": "vitest run",
|
|
73
|
+
"test:watch": "vitest",
|
|
74
|
+
"test:coverage": "vitest run --coverage",
|
|
75
|
+
"clean": "rm -rf dist"
|
|
66
76
|
}
|
|
67
|
-
}
|
|
77
|
+
}
|