@remnic/core 9.3.755 → 9.3.757

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 (219) hide show
  1. package/dist/access-admin-ops-surface.d.ts +1 -1
  2. package/dist/access-admin-ops-surface.js +45 -45
  3. package/dist/access-audit.js +2 -2
  4. package/dist/access-boundary.d.ts +1 -1
  5. package/dist/access-boundary.js +46 -46
  6. package/dist/access-cli.js +105 -104
  7. package/dist/access-cli.js.map +1 -1
  8. package/dist/access-http.d.ts +1 -1
  9. package/dist/access-http.js +55 -55
  10. package/dist/access-lcm-surface.d.ts +1 -1
  11. package/dist/access-lcm-surface.js +45 -45
  12. package/dist/access-mcp.d.ts +1 -1
  13. package/dist/access-mcp.js +52 -52
  14. package/dist/access-observe-write-surface.d.ts +225 -0
  15. package/dist/access-observe-write-surface.js +128 -0
  16. package/dist/access-operations-batch.js +49 -49
  17. package/dist/access-operations.d.ts +5 -5
  18. package/dist/access-operations.js +51 -51
  19. package/dist/access-recall-surface.d.ts +1 -1
  20. package/dist/access-recall-surface.js +45 -45
  21. package/dist/access-schema.d.ts +70 -70
  22. package/dist/access-schema.js +4 -4
  23. package/dist/{access-service-C3jkLi2U.d.ts → access-service-CJwcDoQp.d.ts} +4 -5
  24. package/dist/access-service.d.ts +1 -1
  25. package/dist/access-service.js +45 -45
  26. package/dist/access-surface-catalog.d.ts +1 -1
  27. package/dist/active-recall.js +1 -1
  28. package/dist/adapters/index.js +4 -4
  29. package/dist/adapters/registry.js +2 -2
  30. package/dist/{auto-sync-G4YKBPOU.js → auto-sync-2SOUW4JW.js} +6 -6
  31. package/dist/briefing.js +12 -12
  32. package/dist/calibration.js +2 -2
  33. package/dist/{capsule-crypto-CZJSLEFG.js → capsule-crypto-RAARDY3M.js} +2 -2
  34. package/dist/causal-behavior.js +2 -2
  35. package/dist/causal-chain.js +2 -2
  36. package/dist/causal-consolidation.js +20 -20
  37. package/dist/causal-retrieval.js +2 -2
  38. package/dist/causal-trajectory-graph.js +2 -2
  39. package/dist/causal-trajectory.js +1 -1
  40. package/dist/{chunk-T6WHI3JW.js → chunk-2NTWULEQ.js} +6 -6
  41. package/dist/chunk-3I4FUAVJ.js +20 -0
  42. package/dist/chunk-3I4FUAVJ.js.map +1 -0
  43. package/dist/{chunk-TH7WMHVK.js → chunk-3NN73CM7.js} +2 -2
  44. package/dist/{chunk-GCEV6SXP.js → chunk-4L2KHKLY.js} +2300 -2220
  45. package/dist/chunk-4L2KHKLY.js.map +1 -0
  46. package/dist/{chunk-TAPSNIMA.js → chunk-5CEJH5ZN.js} +4 -4
  47. package/dist/{chunk-XBM5DG4O.js → chunk-5PHPNUZN.js} +684 -599
  48. package/dist/chunk-5PHPNUZN.js.map +1 -0
  49. package/dist/{chunk-CIDGUFAL.js → chunk-6A76LSX6.js} +2 -2
  50. package/dist/{chunk-UQJ6YTKR.js → chunk-6DMTYBNY.js} +7 -7
  51. package/dist/{chunk-S6UCPBPL.js → chunk-6FYRCQ7K.js} +2 -2
  52. package/dist/{chunk-7XH7VJN4.js → chunk-6T4LTI2F.js} +4 -4
  53. package/dist/{chunk-PJ7DIEFC.js → chunk-7HJ3XBMD.js} +5 -5
  54. package/dist/{chunk-TVVEYCNW.js → chunk-7K5Q6COX.js} +4 -4
  55. package/dist/{chunk-I3UWEZTK.js → chunk-AINK3KDE.js} +2 -2
  56. package/dist/{chunk-ZQNCHPTZ.js → chunk-CTGK5VK3.js} +2 -2
  57. package/dist/{chunk-G7LCG56O.js → chunk-CXW6Y7SI.js} +4 -4
  58. package/dist/{chunk-M5QKGHCR.js → chunk-CYWCKFCL.js} +5 -5
  59. package/dist/{chunk-T422SYM6.js → chunk-DCWIQFNA.js} +5 -5
  60. package/dist/{chunk-2BFLDH5F.js → chunk-EEIROWEG.js} +2 -2
  61. package/dist/{chunk-DS4QM6I7.js → chunk-EEKDRAWX.js} +4 -4
  62. package/dist/{chunk-OCFITZRV.js → chunk-FBS6V6LJ.js} +4 -4
  63. package/dist/{chunk-I6IAJCJS.js → chunk-FFPH47IX.js} +7 -7
  64. package/dist/{chunk-N4AGSRVA.js → chunk-GI7PRVMV.js} +9 -9
  65. package/dist/{chunk-FQLM6ZUP.js → chunk-GIJDW2YO.js} +3 -3
  66. package/dist/{chunk-LFKEFIJA.js → chunk-I65IQD7Y.js} +4 -4
  67. package/dist/{chunk-3DOD6ICJ.js → chunk-IBAU2RZN.js} +6 -6
  68. package/dist/{chunk-24463PIV.js → chunk-IF6BTZCB.js} +2 -2
  69. package/dist/{chunk-GMWKWA6N.js → chunk-IR6ATBUI.js} +5 -5
  70. package/dist/{chunk-TJATYB3F.js → chunk-IZP62CEF.js} +7 -7
  71. package/dist/{chunk-FLVL4L3L.js → chunk-KTULX4YO.js} +4 -4
  72. package/dist/{chunk-XCXN3D2U.js → chunk-L5DU7THE.js} +6 -6
  73. package/dist/{chunk-437S3G37.js → chunk-LNQUAJNC.js} +1 -1
  74. package/dist/{chunk-LD53WPMU.js → chunk-LQ6JI4VH.js} +4 -4
  75. package/dist/{chunk-NCNOYM6F.js → chunk-LVMVYLNB.js} +2 -2
  76. package/dist/{chunk-XD6JVK5P.js → chunk-MQQO56LN.js} +47 -47
  77. package/dist/{chunk-PJQMISPD.js → chunk-NNL4LJAD.js} +6 -6
  78. package/dist/{chunk-GGYUR4M2.js → chunk-PHWBKQHK.js} +12 -12
  79. package/dist/{chunk-TQT3USCG.js → chunk-PMBWVQ7D.js} +2 -2
  80. package/dist/{chunk-JITAVROY.js → chunk-PXHY2E3S.js} +4 -4
  81. package/dist/{chunk-GPFXPC2V.js → chunk-QOGXUNWL.js} +8 -8
  82. package/dist/{chunk-SP42M3XP.js → chunk-QVQG7W2H.js} +7 -7
  83. package/dist/{chunk-2QSZNTDO.js → chunk-RKNJBZ55.js} +4 -4
  84. package/dist/{chunk-VL5QHTJI.js → chunk-RQXVVENY.js} +128 -128
  85. package/dist/{chunk-KKOCFUI5.js → chunk-SUN6XVNI.js} +10 -10
  86. package/dist/{chunk-FOJY75BL.js → chunk-T3UW6NRQ.js} +13 -13
  87. package/dist/{chunk-2MR3MFQB.js → chunk-UPSAT4PY.js} +2 -2
  88. package/dist/{chunk-5J4OL7TJ.js → chunk-VUA4S7P6.js} +4 -4
  89. package/dist/{chunk-YQGHW5ML.js → chunk-WRFKZEO6.js} +4 -4
  90. package/dist/{chunk-H6S3DJVE.js → chunk-XKUYMM34.js} +2 -2
  91. package/dist/{chunk-EHQ5HO5T.js → chunk-XROP4ZHB.js} +4 -4
  92. package/dist/{chunk-2OZ2JEUP.js → chunk-YTU7WKYN.js} +2 -2
  93. package/dist/{chunk-V5UV7BOA.js → chunk-ZE7GJ76H.js} +1 -1
  94. package/dist/{chunk-ER3CCWK2.js → chunk-ZG2WP425.js} +2 -2
  95. package/dist/{chunk-4LQUYBZM.js → chunk-ZL3Y3ZTQ.js} +7 -7
  96. package/dist/{cli-BJQ2ahrh.d.ts → cli-cZyANcmY.d.ts} +1 -1
  97. package/dist/cli.d.ts +2 -2
  98. package/dist/cli.js +72 -72
  99. package/dist/compounding/engine.js +13 -13
  100. package/dist/config-record.d.ts +11 -0
  101. package/dist/config-record.js +8 -0
  102. package/dist/config.js +1 -1
  103. package/dist/connectors/codex-materialize-runner.js +13 -13
  104. package/dist/connectors/index.js +14 -14
  105. package/dist/consolidation-provenance-check.js +2 -2
  106. package/dist/contradiction/index.js +6 -6
  107. package/dist/{contradiction-scan-2SODRNUF.js → contradiction-scan-3FJYWS3G.js} +3 -3
  108. package/dist/contradiction-scan-3FJYWS3G.js.map +1 -0
  109. package/dist/conversation-index/backend.js +2 -2
  110. package/dist/entity-retrieval.js +13 -13
  111. package/dist/extraction-faithfulness.js +3 -3
  112. package/dist/extraction-judge.js +3 -3
  113. package/dist/extraction.js +4 -4
  114. package/dist/fallback-llm.js +2 -2
  115. package/dist/{first-start-migration-DY6YCRC2.js → first-start-migration-RYY7PPGF.js} +4 -4
  116. package/dist/{graph-edge-decay-RXUCJIN4.js → graph-edge-decay-U2GKDAVM.js} +4 -4
  117. package/dist/graph-edge-decay-U2GKDAVM.js.map +1 -0
  118. package/dist/graph-snapshot.js +3 -3
  119. package/dist/graph.js +2 -2
  120. package/dist/index.d.ts +3 -2
  121. package/dist/index.js +162 -158
  122. package/dist/lcm/engine.js +2 -2
  123. package/dist/lcm/index.js +2 -2
  124. package/dist/maintenance/memory-governance.js +13 -13
  125. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +12 -12
  126. package/dist/maintenance/rebuild-memory-projection.js +14 -14
  127. package/dist/mcp-memory-inspector-app.d.ts +1 -1
  128. package/dist/namespaces/migrate.js +24 -24
  129. package/dist/namespaces/search.js +10 -10
  130. package/dist/namespaces/storage.js +14 -14
  131. package/dist/operator-toolkit.js +32 -32
  132. package/dist/orchestration/maintenance.js +17 -17
  133. package/dist/orchestrator.js +107 -106
  134. package/dist/recall-planner-llm.js +2 -2
  135. package/dist/resume-bundles.js +2 -2
  136. package/dist/schemas.d.ts +100 -100
  137. package/dist/search/factory.js +9 -9
  138. package/dist/search/index.js +13 -13
  139. package/dist/search/lancedb-backend.js +2 -2
  140. package/dist/search/meilisearch-backend.js +2 -2
  141. package/dist/search/orama-backend.js +2 -2
  142. package/dist/semantic-consolidation.js +16 -16
  143. package/dist/semantic-rule-promotion.js +12 -12
  144. package/dist/semantic-rule-verifier.js +13 -13
  145. package/dist/shared-context/manager.d.ts +8 -8
  146. package/dist/storage.d.ts +60 -78
  147. package/dist/storage.js +19 -11
  148. package/dist/summarizer.js +4 -4
  149. package/dist/transfer/backup.js +2 -2
  150. package/dist/transfer/capsule-export.js +3 -3
  151. package/dist/transfer/capsule-import.js +3 -3
  152. package/dist/transfer/types.d.ts +66 -66
  153. package/dist/verified-recall.js +13 -13
  154. package/package.json +2 -2
  155. package/src/access-observe-write-surface.ts +1007 -0
  156. package/src/access-service.ts +48 -794
  157. package/src/config-record.ts +25 -0
  158. package/src/index.ts +1 -0
  159. package/src/orchestration/self-deps.ts +9 -1
  160. package/src/storage/entity-store.ts +4 -2
  161. package/src/storage/memory-read-store.ts +756 -0
  162. package/src/storage.ts +67 -627
  163. package/dist/chunk-GCEV6SXP.js.map +0 -1
  164. package/dist/chunk-XBM5DG4O.js.map +0 -1
  165. /package/dist/{capsule-crypto-CZJSLEFG.js.map → access-observe-write-surface.js.map} +0 -0
  166. /package/dist/{auto-sync-G4YKBPOU.js.map → auto-sync-2SOUW4JW.js.map} +0 -0
  167. /package/dist/{contradiction-scan-2SODRNUF.js.map → capsule-crypto-RAARDY3M.js.map} +0 -0
  168. /package/dist/{chunk-T6WHI3JW.js.map → chunk-2NTWULEQ.js.map} +0 -0
  169. /package/dist/{chunk-TH7WMHVK.js.map → chunk-3NN73CM7.js.map} +0 -0
  170. /package/dist/{chunk-TAPSNIMA.js.map → chunk-5CEJH5ZN.js.map} +0 -0
  171. /package/dist/{chunk-CIDGUFAL.js.map → chunk-6A76LSX6.js.map} +0 -0
  172. /package/dist/{chunk-UQJ6YTKR.js.map → chunk-6DMTYBNY.js.map} +0 -0
  173. /package/dist/{chunk-S6UCPBPL.js.map → chunk-6FYRCQ7K.js.map} +0 -0
  174. /package/dist/{chunk-7XH7VJN4.js.map → chunk-6T4LTI2F.js.map} +0 -0
  175. /package/dist/{chunk-PJ7DIEFC.js.map → chunk-7HJ3XBMD.js.map} +0 -0
  176. /package/dist/{chunk-TVVEYCNW.js.map → chunk-7K5Q6COX.js.map} +0 -0
  177. /package/dist/{chunk-I3UWEZTK.js.map → chunk-AINK3KDE.js.map} +0 -0
  178. /package/dist/{chunk-ZQNCHPTZ.js.map → chunk-CTGK5VK3.js.map} +0 -0
  179. /package/dist/{chunk-G7LCG56O.js.map → chunk-CXW6Y7SI.js.map} +0 -0
  180. /package/dist/{chunk-M5QKGHCR.js.map → chunk-CYWCKFCL.js.map} +0 -0
  181. /package/dist/{chunk-T422SYM6.js.map → chunk-DCWIQFNA.js.map} +0 -0
  182. /package/dist/{chunk-2BFLDH5F.js.map → chunk-EEIROWEG.js.map} +0 -0
  183. /package/dist/{chunk-DS4QM6I7.js.map → chunk-EEKDRAWX.js.map} +0 -0
  184. /package/dist/{chunk-OCFITZRV.js.map → chunk-FBS6V6LJ.js.map} +0 -0
  185. /package/dist/{chunk-I6IAJCJS.js.map → chunk-FFPH47IX.js.map} +0 -0
  186. /package/dist/{chunk-N4AGSRVA.js.map → chunk-GI7PRVMV.js.map} +0 -0
  187. /package/dist/{chunk-FQLM6ZUP.js.map → chunk-GIJDW2YO.js.map} +0 -0
  188. /package/dist/{chunk-LFKEFIJA.js.map → chunk-I65IQD7Y.js.map} +0 -0
  189. /package/dist/{chunk-3DOD6ICJ.js.map → chunk-IBAU2RZN.js.map} +0 -0
  190. /package/dist/{chunk-24463PIV.js.map → chunk-IF6BTZCB.js.map} +0 -0
  191. /package/dist/{chunk-GMWKWA6N.js.map → chunk-IR6ATBUI.js.map} +0 -0
  192. /package/dist/{chunk-TJATYB3F.js.map → chunk-IZP62CEF.js.map} +0 -0
  193. /package/dist/{chunk-FLVL4L3L.js.map → chunk-KTULX4YO.js.map} +0 -0
  194. /package/dist/{chunk-XCXN3D2U.js.map → chunk-L5DU7THE.js.map} +0 -0
  195. /package/dist/{chunk-437S3G37.js.map → chunk-LNQUAJNC.js.map} +0 -0
  196. /package/dist/{chunk-LD53WPMU.js.map → chunk-LQ6JI4VH.js.map} +0 -0
  197. /package/dist/{chunk-NCNOYM6F.js.map → chunk-LVMVYLNB.js.map} +0 -0
  198. /package/dist/{chunk-XD6JVK5P.js.map → chunk-MQQO56LN.js.map} +0 -0
  199. /package/dist/{chunk-PJQMISPD.js.map → chunk-NNL4LJAD.js.map} +0 -0
  200. /package/dist/{chunk-GGYUR4M2.js.map → chunk-PHWBKQHK.js.map} +0 -0
  201. /package/dist/{chunk-TQT3USCG.js.map → chunk-PMBWVQ7D.js.map} +0 -0
  202. /package/dist/{chunk-JITAVROY.js.map → chunk-PXHY2E3S.js.map} +0 -0
  203. /package/dist/{chunk-GPFXPC2V.js.map → chunk-QOGXUNWL.js.map} +0 -0
  204. /package/dist/{chunk-SP42M3XP.js.map → chunk-QVQG7W2H.js.map} +0 -0
  205. /package/dist/{chunk-2QSZNTDO.js.map → chunk-RKNJBZ55.js.map} +0 -0
  206. /package/dist/{chunk-VL5QHTJI.js.map → chunk-RQXVVENY.js.map} +0 -0
  207. /package/dist/{chunk-KKOCFUI5.js.map → chunk-SUN6XVNI.js.map} +0 -0
  208. /package/dist/{chunk-FOJY75BL.js.map → chunk-T3UW6NRQ.js.map} +0 -0
  209. /package/dist/{chunk-2MR3MFQB.js.map → chunk-UPSAT4PY.js.map} +0 -0
  210. /package/dist/{chunk-5J4OL7TJ.js.map → chunk-VUA4S7P6.js.map} +0 -0
  211. /package/dist/{chunk-YQGHW5ML.js.map → chunk-WRFKZEO6.js.map} +0 -0
  212. /package/dist/{chunk-H6S3DJVE.js.map → chunk-XKUYMM34.js.map} +0 -0
  213. /package/dist/{chunk-EHQ5HO5T.js.map → chunk-XROP4ZHB.js.map} +0 -0
  214. /package/dist/{chunk-2OZ2JEUP.js.map → chunk-YTU7WKYN.js.map} +0 -0
  215. /package/dist/{chunk-V5UV7BOA.js.map → chunk-ZE7GJ76H.js.map} +0 -0
  216. /package/dist/{chunk-ER3CCWK2.js.map → chunk-ZG2WP425.js.map} +0 -0
  217. /package/dist/{chunk-4LQUYBZM.js.map → chunk-ZL3Y3ZTQ.js.map} +0 -0
  218. /package/dist/{graph-edge-decay-RXUCJIN4.js.map → config-record.js.map} +0 -0
  219. /package/dist/{first-start-migration-DY6YCRC2.js.map → first-start-migration-RYY7PPGF.js.map} +0 -0
@@ -0,0 +1,25 @@
1
+ function isRecord(value: unknown): value is Record<string, unknown> {
2
+ return typeof value === "object" && value !== null && !Array.isArray(value);
3
+ }
4
+
5
+ /**
6
+ * Resolve standalone config-file shapes into the core Remnic config record.
7
+ *
8
+ * Legacy files store core keys at the top level. During migration, a partial
9
+ * `remnic` or `engram` block may coexist with those keys. Flat top-level core
10
+ * keys remain fallbacks, while the selected nested block wins on key conflicts.
11
+ * Host-only blocks are never forwarded into core parsing.
12
+ */
13
+ export function resolveRemnicConfigRecord(raw: unknown): Record<string, unknown> {
14
+ if (!isRecord(raw)) {
15
+ throw new Error("Top-level Remnic config must be a JSON object");
16
+ }
17
+
18
+ const { remnic, engram, server: _server, ...flat } = raw;
19
+ const nested = remnic ?? engram;
20
+ if (nested !== undefined && !isRecord(nested)) {
21
+ throw new Error("Nested remnic/engram config must be a JSON object");
22
+ }
23
+
24
+ return nested === undefined ? flat : { ...flat, ...nested };
25
+ }
package/src/index.ts CHANGED
@@ -27,6 +27,7 @@ export { resolvePluginEntry, type PluginEntryResolverOptions } from "./plugin-en
27
27
  // ---------------------------------------------------------------------------
28
28
 
29
29
  export { parseConfig, isOpenaiApiKeyDisabled, resolveEnvVars } from "./config.js";
30
+ export { resolveRemnicConfigRecord } from "./config-record.js";
30
31
  export {
31
32
  parseFlexibleIsoTimestamp,
32
33
  parseIsoOffsetTimestamp,
@@ -28,7 +28,15 @@ export function selfDeps<T extends object>(self: object): T {
28
28
  return new Proxy(Object.create(null) as object, {
29
29
  get(_target, prop) {
30
30
  const value = source[prop as string];
31
- return typeof value === "function"
31
+ // Bind ONLY prototype/concise methods (they have no own `prototype`
32
+ // property). Class-valued deps (e.g. `storageManagerClass`, used by
33
+ // the storage decomposition to reach shared static caches) must pass
34
+ // through unbound: Function.prototype.bind returns a bound function
35
+ // WITHOUT the original's own static properties, which silently
36
+ // strips the class's statics. Plain data and arrows also pass
37
+ // through unchanged (arrows ignore bind receivers anyway).
38
+ return typeof value === "function" &&
39
+ !Object.prototype.hasOwnProperty.call(value, "prototype")
32
40
  ? (value as (...args: unknown[]) => unknown).bind(self)
33
41
  : value;
34
42
  },
@@ -33,6 +33,8 @@ import {
33
33
  } from "../storage.js";
34
34
 
35
35
  export interface EntityStoreDeps {
36
+ /** Live class object of the host instance — shared static caches (see storage.ts storageManagerClass). */
37
+ readonly storageManagerClass: typeof StorageManager;
36
38
  readonly baseDir: string;
37
39
  bumpMemoryStatusVersion(): void;
38
40
  ensureDirectories(): Promise<void>;
@@ -341,7 +343,7 @@ export class EntityStore {
341
343
  if (
342
344
  useDefaultLimits &&
343
345
  this.deps.knowledgeIndexCache &&
344
- Date.now() - this.deps.knowledgeIndexCache.builtAt < StorageManager.KNOWLEDGE_INDEX_CACHE_TTL_MS
346
+ Date.now() - this.deps.knowledgeIndexCache.builtAt < this.deps.storageManagerClass.KNOWLEDGE_INDEX_CACHE_TTL_MS
345
347
  ) {
346
348
  return { result: this.deps.knowledgeIndexCache.result, cached: true };
347
349
  }
@@ -356,7 +358,7 @@ export class EntityStore {
356
358
  const scored: ScoredEntity[] = entities.map((e) => ({
357
359
  name: e.name,
358
360
  type: e.type,
359
- score: StorageManager.scoreEntity(e, now),
361
+ score: this.deps.storageManagerClass.scoreEntity(e, now),
360
362
  factCount: e.facts.length,
361
363
  summary: e.synthesis ?? e.summary,
362
364
  topRelationships: e.relationships.slice(0, 3).map((r) => r.target),