@remnic/core 9.3.657 → 9.3.658

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/access-cli.js +12 -12
  2. package/dist/access-http.js +6 -6
  3. package/dist/access-mcp.js +5 -5
  4. package/dist/access-service.js +4 -4
  5. package/dist/briefing.d.ts +1 -1
  6. package/dist/briefing.js +2 -2
  7. package/dist/causal-consolidation.js +3 -3
  8. package/dist/{chunk-YEZHZCUO.js → chunk-2VCTTEJM.js} +3 -3
  9. package/dist/{chunk-DR67OK4E.js → chunk-3R6OP33G.js} +3 -3
  10. package/dist/{chunk-JSVFEHLL.js → chunk-46RXRASB.js} +2 -2
  11. package/dist/{chunk-NXCK7DO7.js → chunk-4PLOQDBB.js} +54 -18
  12. package/dist/chunk-4PLOQDBB.js.map +1 -0
  13. package/dist/{chunk-54XF2FY7.js → chunk-5PFIMBJJ.js} +12 -12
  14. package/dist/{chunk-4UL7VPTD.js → chunk-6M4LYWA2.js} +4 -4
  15. package/dist/{chunk-DIBWFCLA.js → chunk-7KSPKZIQ.js} +3 -3
  16. package/dist/{chunk-RDW5G6DO.js → chunk-7VWDC7AD.js} +10 -11
  17. package/dist/chunk-7VWDC7AD.js.map +1 -0
  18. package/dist/{chunk-SWDHVH2P.js → chunk-BKRIAXTU.js} +2 -2
  19. package/dist/{chunk-WWMHAMAY.js → chunk-BNUAOLDK.js} +2 -2
  20. package/dist/{chunk-GCYFUTUC.js → chunk-FIS5RT6K.js} +2 -2
  21. package/dist/{chunk-IOZ5WBWD.js → chunk-G2VVBWFU.js} +7 -5
  22. package/dist/chunk-G2VVBWFU.js.map +1 -0
  23. package/dist/{chunk-GSHW5VVD.js → chunk-GGL7R2L2.js} +4 -4
  24. package/dist/{chunk-WIKMCJUR.js → chunk-JI3LQFJH.js} +2 -2
  25. package/dist/{chunk-Z6UDTNY6.js → chunk-KI6QM5AV.js} +6 -6
  26. package/dist/chunk-KI6QM5AV.js.map +1 -0
  27. package/dist/{chunk-2BD7DG37.js → chunk-MBZAESQ3.js} +2 -2
  28. package/dist/{chunk-VAEAGTEQ.js → chunk-QFKRE7AU.js} +3 -3
  29. package/dist/{chunk-AGJKWOKV.js → chunk-RVT6U6PV.js} +2 -2
  30. package/dist/{chunk-TFFZUFEP.js → chunk-VJYFXDCZ.js} +2 -2
  31. package/dist/{chunk-QZRKNA5F.js → chunk-ZCMO46YY.js} +2 -2
  32. package/dist/cli.js +15 -15
  33. package/dist/compounding/engine.js +2 -2
  34. package/dist/connectors/codex-materialize-runner.js +2 -2
  35. package/dist/connectors/index.js +2 -2
  36. package/dist/entity-retrieval.js +2 -2
  37. package/dist/index.js +20 -20
  38. package/dist/maintenance/memory-governance.js +2 -2
  39. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +2 -2
  40. package/dist/maintenance/rebuild-memory-projection.js +3 -3
  41. package/dist/namespaces/migrate.js +3 -3
  42. package/dist/namespaces/storage.js +2 -2
  43. package/dist/operator-toolkit.js +5 -5
  44. package/dist/orchestrator.js +10 -10
  45. package/dist/semantic-consolidation.js +3 -3
  46. package/dist/semantic-rule-promotion.js +2 -2
  47. package/dist/semantic-rule-verifier.js +2 -2
  48. package/dist/storage.d.ts +27 -5
  49. package/dist/storage.js +1 -1
  50. package/dist/verified-recall.js +2 -2
  51. package/package.json +1 -1
  52. package/src/briefing.ts +8 -4
  53. package/src/entity-retrieval.ts +8 -3
  54. package/src/orchestrator.ts +1 -2
  55. package/src/storage.ts +79 -26
  56. package/dist/chunk-IOZ5WBWD.js.map +0 -1
  57. package/dist/chunk-NXCK7DO7.js.map +0 -1
  58. package/dist/chunk-RDW5G6DO.js.map +0 -1
  59. package/dist/chunk-Z6UDTNY6.js.map +0 -1
  60. /package/dist/{chunk-YEZHZCUO.js.map → chunk-2VCTTEJM.js.map} +0 -0
  61. /package/dist/{chunk-DR67OK4E.js.map → chunk-3R6OP33G.js.map} +0 -0
  62. /package/dist/{chunk-JSVFEHLL.js.map → chunk-46RXRASB.js.map} +0 -0
  63. /package/dist/{chunk-54XF2FY7.js.map → chunk-5PFIMBJJ.js.map} +0 -0
  64. /package/dist/{chunk-4UL7VPTD.js.map → chunk-6M4LYWA2.js.map} +0 -0
  65. /package/dist/{chunk-DIBWFCLA.js.map → chunk-7KSPKZIQ.js.map} +0 -0
  66. /package/dist/{chunk-SWDHVH2P.js.map → chunk-BKRIAXTU.js.map} +0 -0
  67. /package/dist/{chunk-WWMHAMAY.js.map → chunk-BNUAOLDK.js.map} +0 -0
  68. /package/dist/{chunk-GCYFUTUC.js.map → chunk-FIS5RT6K.js.map} +0 -0
  69. /package/dist/{chunk-GSHW5VVD.js.map → chunk-GGL7R2L2.js.map} +0 -0
  70. /package/dist/{chunk-WIKMCJUR.js.map → chunk-JI3LQFJH.js.map} +0 -0
  71. /package/dist/{chunk-2BD7DG37.js.map → chunk-MBZAESQ3.js.map} +0 -0
  72. /package/dist/{chunk-VAEAGTEQ.js.map → chunk-QFKRE7AU.js.map} +0 -0
  73. /package/dist/{chunk-AGJKWOKV.js.map → chunk-RVT6U6PV.js.map} +0 -0
  74. /package/dist/{chunk-TFFZUFEP.js.map → chunk-VJYFXDCZ.js.map} +0 -0
  75. /package/dist/{chunk-QZRKNA5F.js.map → chunk-ZCMO46YY.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Orchestrator
3
- } from "./chunk-RDW5G6DO.js";
3
+ } from "./chunk-7VWDC7AD.js";
4
4
  import "./chunk-4SKKVWLQ.js";
5
5
  import "./chunk-7HYPN2GC.js";
6
6
  import "./chunk-666A3MOW.js";
@@ -15,7 +15,7 @@ import "./chunk-TPDBFYEG.js";
15
15
  import "./chunk-KCYE2MZM.js";
16
16
  import "./chunk-TECVW3JP.js";
17
17
  import "./chunk-T2PO5MUF.js";
18
- import "./chunk-AGJKWOKV.js";
18
+ import "./chunk-RVT6U6PV.js";
19
19
  import "./chunk-DRD2Q7HQ.js";
20
20
  import "./chunk-LXOM6IQU.js";
21
21
  import "./chunk-VOUOLGIP.js";
@@ -56,7 +56,7 @@ import "./chunk-54V4BZWP.js";
56
56
  import "./chunk-XZ4WBBB5.js";
57
57
  import "./chunk-H3HDXD3U.js";
58
58
  import "./chunk-LZTFCAKE.js";
59
- import "./chunk-IOZ5WBWD.js";
59
+ import "./chunk-G2VVBWFU.js";
60
60
  import "./chunk-UU6MVCJ6.js";
61
61
  import "./chunk-YXLT4EMM.js";
62
62
  import "./chunk-YVVQUAOO.js";
@@ -68,23 +68,23 @@ import "./chunk-6HEM6HTQ.js";
68
68
  import "./chunk-XCAZF7KQ.js";
69
69
  import "./chunk-3PG3H5TD.js";
70
70
  import "./chunk-OD4FM2U7.js";
71
- import "./chunk-SWDHVH2P.js";
72
- import "./chunk-WWMHAMAY.js";
71
+ import "./chunk-BKRIAXTU.js";
72
+ import "./chunk-BNUAOLDK.js";
73
73
  import "./chunk-LN4YGHTM.js";
74
74
  import "./chunk-JLNBQWZ2.js";
75
75
  import "./chunk-2PRQG7PV.js";
76
76
  import "./chunk-X6IRLNOO.js";
77
77
  import "./chunk-2F6NP3NT.js";
78
78
  import "./chunk-TERNBNJB.js";
79
- import "./chunk-JSVFEHLL.js";
79
+ import "./chunk-46RXRASB.js";
80
80
  import "./chunk-W4RVMTHR.js";
81
- import "./chunk-TFFZUFEP.js";
81
+ import "./chunk-VJYFXDCZ.js";
82
82
  import "./chunk-ZRWB5D4H.js";
83
83
  import "./chunk-AGRPGAKR.js";
84
84
  import "./chunk-S4DDLTPX.js";
85
85
  import "./chunk-SFQ6QNL7.js";
86
86
  import "./chunk-33JBK2XP.js";
87
- import "./chunk-WIKMCJUR.js";
87
+ import "./chunk-JI3LQFJH.js";
88
88
  import "./chunk-KFY3SGN7.js";
89
89
  import {
90
90
  resolvePluginEntry
@@ -123,7 +123,7 @@ import "./chunk-OADWQ5CR.js";
123
123
  import "./chunk-7WV3F5DQ.js";
124
124
  import {
125
125
  EngramAccessService
126
- } from "./chunk-4UL7VPTD.js";
126
+ } from "./chunk-6M4LYWA2.js";
127
127
  import "./chunk-GDASG7NC.js";
128
128
  import "./chunk-GDB4J2H3.js";
129
129
  import "./chunk-DHGSZ3UD.js";
@@ -131,7 +131,7 @@ import "./chunk-H7XKCNR6.js";
131
131
  import "./chunk-TIJYQXDI.js";
132
132
  import "./chunk-SOBJ6NEY.js";
133
133
  import "./chunk-BT7NVCML.js";
134
- import "./chunk-QZRKNA5F.js";
134
+ import "./chunk-ZCMO46YY.js";
135
135
  import "./chunk-GYSYLGNE.js";
136
136
  import "./chunk-5RIRL3XL.js";
137
137
  import "./chunk-JGSKJHF7.js";
@@ -169,8 +169,8 @@ import "./chunk-3ONXXHQO.js";
169
169
  import "./chunk-Y56J7CXW.js";
170
170
  import "./chunk-2LSZVONP.js";
171
171
  import "./chunk-DEUNUKTD.js";
172
- import "./chunk-Z6UDTNY6.js";
173
- import "./chunk-NXCK7DO7.js";
172
+ import "./chunk-KI6QM5AV.js";
173
+ import "./chunk-4PLOQDBB.js";
174
174
  import "./chunk-M7XQSUBB.js";
175
175
  import "./chunk-5UZXUTVO.js";
176
176
  import "./chunk-J6A3CX5N.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  EngramAccessHttpServer
3
- } from "./chunk-DR67OK4E.js";
3
+ } from "./chunk-3R6OP33G.js";
4
4
  import "./chunk-SEDEKFYQ.js";
5
5
  import "./chunk-RKNJBZ55.js";
6
6
  import "./chunk-J64TK33U.js";
@@ -9,10 +9,10 @@ import "./chunk-42NQ7AVG.js";
9
9
  import "./chunk-TMSXWOBZ.js";
10
10
  import "./chunk-7RXCMVFQ.js";
11
11
  import "./chunk-7WV3F5DQ.js";
12
- import "./chunk-YEZHZCUO.js";
12
+ import "./chunk-2VCTTEJM.js";
13
13
  import "./chunk-T4WDJPEZ.js";
14
14
  import "./chunk-D24OXEPB.js";
15
- import "./chunk-4UL7VPTD.js";
15
+ import "./chunk-6M4LYWA2.js";
16
16
  import "./chunk-GDASG7NC.js";
17
17
  import "./chunk-GDB4J2H3.js";
18
18
  import "./chunk-DHGSZ3UD.js";
@@ -20,7 +20,7 @@ import "./chunk-H7XKCNR6.js";
20
20
  import "./chunk-TIJYQXDI.js";
21
21
  import "./chunk-SOBJ6NEY.js";
22
22
  import "./chunk-BT7NVCML.js";
23
- import "./chunk-QZRKNA5F.js";
23
+ import "./chunk-ZCMO46YY.js";
24
24
  import "./chunk-GYSYLGNE.js";
25
25
  import "./chunk-5RIRL3XL.js";
26
26
  import "./chunk-JGSKJHF7.js";
@@ -58,8 +58,8 @@ import "./chunk-3ONXXHQO.js";
58
58
  import "./chunk-Y56J7CXW.js";
59
59
  import "./chunk-2LSZVONP.js";
60
60
  import "./chunk-DEUNUKTD.js";
61
- import "./chunk-Z6UDTNY6.js";
62
- import "./chunk-NXCK7DO7.js";
61
+ import "./chunk-KI6QM5AV.js";
62
+ import "./chunk-4PLOQDBB.js";
63
63
  import "./chunk-M7XQSUBB.js";
64
64
  import "./chunk-5UZXUTVO.js";
65
65
  import "./chunk-J6A3CX5N.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  EngramMcpServer
3
- } from "./chunk-YEZHZCUO.js";
3
+ } from "./chunk-2VCTTEJM.js";
4
4
  import "./chunk-T4WDJPEZ.js";
5
5
  import "./chunk-D24OXEPB.js";
6
- import "./chunk-4UL7VPTD.js";
6
+ import "./chunk-6M4LYWA2.js";
7
7
  import "./chunk-GDASG7NC.js";
8
8
  import "./chunk-GDB4J2H3.js";
9
9
  import "./chunk-DHGSZ3UD.js";
@@ -11,7 +11,7 @@ import "./chunk-H7XKCNR6.js";
11
11
  import "./chunk-TIJYQXDI.js";
12
12
  import "./chunk-SOBJ6NEY.js";
13
13
  import "./chunk-BT7NVCML.js";
14
- import "./chunk-QZRKNA5F.js";
14
+ import "./chunk-ZCMO46YY.js";
15
15
  import "./chunk-GYSYLGNE.js";
16
16
  import "./chunk-5RIRL3XL.js";
17
17
  import "./chunk-JGSKJHF7.js";
@@ -49,8 +49,8 @@ import "./chunk-3ONXXHQO.js";
49
49
  import "./chunk-Y56J7CXW.js";
50
50
  import "./chunk-2LSZVONP.js";
51
51
  import "./chunk-DEUNUKTD.js";
52
- import "./chunk-Z6UDTNY6.js";
53
- import "./chunk-NXCK7DO7.js";
52
+ import "./chunk-KI6QM5AV.js";
53
+ import "./chunk-4PLOQDBB.js";
54
54
  import "./chunk-M7XQSUBB.js";
55
55
  import "./chunk-5UZXUTVO.js";
56
56
  import "./chunk-J6A3CX5N.js";
@@ -3,7 +3,7 @@ import {
3
3
  EngramAccessInputError,
4
4
  EngramAccessService,
5
5
  shapeMemorySummary
6
- } from "./chunk-4UL7VPTD.js";
6
+ } from "./chunk-6M4LYWA2.js";
7
7
  import "./chunk-GDASG7NC.js";
8
8
  import "./chunk-GDB4J2H3.js";
9
9
  import "./chunk-DHGSZ3UD.js";
@@ -11,7 +11,7 @@ import "./chunk-H7XKCNR6.js";
11
11
  import "./chunk-TIJYQXDI.js";
12
12
  import "./chunk-SOBJ6NEY.js";
13
13
  import "./chunk-BT7NVCML.js";
14
- import "./chunk-QZRKNA5F.js";
14
+ import "./chunk-ZCMO46YY.js";
15
15
  import "./chunk-GYSYLGNE.js";
16
16
  import "./chunk-5RIRL3XL.js";
17
17
  import "./chunk-JGSKJHF7.js";
@@ -49,8 +49,8 @@ import "./chunk-3ONXXHQO.js";
49
49
  import "./chunk-Y56J7CXW.js";
50
50
  import "./chunk-2LSZVONP.js";
51
51
  import "./chunk-DEUNUKTD.js";
52
- import "./chunk-Z6UDTNY6.js";
53
- import "./chunk-NXCK7DO7.js";
52
+ import "./chunk-KI6QM5AV.js";
53
+ import "./chunk-4PLOQDBB.js";
54
54
  import "./chunk-M7XQSUBB.js";
55
55
  import "./chunk-5UZXUTVO.js";
56
56
  import "./chunk-J6A3CX5N.js";
@@ -88,7 +88,7 @@ declare function parseBriefingFocus(token: string | undefined): BriefingFocus |
88
88
  * an entity only via `frontmatter.entityRef` (no body / tag mention) would
89
89
  * silently drop out of an untyped focus filter (codex P2 review on #695).
90
90
  */
91
- declare function focusMatchesMemory(memory: MemoryFile, focus: BriefingFocus): boolean;
91
+ declare function focusMatchesMemory(memory: MemoryFile, focus: BriefingFocus, entityAliases?: Readonly<Record<string, string>>): boolean;
92
92
  declare function focusMatchesEntity(entity: EntityFile, focus: BriefingFocus): boolean;
93
93
  /**
94
94
  * Stub `CalendarSource` backed by a single local file. Supports:
package/dist/briefing.js CHANGED
@@ -17,8 +17,8 @@ import {
17
17
  renderBriefingMarkdown,
18
18
  resolveBriefingSaveDir,
19
19
  validateBriefingFormat
20
- } from "./chunk-Z6UDTNY6.js";
21
- import "./chunk-NXCK7DO7.js";
20
+ } from "./chunk-KI6QM5AV.js";
21
+ import "./chunk-4PLOQDBB.js";
22
22
  import "./chunk-M7XQSUBB.js";
23
23
  import "./chunk-5UZXUTVO.js";
24
24
  import "./chunk-J6A3CX5N.js";
@@ -4,10 +4,10 @@ import {
4
4
  } from "./chunk-UXA5L2DZ.js";
5
5
  import {
6
6
  buildExtensionsBlockForConsolidation
7
- } from "./chunk-SWDHVH2P.js";
7
+ } from "./chunk-BKRIAXTU.js";
8
8
  import {
9
9
  runPostConsolidationMaterialize
10
- } from "./chunk-WWMHAMAY.js";
10
+ } from "./chunk-BNUAOLDK.js";
11
11
  import "./chunk-LN4YGHTM.js";
12
12
  import "./chunk-JLNBQWZ2.js";
13
13
  import "./chunk-3UXOZBHV.js";
@@ -20,7 +20,7 @@ import "./chunk-L2EXJQJP.js";
20
20
  import "./chunk-7SI52C65.js";
21
21
  import "./chunk-RK6F44Y6.js";
22
22
  import "./chunk-HQ6NIBL6.js";
23
- import "./chunk-NXCK7DO7.js";
23
+ import "./chunk-4PLOQDBB.js";
24
24
  import "./chunk-M7XQSUBB.js";
25
25
  import "./chunk-5UZXUTVO.js";
26
26
  import "./chunk-J6A3CX5N.js";
@@ -11,13 +11,13 @@ import {
11
11
  } from "./chunk-D24OXEPB.js";
12
12
  import {
13
13
  EngramAccessInputError
14
- } from "./chunk-4UL7VPTD.js";
14
+ } from "./chunk-6M4LYWA2.js";
15
15
  import {
16
16
  projectTagProjectId
17
17
  } from "./chunk-GYSYLGNE.js";
18
18
  import {
19
19
  validateBriefingFormat
20
- } from "./chunk-Z6UDTNY6.js";
20
+ } from "./chunk-KI6QM5AV.js";
21
21
  import {
22
22
  resolvePrincipal
23
23
  } from "./chunk-UZYLX7M6.js";
@@ -3117,4 +3117,4 @@ ${body}`;
3117
3117
  export {
3118
3118
  EngramMcpServer
3119
3119
  };
3120
- //# sourceMappingURL=chunk-YEZHZCUO.js.map
3120
+ //# sourceMappingURL=chunk-2VCTTEJM.js.map
@@ -6,10 +6,10 @@ import {
6
6
  } from "./chunk-7WV3F5DQ.js";
7
7
  import {
8
8
  EngramMcpServer
9
- } from "./chunk-YEZHZCUO.js";
9
+ } from "./chunk-2VCTTEJM.js";
10
10
  import {
11
11
  EngramAccessInputError
12
- } from "./chunk-4UL7VPTD.js";
12
+ } from "./chunk-6M4LYWA2.js";
13
13
  import {
14
14
  projectTagProjectId
15
15
  } from "./chunk-GYSYLGNE.js";
@@ -2030,4 +2030,4 @@ function positiveIntQueryParam(value, label) {
2030
2030
  export {
2031
2031
  EngramAccessHttpServer
2032
2032
  };
2033
- //# sourceMappingURL=chunk-DR67OK4E.js.map
2033
+ //# sourceMappingURL=chunk-3R6OP33G.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-HQ6NIBL6.js";
4
4
  import {
5
5
  StorageManager
6
- } from "./chunk-NXCK7DO7.js";
6
+ } from "./chunk-4PLOQDBB.js";
7
7
  import {
8
8
  getCachedEpisodeMap,
9
9
  setCachedEpisodeMap
@@ -107,4 +107,4 @@ export {
107
107
  compareVerifiedEpisodeResults,
108
108
  searchVerifiedEpisodes
109
109
  };
110
- //# sourceMappingURL=chunk-JSVFEHLL.js.map
110
+ //# sourceMappingURL=chunk-46RXRASB.js.map
@@ -80,7 +80,7 @@ import {
80
80
 
81
81
  // src/storage.ts
82
82
  import { access, readdir, readFile, stat, writeFile, mkdir, unlink, appendFile, open } from "fs/promises";
83
- import { appendFileSync, createReadStream, mkdirSync, statSync } from "fs";
83
+ import { appendFileSync, createReadStream, mkdirSync, readFileSync, statSync } from "fs";
84
84
  import { createHash } from "crypto";
85
85
  import path2 from "path";
86
86
 
@@ -732,12 +732,11 @@ function normalizeFrontmatterForPath(frontmatter, pathRel, content = "") {
732
732
  function inferCurrentStateStatus(frontmatter, pathRel, fallbackStatus) {
733
733
  return inferMemoryStatus(frontmatter, pathRel, fallbackStatus);
734
734
  }
735
- var userAliases = {};
736
735
  var BUILTIN_ALIASES = {
737
736
  openclaw: "openclaw",
738
737
  "open-claw": "openclaw"
739
738
  };
740
- function normalizeEntityName(raw, type) {
739
+ function normalizeEntityName(raw, type, aliases) {
741
740
  const rawStr = typeof raw === "string" ? raw : "";
742
741
  const typeStr = typeof type === "string" && type.trim().length > 0 ? type : "entity";
743
742
  let name = rawStr.toLowerCase().trim();
@@ -746,9 +745,10 @@ function normalizeEntityName(raw, type) {
746
745
  name = name.slice(typePrefix.length);
747
746
  }
748
747
  let normalized = name.replace(/[^a-z0-9]+/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
749
- if (userAliases[normalized]) {
750
- normalized = userAliases[normalized];
751
- } else if (BUILTIN_ALIASES[normalized]) {
748
+ const userAlias = aliases !== void 0 && Object.hasOwn(aliases, normalized) ? aliases[normalized] : void 0;
749
+ if (typeof userAlias === "string" && userAlias.length > 0) {
750
+ normalized = userAlias;
751
+ } else if (Object.hasOwn(BUILTIN_ALIASES, normalized)) {
752
752
  normalized = BUILTIN_ALIASES[normalized];
753
753
  }
754
754
  return `${typeStr.toLowerCase()}-${normalized}`;
@@ -1695,6 +1695,7 @@ var StorageManager = class _StorageManager {
1695
1695
  constructor(baseDir, entitySchemas) {
1696
1696
  this.baseDir = baseDir;
1697
1697
  this.entitySchemas = entitySchemas;
1698
+ this.loadAliasesSync();
1698
1699
  }
1699
1700
  baseDir;
1700
1701
  entitySchemas;
@@ -2504,18 +2505,53 @@ var StorageManager = class _StorageManager {
2504
2505
  return path2.join(this.stateDir, "buffer-surprise-ledger.jsonl");
2505
2506
  }
2506
2507
  /**
2507
- * Load user-defined entity aliases from config/aliases.json in the memory store.
2508
- * File format: { "variant": "canonical", "variant2": "canonical", ... }
2509
- * Call this once at startup (e.g. from orchestrator.initialize()).
2508
+ * Entity alias table loaded from THIS store's config/aliases.json.
2509
+ * Instance-scoped on purpose (issue #1534): multiple StorageManager
2510
+ * instances in one process (namespaces, hosted profiles, tenants) must
2511
+ * never share alias state — the previous module-level table let whichever
2512
+ * store loaded last rewrite every other store's canonical entity ids.
2513
+ */
2514
+ userAliases = {};
2515
+ /** Normalize an entity name using this store's alias table. */
2516
+ normalizeEntityName(raw, type) {
2517
+ return normalizeEntityName(raw, type, this.userAliases);
2518
+ }
2519
+ /**
2520
+ * Read-only view of this store's user alias table, for call sites that
2521
+ * normalize outside the manager (pass it to the free `normalizeEntityName`).
2522
+ */
2523
+ get entityAliases() {
2524
+ return this.userAliases;
2525
+ }
2526
+ /**
2527
+ * Reload user-defined entity aliases from config/aliases.json in the memory
2528
+ * store. File format: { "variant": "canonical", ... }. The constructor
2529
+ * already loads aliases, so this is only needed to pick up file changes
2530
+ * (e.g. orchestrator.initialize() re-running on a live instance).
2531
+ * Non-object payloads and non-string or empty alias values are ignored.
2510
2532
  */
2511
2533
  async loadAliases() {
2534
+ this.loadAliasesSync();
2535
+ }
2536
+ loadAliasesSync() {
2512
2537
  const aliasPath = path2.join(this.baseDir, "config", "aliases.json");
2538
+ this.userAliases = {};
2513
2539
  try {
2514
- const raw = await readFile(aliasPath, "utf-8");
2540
+ const raw = readFileSync(aliasPath, "utf-8");
2515
2541
  const parsed = JSON.parse(raw);
2516
- if (typeof parsed === "object" && parsed !== null) {
2517
- userAliases = parsed;
2518
- log.debug(`loaded ${Object.keys(userAliases).length} entity aliases from ${aliasPath}`);
2542
+ if (typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)) {
2543
+ const cleaned = {};
2544
+ for (const [key, value] of Object.entries(parsed)) {
2545
+ if (typeof value === "string" && value.trim().length > 0) {
2546
+ cleaned[key] = value;
2547
+ }
2548
+ }
2549
+ this.userAliases = cleaned;
2550
+ log.debug(`loaded ${Object.keys(cleaned).length} entity aliases from ${aliasPath}`);
2551
+ } else {
2552
+ log.warn(
2553
+ `ignoring ${aliasPath}: payload must be a JSON object mapping variant \u2192 canonical strings`
2554
+ );
2519
2555
  }
2520
2556
  } catch {
2521
2557
  log.debug("no config/aliases.json found \u2014 using built-in aliases only");
@@ -2840,7 +2876,7 @@ ${sanitized.text}
2840
2876
  const safeFacts = Array.isArray(facts) ? [...new Set(
2841
2877
  facts.filter((fact) => typeof fact === "string").map((fact) => fact.trim()).filter((fact) => fact.length > 0)
2842
2878
  )] : [];
2843
- let normalized = normalizeEntityName(name, type);
2879
+ let normalized = this.normalizeEntityName(name, type);
2844
2880
  const match = await this.findMatchingEntity(name, type);
2845
2881
  if (match && match !== normalized) {
2846
2882
  log.debug(`fuzzy match: "${normalized}" \u2192 existing "${match}"`);
@@ -3589,7 +3625,7 @@ ${memory.content}
3589
3625
  const existing = await this.listEntityNames();
3590
3626
  if (existing.length === 0) return null;
3591
3627
  const typePrefix = `${type.toLowerCase()}-`;
3592
- const proposedFull = normalizeEntityName(proposedName, type);
3628
+ const proposedFull = this.normalizeEntityName(proposedName, type);
3593
3629
  const proposedNamePart = proposedFull.startsWith(typePrefix) ? proposedFull.slice(typePrefix.length) : proposedFull;
3594
3630
  const proposedDehyph = dehyphenate(proposedNamePart);
3595
3631
  const sameType = existing.filter((e) => e.startsWith(typePrefix));
@@ -4692,7 +4728,7 @@ ${reflection}
4692
4728
  entity.updated = entityUpdatedAt;
4693
4729
  await this.writeStorageSecureFile(filePath, serializeEntityFile(entity, this.entitySchemas));
4694
4730
  await this.removeEntitySynthesisQueueEntries([
4695
- .../* @__PURE__ */ new Set([name, normalizeEntityName(entity.name, entity.type)])
4731
+ .../* @__PURE__ */ new Set([name, this.normalizeEntityName(entity.name, entity.type)])
4696
4732
  ]);
4697
4733
  this.invalidateKnowledgeIndexCache();
4698
4734
  this.bumpMemoryStatusVersion();
@@ -4940,7 +4976,7 @@ ${rows.join("\n")}
4940
4976
  if (dashIdx === -1) continue;
4941
4977
  const type = baseName.slice(0, dashIdx);
4942
4978
  const restOfName = baseName.slice(dashIdx + 1);
4943
- const canonical = normalizeEntityName(restOfName, type);
4979
+ const canonical = this.normalizeEntityName(restOfName, type);
4944
4980
  if (!groups.has(canonical)) groups.set(canonical, []);
4945
4981
  groups.get(canonical).push(file);
4946
4982
  }
@@ -5561,4 +5597,4 @@ export {
5561
5597
  serializeEntityFile,
5562
5598
  StorageManager
5563
5599
  };
5564
- //# sourceMappingURL=chunk-NXCK7DO7.js.map
5600
+ //# sourceMappingURL=chunk-4PLOQDBB.js.map