multimodemind 0.1.3 → 0.2.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.
- package/dist/cli/config.d.ts +3 -0
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +11 -3
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/dashboard.d.ts.map +1 -1
- package/dist/cli/dashboard.js +71 -30
- package/dist/cli/dashboard.js.map +1 -1
- package/dist/index.js +30 -9
- package/dist/index.js.map +1 -1
- package/dist/router/index.d.ts +3 -1
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/index.js +7 -1
- package/dist/router/index.js.map +1 -1
- package/dist/stores/audit.d.ts +41 -0
- package/dist/stores/audit.d.ts.map +1 -0
- package/dist/stores/audit.js +99 -0
- package/dist/stores/audit.js.map +1 -0
- package/dist/stores/base.d.ts +3 -1
- package/dist/stores/base.d.ts.map +1 -1
- package/dist/stores/files.d.ts +3 -2
- package/dist/stores/files.d.ts.map +1 -1
- package/dist/stores/files.js +6 -2
- package/dist/stores/files.js.map +1 -1
- package/dist/stores/index.d.ts +1 -0
- package/dist/stores/index.d.ts.map +1 -1
- package/dist/stores/index.js +1 -0
- package/dist/stores/index.js.map +1 -1
- package/dist/stores/leveldb.d.ts +3 -2
- package/dist/stores/leveldb.d.ts.map +1 -1
- package/dist/stores/leveldb.js +7 -2
- package/dist/stores/leveldb.js.map +1 -1
- package/dist/stores/markdown.d.ts +5 -2
- package/dist/stores/markdown.d.ts.map +1 -1
- package/dist/stores/markdown.js +26 -4
- package/dist/stores/markdown.js.map +1 -1
- package/dist/stores/sqlite.d.ts +3 -2
- package/dist/stores/sqlite.d.ts.map +1 -1
- package/dist/stores/sqlite.js +6 -2
- package/dist/stores/sqlite.js.map +1 -1
- package/dist/stores/utils.d.ts +6 -0
- package/dist/stores/utils.d.ts.map +1 -1
- package/dist/stores/utils.js +9 -0
- package/dist/stores/utils.js.map +1 -1
- package/dist/stores/vector.d.ts +3 -2
- package/dist/stores/vector.d.ts.map +1 -1
- package/dist/stores/vector.js +6 -2
- package/dist/stores/vector.js.map +1 -1
- package/dist/tools/sources.d.ts.map +1 -1
- package/dist/tools/sources.js +4 -1
- package/dist/tools/sources.js.map +1 -1
- package/dist/tools/store.d.ts +2 -1
- package/dist/tools/store.d.ts.map +1 -1
- package/dist/tools/store.js +13 -1
- package/dist/tools/store.js.map +1 -1
- package/dist/types.d.ts +15 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +14 -1
- package/dist/types.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Audit store — an append-only log of every query, read, and write.
|
|
3
|
+
*
|
|
4
|
+
* This is the accountability layer: nothing the agent does with your data goes
|
|
5
|
+
* unrecorded. It is system-managed and read-only to the agent — the agent can
|
|
6
|
+
* never write to it or retrieve from it. You own the log.
|
|
7
|
+
*
|
|
8
|
+
* Copyright Old Cart Technology LLC — MIT License
|
|
9
|
+
*/
|
|
10
|
+
import { appendFileSync, existsSync, mkdirSync, statSync, readFileSync } from 'fs';
|
|
11
|
+
import { dirname, join } from 'path';
|
|
12
|
+
import { homedir } from 'os';
|
|
13
|
+
import { nowIso } from './utils.js';
|
|
14
|
+
const DEFAULT_PATH = join(homedir(), '.mmind', 'audit.log');
|
|
15
|
+
export class AuditStore {
|
|
16
|
+
type = 'audit';
|
|
17
|
+
name;
|
|
18
|
+
// Append-only and system-managed. From the agent's perspective it is read-only;
|
|
19
|
+
// in practice the agent can neither write to nor retrieve from it.
|
|
20
|
+
access = 'read';
|
|
21
|
+
logPath;
|
|
22
|
+
constructor(logPath = DEFAULT_PATH) {
|
|
23
|
+
this.logPath = logPath;
|
|
24
|
+
this.name = `audit:${logPath}`;
|
|
25
|
+
}
|
|
26
|
+
append(ev) {
|
|
27
|
+
try {
|
|
28
|
+
mkdirSync(dirname(this.logPath), { recursive: true });
|
|
29
|
+
appendFileSync(this.logPath, JSON.stringify(ev) + '\n', 'utf-8');
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
// Auditing must never break the primary operation it is recording.
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
logQuery(query, stores, count) {
|
|
36
|
+
this.append({ ts: nowIso(), op: 'query', query: clip(query), count, store: undefined });
|
|
37
|
+
void stores; // per-store detail is captured by logRead()
|
|
38
|
+
}
|
|
39
|
+
logRead(store, query, count) {
|
|
40
|
+
this.append({ ts: nowIso(), op: 'read', store, query: clip(query), count });
|
|
41
|
+
}
|
|
42
|
+
logWrite(store, id, preview) {
|
|
43
|
+
this.append({ ts: nowIso(), op: 'write', store, id, preview: clip(preview) });
|
|
44
|
+
}
|
|
45
|
+
/** Most recent N events, oldest→newest. For the dashboard / `audit` inspection. */
|
|
46
|
+
recent(n = 20) {
|
|
47
|
+
try {
|
|
48
|
+
const lines = readFileSync(this.logPath, 'utf-8').trim().split('\n').filter(Boolean);
|
|
49
|
+
return lines.slice(-n).map((l) => JSON.parse(l));
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return [];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// ─── MemoryStore interface — audit is neither retrievable nor agent-writable ──
|
|
56
|
+
async isAvailable() {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
async search() {
|
|
60
|
+
return []; // the audit log is not a memory source the agent can search
|
|
61
|
+
}
|
|
62
|
+
async store() {
|
|
63
|
+
throw new Error('The audit log is append-only and system-managed; it cannot be written to directly.');
|
|
64
|
+
}
|
|
65
|
+
async get() {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
async sources() {
|
|
69
|
+
let entryCount = 0;
|
|
70
|
+
let sizeBytes;
|
|
71
|
+
try {
|
|
72
|
+
if (existsSync(this.logPath)) {
|
|
73
|
+
const raw = readFileSync(this.logPath, 'utf-8');
|
|
74
|
+
entryCount = raw ? raw.trimEnd().split('\n').filter(Boolean).length : 0;
|
|
75
|
+
sizeBytes = statSync(this.logPath).size;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
/* ok */
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
type: this.type,
|
|
83
|
+
name: this.name,
|
|
84
|
+
available: true,
|
|
85
|
+
access: this.access,
|
|
86
|
+
path: this.logPath,
|
|
87
|
+
entryCount,
|
|
88
|
+
sizeBytes,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
async close() {
|
|
92
|
+
// Nothing to close — appends are flushed per write.
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function clip(s) {
|
|
96
|
+
const one = s.replace(/\s+/g, ' ').trim();
|
|
97
|
+
return one.length > 120 ? one.slice(0, 117) + '…' : one;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/stores/audit.ts"],"names":[],"mappings":"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"}
|
package/dist/stores/base.d.ts
CHANGED
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
* MemoryStore — the contract every store adapter must implement.
|
|
3
3
|
* Copyright Old Cart Technology LLC — MIT License
|
|
4
4
|
*/
|
|
5
|
-
import type { MemoryEntry, RankedEntry, SourceInfo, StoreType } from '../types.js';
|
|
5
|
+
import type { AccessMode, MemoryEntry, RankedEntry, SourceInfo, StoreType } from '../types.js';
|
|
6
6
|
export interface MemoryStore {
|
|
7
7
|
readonly type: StoreType;
|
|
8
8
|
readonly name: string;
|
|
9
|
+
/** Whether the agent may write to this store ('readwrite') or only read ('read'). */
|
|
10
|
+
readonly access: AccessMode;
|
|
9
11
|
/**
|
|
10
12
|
* Returns true if the store is reachable and ready.
|
|
11
13
|
* Called at startup and by the `sources` tool.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/stores/base.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/stores/base.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE/F,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qFAAqF;IACrF,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAE5B;;;OAGG;IACH,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhC;;;;;;OAMG;IACH,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAE1B;;;OAGG;IACH,KAAK,CACH,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GACzD,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAE7C;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAE/B;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
|
package/dist/stores/files.d.ts
CHANGED
|
@@ -3,14 +3,15 @@
|
|
|
3
3
|
* Stores arbitrary content as flat files; maintains a sidecar index for fast lookup.
|
|
4
4
|
* Copyright Old Cart Technology LLC — MIT License
|
|
5
5
|
*/
|
|
6
|
-
import type { MemoryEntry, RankedEntry, SourceInfo } from '../types.js';
|
|
6
|
+
import type { AccessMode, MemoryEntry, RankedEntry, SourceInfo } from '../types.js';
|
|
7
7
|
import type { MemoryStore } from './base.js';
|
|
8
8
|
export declare class FilesStore implements MemoryStore {
|
|
9
9
|
readonly type: 'files';
|
|
10
10
|
readonly name: string;
|
|
11
11
|
private readonly filesPath;
|
|
12
12
|
private readonly indexPath;
|
|
13
|
-
|
|
13
|
+
readonly access: AccessMode;
|
|
14
|
+
constructor(filesPath: string, access?: AccessMode);
|
|
14
15
|
private readIndex;
|
|
15
16
|
private writeIndex;
|
|
16
17
|
isAvailable(): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/stores/files.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/stores/files.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAe7C,qBAAa,UAAW,YAAW,WAAW;IAC5C,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAE5B,YAAY,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,UAAwB,EAK9D;IAED,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,UAAU;IAKZ,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAOpC;IAEK,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAoCtF;IAEK,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBvF;IAEK,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAmBjD;IAEK,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,CAiBnC;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;CACF"}
|
package/dist/stores/files.js
CHANGED
|
@@ -5,15 +5,17 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { readFileSync, writeFileSync, mkdirSync, statSync, existsSync, } from 'fs';
|
|
7
7
|
import { join } from 'path';
|
|
8
|
-
import { newId, nowIso, keywordScore, cosineSimilarity } from './utils.js';
|
|
8
|
+
import { newId, nowIso, keywordScore, cosineSimilarity, assertWritable } from './utils.js';
|
|
9
9
|
const INDEX_FILENAME = '.mmind-index.json';
|
|
10
10
|
export class FilesStore {
|
|
11
11
|
type = 'files';
|
|
12
12
|
name;
|
|
13
13
|
filesPath;
|
|
14
14
|
indexPath;
|
|
15
|
-
|
|
15
|
+
access;
|
|
16
|
+
constructor(filesPath, access = 'readwrite') {
|
|
16
17
|
this.filesPath = filesPath;
|
|
18
|
+
this.access = access;
|
|
17
19
|
this.indexPath = join(filesPath, INDEX_FILENAME);
|
|
18
20
|
this.name = `files:${filesPath}`;
|
|
19
21
|
}
|
|
@@ -75,6 +77,7 @@ export class FilesStore {
|
|
|
75
77
|
return results.sort((a, b) => b.score - a.score).slice(0, limit);
|
|
76
78
|
}
|
|
77
79
|
async store(entry) {
|
|
80
|
+
assertWritable(this.type, this.access);
|
|
78
81
|
mkdirSync(this.filesPath, { recursive: true });
|
|
79
82
|
const id = newId();
|
|
80
83
|
const now = nowIso();
|
|
@@ -128,6 +131,7 @@ export class FilesStore {
|
|
|
128
131
|
type: this.type,
|
|
129
132
|
name: this.name,
|
|
130
133
|
available: true,
|
|
134
|
+
access: this.access,
|
|
131
135
|
path: this.filesPath,
|
|
132
136
|
entryCount: Object.keys(index).length,
|
|
133
137
|
sizeBytes,
|
package/dist/stores/files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/stores/files.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,YAAY,EACZ,aAAa,EACb,SAAS,EACT,QAAQ,EACR,UAAU,GACX,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,IAAI,EAAY,MAAM,MAAM,CAAC;AAItC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/stores/files.ts"],"names":[],"mappings":"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"}
|
package/dist/stores/index.d.ts
CHANGED
|
@@ -4,4 +4,5 @@ export { LevelDbStore } from './leveldb.js';
|
|
|
4
4
|
export { MarkdownStore } from './markdown.js';
|
|
5
5
|
export { FilesStore } from './files.js';
|
|
6
6
|
export { VectorStore } from './vector.js';
|
|
7
|
+
export { AuditStore, type AuditEvent, type AuditOp } from './audit.js';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stores/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stores/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/stores/index.js
CHANGED
package/dist/stores/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stores/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stores/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAiC,MAAM,YAAY,CAAC"}
|
package/dist/stores/leveldb.d.ts
CHANGED
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
* LevelDB store adapter — fast key-value memory for agent session state.
|
|
3
3
|
* Copyright Old Cart Technology LLC — MIT License
|
|
4
4
|
*/
|
|
5
|
-
import type { MemoryEntry, RankedEntry, SourceInfo } from '../types.js';
|
|
5
|
+
import type { AccessMode, MemoryEntry, RankedEntry, SourceInfo } from '../types.js';
|
|
6
6
|
import type { MemoryStore } from './base.js';
|
|
7
7
|
export declare class LevelDbStore implements MemoryStore {
|
|
8
8
|
readonly type: 'leveldb';
|
|
9
9
|
readonly name: string;
|
|
10
10
|
private db;
|
|
11
11
|
private readonly dbPath;
|
|
12
|
-
|
|
12
|
+
readonly access: AccessMode;
|
|
13
|
+
constructor(dbPath?: string, access?: AccessMode);
|
|
13
14
|
private getDb;
|
|
14
15
|
isAvailable(): Promise<boolean>;
|
|
15
16
|
search(query: string, embedding: number[], limit: number): Promise<RankedEntry[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leveldb.d.ts","sourceRoot":"","sources":["../../src/stores/leveldb.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"leveldb.d.ts","sourceRoot":"","sources":["../../src/stores/leveldb.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAe7C,qBAAa,YAAa,YAAW,WAAW;IAC9C,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,EAAE,CAAsC;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAE5B,YAAY,MAAM,SAAe,EAAE,MAAM,GAAE,UAAwB,EAIlE;YAEa,KAAK;IAgBb,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAOpC;IAEK,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAoBtF;IAEK,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAQvF;IAEK,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAQjD;IAEK,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,CA+BnC;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAG3B;CACF"}
|
package/dist/stores/leveldb.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { Level } from 'level';
|
|
6
6
|
import { statSync, existsSync } from 'fs';
|
|
7
7
|
import { join } from 'path';
|
|
8
|
-
import { newId, nowIso, cosineSimilarity, keywordScore } from './utils.js';
|
|
8
|
+
import { newId, nowIso, cosineSimilarity, keywordScore, assertWritable } from './utils.js';
|
|
9
9
|
const DEFAULT_PATH = '.mmind/leveldb';
|
|
10
10
|
/**
|
|
11
11
|
* Distinguish "held by another process" from "genuinely broken".
|
|
@@ -21,8 +21,10 @@ export class LevelDbStore {
|
|
|
21
21
|
name;
|
|
22
22
|
db = null;
|
|
23
23
|
dbPath;
|
|
24
|
-
|
|
24
|
+
access;
|
|
25
|
+
constructor(dbPath = DEFAULT_PATH, access = 'readwrite') {
|
|
25
26
|
this.dbPath = dbPath;
|
|
27
|
+
this.access = access;
|
|
26
28
|
this.name = `leveldb:${dbPath}`;
|
|
27
29
|
}
|
|
28
30
|
async getDb() {
|
|
@@ -69,6 +71,7 @@ export class LevelDbStore {
|
|
|
69
71
|
return results.sort((a, b) => b.score - a.score).slice(0, limit);
|
|
70
72
|
}
|
|
71
73
|
async store(entry) {
|
|
74
|
+
assertWritable(this.type, this.access);
|
|
72
75
|
const db = await this.getDb();
|
|
73
76
|
const id = newId();
|
|
74
77
|
const now = nowIso();
|
|
@@ -101,6 +104,7 @@ export class LevelDbStore {
|
|
|
101
104
|
type: this.type,
|
|
102
105
|
name: this.name,
|
|
103
106
|
available: true,
|
|
107
|
+
access: this.access,
|
|
104
108
|
path: this.dbPath,
|
|
105
109
|
entryCount: count,
|
|
106
110
|
sizeBytes,
|
|
@@ -115,6 +119,7 @@ export class LevelDbStore {
|
|
|
115
119
|
name: this.name,
|
|
116
120
|
available: true,
|
|
117
121
|
locked: true,
|
|
122
|
+
access: this.access,
|
|
118
123
|
path: this.dbPath,
|
|
119
124
|
};
|
|
120
125
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leveldb.js","sourceRoot":"","sources":["../../src/stores/leveldb.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"leveldb.js","sourceRoot":"","sources":["../../src/stores/leveldb.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,16 @@
|
|
|
4
4
|
* Vault-agnostic — Obsidian is the reference case but any folder works.
|
|
5
5
|
* Copyright Old Cart Technology LLC — MIT License
|
|
6
6
|
*/
|
|
7
|
-
import type { MemoryEntry, RankedEntry, SourceInfo } from '../types.js';
|
|
7
|
+
import type { AccessMode, MemoryEntry, RankedEntry, SourceInfo } from '../types.js';
|
|
8
8
|
import type { MemoryStore } from './base.js';
|
|
9
9
|
export declare class MarkdownStore implements MemoryStore {
|
|
10
10
|
readonly type: 'markdown';
|
|
11
11
|
readonly name: string;
|
|
12
12
|
private readonly vaultPath;
|
|
13
|
-
|
|
13
|
+
readonly access: AccessMode;
|
|
14
|
+
constructor(vaultPath: string | null, access?: AccessMode);
|
|
15
|
+
/** True once a vault path has actually been set. */
|
|
16
|
+
private get configured();
|
|
14
17
|
isAvailable(): Promise<boolean>;
|
|
15
18
|
search(query: string, embedding: number[], limit: number): Promise<RankedEntry[]>;
|
|
16
19
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/stores/markdown.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/stores/markdown.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAG7C,qBAAa,aAAc,YAAW,WAAW;IAC/C,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAE5B,YAAY,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,GAAE,UAAmB,EAIhE;IAED,oDAAoD;IACpD,OAAO,KAAK,UAAU,GAErB;IAEK,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAQpC;IAEK,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA0CtF;IAED;;;OAGG;IACG,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBvF;IAEK,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAoBjD;IAEK,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,CAsBnC;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;CACF"}
|
package/dist/stores/markdown.js
CHANGED
|
@@ -8,16 +8,24 @@ import { readFileSync, statSync } from 'fs';
|
|
|
8
8
|
import { join, relative } from 'path';
|
|
9
9
|
import matter from 'gray-matter';
|
|
10
10
|
import fg from 'fast-glob';
|
|
11
|
-
import { keywordScore } from './utils.js';
|
|
11
|
+
import { keywordScore, assertWritable } from './utils.js';
|
|
12
12
|
export class MarkdownStore {
|
|
13
13
|
type = 'markdown';
|
|
14
14
|
name;
|
|
15
15
|
vaultPath;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
this.
|
|
16
|
+
access;
|
|
17
|
+
constructor(vaultPath, access = 'read') {
|
|
18
|
+
this.vaultPath = vaultPath ?? '';
|
|
19
|
+
this.access = access;
|
|
20
|
+
this.name = this.vaultPath ? `markdown:${this.vaultPath}` : 'markdown:(no vault)';
|
|
21
|
+
}
|
|
22
|
+
/** True once a vault path has actually been set. */
|
|
23
|
+
get configured() {
|
|
24
|
+
return this.vaultPath !== '';
|
|
19
25
|
}
|
|
20
26
|
async isAvailable() {
|
|
27
|
+
if (!this.configured)
|
|
28
|
+
return false;
|
|
21
29
|
try {
|
|
22
30
|
statSync(this.vaultPath);
|
|
23
31
|
return true;
|
|
@@ -27,6 +35,8 @@ export class MarkdownStore {
|
|
|
27
35
|
}
|
|
28
36
|
}
|
|
29
37
|
async search(query, embedding, limit) {
|
|
38
|
+
if (!this.configured)
|
|
39
|
+
return [];
|
|
30
40
|
const files = await fg('**/*.md', {
|
|
31
41
|
cwd: this.vaultPath,
|
|
32
42
|
ignore: ['.obsidian/**', '.trash/**', 'node_modules/**'],
|
|
@@ -69,6 +79,10 @@ export class MarkdownStore {
|
|
|
69
79
|
* Never modifies existing files.
|
|
70
80
|
*/
|
|
71
81
|
async store(entry) {
|
|
82
|
+
assertWritable(this.type, this.access);
|
|
83
|
+
if (!this.configured) {
|
|
84
|
+
throw new Error('Markdown store has no vault configured — set a vault path first.');
|
|
85
|
+
}
|
|
72
86
|
const { writeFileSync, mkdirSync } = await import('fs');
|
|
73
87
|
const now = new Date();
|
|
74
88
|
const slug = now.toISOString().replace(/[:.]/g, '-');
|
|
@@ -88,6 +102,8 @@ export class MarkdownStore {
|
|
|
88
102
|
return `md:${filename}`;
|
|
89
103
|
}
|
|
90
104
|
async get(id) {
|
|
105
|
+
if (!this.configured)
|
|
106
|
+
return null;
|
|
91
107
|
// id format: "md:<relPath>"
|
|
92
108
|
const relPath = id.startsWith('md:') ? id.slice(3) : id;
|
|
93
109
|
const filePath = join(this.vaultPath, relPath);
|
|
@@ -109,6 +125,11 @@ export class MarkdownStore {
|
|
|
109
125
|
}
|
|
110
126
|
}
|
|
111
127
|
async sources() {
|
|
128
|
+
if (!this.configured) {
|
|
129
|
+
// First-class but not yet pointed at a vault — a neutral, actionable state,
|
|
130
|
+
// not a failure. This is the store that embodies "wrap what you already have."
|
|
131
|
+
return { type: this.type, name: this.name, available: false, unconfigured: true, access: this.access };
|
|
132
|
+
}
|
|
112
133
|
try {
|
|
113
134
|
const files = await fg('**/*.md', {
|
|
114
135
|
cwd: this.vaultPath,
|
|
@@ -118,6 +139,7 @@ export class MarkdownStore {
|
|
|
118
139
|
type: this.type,
|
|
119
140
|
name: this.name,
|
|
120
141
|
available: true,
|
|
142
|
+
access: this.access,
|
|
121
143
|
path: this.vaultPath,
|
|
122
144
|
entryCount: files.length,
|
|
123
145
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/stores/markdown.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAe,MAAM,IAAI,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,WAAW,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAoB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/stores/markdown.ts"],"names":[],"mappings":"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"}
|
package/dist/stores/sqlite.d.ts
CHANGED
|
@@ -3,14 +3,15 @@
|
|
|
3
3
|
* Uses better-sqlite3 (synchronous) for simplicity and reliability.
|
|
4
4
|
* Copyright Old Cart Technology LLC — MIT License
|
|
5
5
|
*/
|
|
6
|
-
import type { MemoryEntry, RankedEntry, SourceInfo } from '../types.js';
|
|
6
|
+
import type { AccessMode, MemoryEntry, RankedEntry, SourceInfo } from '../types.js';
|
|
7
7
|
import type { MemoryStore } from './base.js';
|
|
8
8
|
export declare class SqliteStore implements MemoryStore {
|
|
9
9
|
readonly type: 'sqlite';
|
|
10
10
|
readonly name: string;
|
|
11
11
|
private db;
|
|
12
12
|
private readonly dbPath;
|
|
13
|
-
|
|
13
|
+
readonly access: AccessMode;
|
|
14
|
+
constructor(dbPath?: string, access?: AccessMode);
|
|
14
15
|
private getDb;
|
|
15
16
|
isAvailable(): Promise<boolean>;
|
|
16
17
|
search(query: string, embedding: number[], limit: number): Promise<RankedEntry[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/stores/sqlite.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/stores/sqlite.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAkB7C,qBAAa,WAAY,YAAW,WAAW;IAC7C,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,EAAE,CAAmB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAE5B,YAAY,MAAM,SAAe,EAAE,MAAM,GAAE,UAAwB,EAIlE;IAED,OAAO,CAAC,KAAK;IAUP,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAOpC;IAEK,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAqBtF;IAEK,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBvF;IAEK,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAIjD;IAEK,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,CAkBnC;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAG3B;CACF"}
|
package/dist/stores/sqlite.js
CHANGED
|
@@ -7,7 +7,7 @@ import Database from 'better-sqlite3';
|
|
|
7
7
|
import { join } from 'path';
|
|
8
8
|
import { statSync, mkdirSync } from 'fs';
|
|
9
9
|
import { dirname } from 'path';
|
|
10
|
-
import { newId, nowIso, cosineSimilarity, keywordScore } from './utils.js';
|
|
10
|
+
import { newId, nowIso, cosineSimilarity, keywordScore, assertWritable } from './utils.js';
|
|
11
11
|
const DEFAULT_PATH = join(process.cwd(), '.mmind', 'memory.db');
|
|
12
12
|
const SCHEMA = `
|
|
13
13
|
CREATE TABLE IF NOT EXISTS entries (
|
|
@@ -26,8 +26,10 @@ export class SqliteStore {
|
|
|
26
26
|
name;
|
|
27
27
|
db = null;
|
|
28
28
|
dbPath;
|
|
29
|
-
|
|
29
|
+
access;
|
|
30
|
+
constructor(dbPath = DEFAULT_PATH, access = 'readwrite') {
|
|
30
31
|
this.dbPath = dbPath;
|
|
32
|
+
this.access = access;
|
|
31
33
|
this.name = `sqlite:${dbPath}`;
|
|
32
34
|
}
|
|
33
35
|
getDb() {
|
|
@@ -70,6 +72,7 @@ export class SqliteStore {
|
|
|
70
72
|
.slice(0, limit);
|
|
71
73
|
}
|
|
72
74
|
async store(entry) {
|
|
75
|
+
assertWritable(this.type, this.access);
|
|
73
76
|
const id = newId();
|
|
74
77
|
const now = nowIso();
|
|
75
78
|
const db = this.getDb();
|
|
@@ -97,6 +100,7 @@ export class SqliteStore {
|
|
|
97
100
|
type: this.type,
|
|
98
101
|
name: this.name,
|
|
99
102
|
available: true,
|
|
103
|
+
access: this.access,
|
|
100
104
|
path: this.dbPath,
|
|
101
105
|
entryCount: count,
|
|
102
106
|
sizeBytes,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/stores/sqlite.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,QAAiC,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/stores/sqlite.ts"],"names":[],"mappings":"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"}
|
package/dist/stores/utils.d.ts
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
* Shared store utilities.
|
|
3
3
|
* Copyright Old Cart Technology LLC — MIT License
|
|
4
4
|
*/
|
|
5
|
+
import type { AccessMode, StoreType } from '../types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Throw a clear, consistent error when a write is attempted on a read-only store.
|
|
8
|
+
* Call at the top of every store()/mutating method.
|
|
9
|
+
*/
|
|
10
|
+
export declare function assertWritable(type: StoreType, access: AccessMode): void;
|
|
5
11
|
export declare function newId(): string;
|
|
6
12
|
export declare function nowIso(): string;
|
|
7
13
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/stores/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/stores/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAMxE;AAED,wBAAgB,KAAK,IAAI,MAAM,CAE9B;AAED,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAUjE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMnE"}
|
package/dist/stores/utils.js
CHANGED
|
@@ -3,6 +3,15 @@
|
|
|
3
3
|
* Copyright Old Cart Technology LLC — MIT License
|
|
4
4
|
*/
|
|
5
5
|
import { randomUUID } from 'crypto';
|
|
6
|
+
/**
|
|
7
|
+
* Throw a clear, consistent error when a write is attempted on a read-only store.
|
|
8
|
+
* Call at the top of every store()/mutating method.
|
|
9
|
+
*/
|
|
10
|
+
export function assertWritable(type, access) {
|
|
11
|
+
if (access === 'read') {
|
|
12
|
+
throw new Error(`The ${type} store is read-only. Enable read/write for it in the dashboard to allow the agent to store here.`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
6
15
|
export function newId() {
|
|
7
16
|
return randomUUID();
|
|
8
17
|
}
|
package/dist/stores/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/stores/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/stores/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGpC;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAe,EAAE,MAAkB;IAChE,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,OAAO,IAAI,kGAAkG,CAC9G,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,KAAK;IACnB,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,MAAM;IACpB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAW,EAAE,CAAW;IACvD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,CAAC,CAAC;IACxE,IAAI,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QACrB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QACtB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;IACxB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,KAAa;IACzD,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5D,OAAO,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;AAC9B,CAAC"}
|
package/dist/stores/vector.d.ts
CHANGED
|
@@ -7,14 +7,15 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Copyright Old Cart Technology LLC — MIT License
|
|
9
9
|
*/
|
|
10
|
-
import type { MemoryEntry, RankedEntry, SourceInfo } from '../types.js';
|
|
10
|
+
import type { AccessMode, MemoryEntry, RankedEntry, SourceInfo } from '../types.js';
|
|
11
11
|
import type { MemoryStore } from './base.js';
|
|
12
12
|
export declare class VectorStore implements MemoryStore {
|
|
13
13
|
readonly type: 'vector';
|
|
14
14
|
readonly name: string;
|
|
15
15
|
private index;
|
|
16
16
|
private readonly indexPath;
|
|
17
|
-
|
|
17
|
+
readonly access: AccessMode;
|
|
18
|
+
constructor(indexPath?: string, access?: AccessMode);
|
|
18
19
|
private getIndex;
|
|
19
20
|
isAvailable(): Promise<boolean>;
|
|
20
21
|
search(query: string, embedding: number[], limit: number): Promise<RankedEntry[]>;
|