multimodemind 0.2.2 → 0.2.4

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.
@@ -7,5 +7,17 @@ export type { EmbeddingProvider } from './base.js';
7
7
  export { OpenAIEmbeddingProvider } from './openai.js';
8
8
  export { LocalEmbeddingProvider } from './local.js';
9
9
  import type { EmbeddingProvider } from './base.js';
10
+ /**
11
+ * Keyword-only mode — no embeddings at all. Returns empty vectors so the router
12
+ * and stores fall back to keyword scoring. Useful for privacy, zero API cost,
13
+ * fully offline operation, and fast deterministic tests (no model download).
14
+ * Enabled with MMIND_EMBEDDINGS=none.
15
+ */
16
+ export declare class NullEmbeddingProvider implements EmbeddingProvider {
17
+ readonly name = "none";
18
+ readonly dimensions = 0;
19
+ embed(): Promise<number[]>;
20
+ embedBatch(texts: string[]): Promise<number[][]>;
21
+ }
10
22
  export declare function createEmbeddingProvider(apiKey?: string): EmbeddingProvider;
11
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/embeddings/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAInD,wBAAgB,uBAAuB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAS1E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/embeddings/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAInD;;;;;GAKG;AACH,qBAAa,qBAAsB,YAAW,iBAAiB;IAC7D,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,UAAU,KAAK;IAClB,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAE/B;IACK,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAErD;CACF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAa1E"}
@@ -7,12 +7,32 @@ export { OpenAIEmbeddingProvider } from './openai.js';
7
7
  export { LocalEmbeddingProvider } from './local.js';
8
8
  import { OpenAIEmbeddingProvider } from './openai.js';
9
9
  import { LocalEmbeddingProvider } from './local.js';
10
+ /**
11
+ * Keyword-only mode — no embeddings at all. Returns empty vectors so the router
12
+ * and stores fall back to keyword scoring. Useful for privacy, zero API cost,
13
+ * fully offline operation, and fast deterministic tests (no model download).
14
+ * Enabled with MMIND_EMBEDDINGS=none.
15
+ */
16
+ export class NullEmbeddingProvider {
17
+ name = 'none';
18
+ dimensions = 0;
19
+ async embed() {
20
+ return [];
21
+ }
22
+ async embedBatch(texts) {
23
+ return texts.map(() => []);
24
+ }
25
+ }
10
26
  export function createEmbeddingProvider(apiKey) {
27
+ if ((process.env['MMIND_EMBEDDINGS'] ?? '').toLowerCase() === 'none') {
28
+ console.error('[mmind] MMIND_EMBEDDINGS=none — keyword-only mode (no embeddings)');
29
+ return new NullEmbeddingProvider();
30
+ }
11
31
  const key = apiKey ?? process.env['OPENAI_API_KEY'];
12
32
  if (key) {
13
33
  return new OpenAIEmbeddingProvider(key);
14
34
  }
15
- console.warn('[mmind] OPENAI_API_KEY not set — using local embedding model (first run downloads ~23MB)');
35
+ console.error('[mmind] OPENAI_API_KEY not set — using local embedding model (first run downloads ~23MB)');
16
36
  return new LocalEmbeddingProvider();
17
37
  }
18
38
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embeddings/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,UAAU,uBAAuB,CAAC,MAAe;IACrD,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACpD,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,IAAI,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,CAAC,IAAI,CACV,0FAA0F,CAC3F,CAAC;IACF,OAAO,IAAI,sBAAsB,EAAE,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embeddings/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,OAAO,qBAAqB;IACvB,IAAI,GAAG,MAAM,CAAC;IACd,UAAU,GAAG,CAAC,CAAC;IACxB,KAAK,CAAC,KAAK;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,KAAe;QAC9B,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAe;IACrD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;QACrE,OAAO,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACnF,OAAO,IAAI,qBAAqB,EAAE,CAAC;IACrC,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACpD,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,IAAI,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,CAAC,KAAK,CACX,0FAA0F,CAC3F,CAAC;IACF,OAAO,IAAI,sBAAsB,EAAE,CAAC;AACtC,CAAC"}
package/dist/index.js CHANGED
@@ -35,19 +35,27 @@ function pkgVersion() {
35
35
  }
36
36
  }
37
37
  /**
38
- * Load per-store access modes from the dashboard config (~/.mmind/config.json)
39
- * so read/write permissions set in the dashboard actually govern the running
40
- * agent. Falls back to conservative defaults when no config exists.
38
+ * Load per-store access modes. Precedence (lowest highest):
39
+ * built-in defaults → ~/.mmind/config.json → MMIND_ACCESS_<STORE> env vars
40
+ * Env overrides let an MCP client config (or a deterministic test) pin
41
+ * permissions regardless of what the dashboard has saved.
41
42
  */
42
43
  function loadAccess() {
44
+ const map = { ...DEFAULT_ACCESS };
43
45
  try {
44
46
  const p = join(HOME_MMIND, 'config.json');
45
47
  const cfg = JSON.parse(readFileSync(p, 'utf-8'));
46
- return { ...DEFAULT_ACCESS, ...(cfg.access ?? {}) };
48
+ Object.assign(map, cfg.access ?? {});
47
49
  }
48
50
  catch {
49
- return { ...DEFAULT_ACCESS };
51
+ /* no config — keep defaults */
50
52
  }
53
+ for (const st of Object.keys(map)) {
54
+ const v = process.env[`MMIND_ACCESS_${st.toUpperCase()}`];
55
+ if (v === 'read' || v === 'readwrite')
56
+ map[st] = v;
57
+ }
58
+ return map;
51
59
  }
52
60
  function loadConfig() {
53
61
  // Vault path may be passed as the first positional argument, e.g.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,UAAU,EACV,WAAW,EACX,UAAU,GACX,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,cAAc,EAA6D,MAAM,YAAY,CAAC;AAEvG,iFAAiF;AAEjF,2EAA2E;AAC3E,0EAA0E;AAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AAE7C,wEAAwE;AACxE,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,iBAAiB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACxD,OAAQ,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAA0B,CAAC,OAAO,IAAI,OAAO,CAAC;IAC7F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAwD,CAAC;QACxG,OAAO,EAAE,GAAG,cAAc,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,SAAS,UAAU;IACjB,kEAAkE;IAClE,2BAA2B;IAC3B,sEAAsE;IACtE,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAExC,OAAO;QACL,SAAS,EAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,eAAe;QAClE,SAAS,EAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAS,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;QACjF,UAAU,EAAM,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAQ,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC;QACrF,WAAW,EAAK,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAO,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;QACnF,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAM,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC;QACvF,YAAY,EAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAC7C,aAAa,EAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,oDAAoD;IACpD,MAAM,MAAM,GAAkB;QAC5B,IAAI,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;QACjD,IAAI,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC;QACpD,IAAI,UAAU,CAAC,MAAM,CAAC,SAAU,EAAE,MAAM,CAAC,KAAK,CAAC;QAC/C,IAAI,WAAW,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC;KACvD,CAAC;IAEF,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,iEAAiE;IACjE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QACzB,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAClF,OAAO,CAAC,IAAI,CAAC,yCAAyC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,uBAAuB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAE9D,gFAAgF;IAChF,yEAAyE;IACzE,iFAAiF;IACjF,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACnF,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;IACxC,OAAO,CAAC,KAAK,CAAC,sBAAsB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAElD,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAE3D,+EAA+E;IAE/E,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,UAAU,EAAE;KACtB,CAAC,CAAC;IAEH,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACnD,mEAAmE;IACnE,mBAAmB,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAEhD,+EAA+E;IAE/E,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAEnE,oBAAoB;IACpB,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;IACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,UAAU,EACV,WAAW,EACX,UAAU,GACX,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,cAAc,EAA6D,MAAM,YAAY,CAAC;AAEvG,iFAAiF;AAEjF,2EAA2E;AAC3E,0EAA0E;AAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AAE7C,wEAAwE;AACxE,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,iBAAiB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACxD,OAAQ,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAA0B,CAAC,OAAO,IAAI,OAAO,CAAC;IAC7F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,UAAU;IACjB,MAAM,GAAG,GAAkC,EAAE,GAAG,cAAc,EAAE,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAwD,CAAC;QACxG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,+BAA+B;IACjC,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAgB,EAAE,CAAC;QACjD,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,WAAW;YAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,UAAU;IACjB,kEAAkE;IAClE,2BAA2B;IAC3B,sEAAsE;IACtE,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAExC,OAAO;QACL,SAAS,EAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,eAAe;QAClE,SAAS,EAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAS,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;QACjF,UAAU,EAAM,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAQ,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC;QACrF,WAAW,EAAK,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAO,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;QACnF,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAM,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC;QACvF,YAAY,EAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAC7C,aAAa,EAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,oDAAoD;IACpD,MAAM,MAAM,GAAkB;QAC5B,IAAI,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;QACjD,IAAI,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC;QACpD,IAAI,UAAU,CAAC,MAAM,CAAC,SAAU,EAAE,MAAM,CAAC,KAAK,CAAC;QAC/C,IAAI,WAAW,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC;KACvD,CAAC;IAEF,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,iEAAiE;IACjE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QACzB,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAClF,OAAO,CAAC,IAAI,CAAC,yCAAyC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,uBAAuB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAE9D,gFAAgF;IAChF,yEAAyE;IACzE,iFAAiF;IACjF,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACnF,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;IACxC,OAAO,CAAC,KAAK,CAAC,sBAAsB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAElD,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAE3D,+EAA+E;IAE/E,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,UAAU,EAAE;KACtB,CAAC,CAAC;IAEH,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACnD,mEAAmE;IACnE,mBAAmB,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAEhD,+EAA+E;IAE/E,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAEnE,oBAAoB;IACpB,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;IACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "multimodemind",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "Multi-store memory layer for AI agents, exposed over MCP",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -25,7 +25,8 @@
25
25
  "lint": "tsc --noEmit",
26
26
  "dashboard": "tsx src/cli/dashboard.ts",
27
27
  "test:mcp": "npm run build && node tests/mcp-smoke.mjs",
28
- "prepublishOnly": "npm run build"
28
+ "prepublishOnly": "npm run build",
29
+ "test:audit": "npm run build && node tests/audit-selftest.mjs"
29
30
  },
30
31
  "keywords": [
31
32
  "mcp",