@remnic/core 9.3.760 → 9.3.761

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 (128) hide show
  1. package/dist/access-admin-ops-surface.d.ts +3 -3
  2. package/dist/access-admin-ops-surface.js +7 -7
  3. package/dist/access-boundary.d.ts +3 -3
  4. package/dist/access-boundary.js +8 -8
  5. package/dist/access-cli.js +28 -28
  6. package/dist/access-http.d.ts +3 -3
  7. package/dist/access-http.js +12 -12
  8. package/dist/access-identity-continuity-surface.d.ts +2 -2
  9. package/dist/access-identity-continuity-surface.js +7 -7
  10. package/dist/access-lcm-surface.d.ts +3 -3
  11. package/dist/access-lcm-surface.js +7 -7
  12. package/dist/access-mcp.d.ts +3 -3
  13. package/dist/access-mcp.js +11 -11
  14. package/dist/access-observe-write-surface.d.ts +3 -3
  15. package/dist/access-observe-write-surface.js +7 -7
  16. package/dist/access-operations-batch.js +9 -9
  17. package/dist/access-operations.d.ts +7 -7
  18. package/dist/access-operations.js +10 -10
  19. package/dist/access-recall-surface.d.ts +3 -3
  20. package/dist/access-recall-surface.js +7 -7
  21. package/dist/access-schema.d.ts +68 -68
  22. package/dist/{access-service-BW-gb3DL.d.ts → access-service-CaWJP_f6.d.ts} +2 -2
  23. package/dist/access-service.d.ts +3 -3
  24. package/dist/access-service.js +7 -7
  25. package/dist/access-surface-catalog.d.ts +3 -3
  26. package/dist/bootstrap.d.ts +2 -2
  27. package/dist/briefing.js +2 -2
  28. package/dist/{catalog-DaKAFbSJ.d.ts → catalog-bflYNWsM.d.ts} +8 -4
  29. package/dist/causal-consolidation.js +3 -3
  30. package/dist/{chunk-FYJWEGYP.js → chunk-2B3BTQN4.js} +2 -2
  31. package/dist/{chunk-IZLGHKWA.js → chunk-3CBSKDRL.js} +7 -7
  32. package/dist/{chunk-YP23FQPT.js → chunk-3DAIQSVS.js} +80 -36
  33. package/dist/chunk-3DAIQSVS.js.map +1 -0
  34. package/dist/{chunk-OLEBPUZ7.js → chunk-4WOXD56B.js} +5 -5
  35. package/dist/{chunk-QUGPXPFJ.js → chunk-5AZQZFJG.js} +5 -5
  36. package/dist/{chunk-DTSOB2YF.js → chunk-6S2C5FQ4.js} +2 -2
  37. package/dist/{chunk-WIXQ3F5P.js → chunk-742MWWVL.js} +2 -2
  38. package/dist/{chunk-W3M34XT4.js → chunk-BAVVI5GP.js} +2 -2
  39. package/dist/{chunk-QOM3F6YW.js → chunk-CFHDI5CV.js} +5 -5
  40. package/dist/{chunk-IOZZG75J.js → chunk-DUU4VLOW.js} +2 -2
  41. package/dist/{chunk-ZFXCQPNO.js → chunk-EGGE52UU.js} +2 -2
  42. package/dist/chunk-EGGE52UU.js.map +1 -0
  43. package/dist/{chunk-LLVKDFNU.js → chunk-GYJESQS5.js} +2 -2
  44. package/dist/{chunk-EGQ3AVZV.js → chunk-HHCMZEUC.js} +3 -3
  45. package/dist/{chunk-6CUUFFU7.js → chunk-HP23UD6W.js} +131 -39
  46. package/dist/chunk-HP23UD6W.js.map +1 -0
  47. package/dist/{chunk-XQT5GSWU.js → chunk-ICVNVSKN.js} +2 -2
  48. package/dist/{chunk-2XE4F3VZ.js → chunk-IRFHFRHP.js} +12 -12
  49. package/dist/{chunk-ILVF6TIY.js → chunk-IV4INTAU.js} +2 -2
  50. package/dist/{chunk-AZSSKOG6.js → chunk-JYH3XYWM.js} +3 -3
  51. package/dist/{chunk-3JBW3GHN.js → chunk-LG2MCUBC.js} +2 -2
  52. package/dist/{chunk-SLAZZXBU.js → chunk-NPZTEHR7.js} +2 -2
  53. package/dist/{chunk-PKRRBRY2.js → chunk-OCPVA4TH.js} +2 -2
  54. package/dist/{chunk-M2AAYJVI.js → chunk-P7N2DQLC.js} +4 -4
  55. package/dist/{chunk-SN2EWIAI.js → chunk-P7UA66OG.js} +2 -2
  56. package/dist/{chunk-SMLMH7S5.js → chunk-W4ADKEIY.js} +16 -16
  57. package/dist/{chunk-P26O6R3Q.js → chunk-XDFWMY4X.js} +3 -3
  58. package/dist/{chunk-QQJMVF6P.js → chunk-Y3XEN5TL.js} +3 -3
  59. package/dist/{chunk-ZEQVS6AZ.js → chunk-YU4CLTZY.js} +2 -2
  60. package/dist/{chunk-7HWOEYHW.js → chunk-ZAIU7ZEA.js} +2 -2
  61. package/dist/{cli-D551dnva.d.ts → cli-CvWpIbMD.d.ts} +2 -2
  62. package/dist/cli.d.ts +4 -4
  63. package/dist/cli.js +22 -22
  64. package/dist/compounding/engine.js +2 -2
  65. package/dist/connectors/codex-materialize-runner.js +2 -2
  66. package/dist/connectors/index.js +2 -2
  67. package/dist/entity-retrieval.js +2 -2
  68. package/dist/explicit-capture.d.ts +2 -2
  69. package/dist/index.d.ts +5 -5
  70. package/dist/index.js +28 -28
  71. package/dist/maintenance/memory-governance.js +2 -2
  72. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +2 -2
  73. package/dist/maintenance/rebuild-memory-projection.js +3 -3
  74. package/dist/mcp-memory-inspector-app.d.ts +3 -3
  75. package/dist/namespaces/migrate.d.ts +1 -1
  76. package/dist/namespaces/migrate.js +5 -5
  77. package/dist/namespaces/search.js +2 -2
  78. package/dist/namespaces/storage.d.ts +1 -1
  79. package/dist/namespaces/storage.js +3 -3
  80. package/dist/operator-toolkit.js +9 -9
  81. package/dist/orchestration/maintenance.d.ts +1 -1
  82. package/dist/orchestration/maintenance.js +6 -6
  83. package/dist/{orchestrator-BnM187cb.d.ts → orchestrator-C04Q4Zao.d.ts} +1 -1
  84. package/dist/orchestrator.d.ts +2 -2
  85. package/dist/orchestrator.js +28 -28
  86. package/dist/schemas.d.ts +62 -62
  87. package/dist/semantic-consolidation.js +3 -3
  88. package/dist/semantic-rule-promotion.js +2 -2
  89. package/dist/semantic-rule-verifier.js +2 -2
  90. package/dist/shared-context/manager.d.ts +8 -8
  91. package/dist/storage.js +1 -1
  92. package/dist/transfer/types.d.ts +66 -66
  93. package/dist/verified-recall.js +2 -2
  94. package/package.json +2 -2
  95. package/src/namespaces/catalog.test.ts +133 -1
  96. package/src/namespaces/catalog.ts +163 -48
  97. package/src/namespaces/identity.ts +2 -2
  98. package/src/storage/secure-line-reader.ts +79 -0
  99. package/src/storage-memory-lifecycle-ledger.test.ts +130 -0
  100. package/src/storage.ts +16 -33
  101. package/dist/chunk-6CUUFFU7.js.map +0 -1
  102. package/dist/chunk-YP23FQPT.js.map +0 -1
  103. package/dist/chunk-ZFXCQPNO.js.map +0 -1
  104. /package/dist/{chunk-FYJWEGYP.js.map → chunk-2B3BTQN4.js.map} +0 -0
  105. /package/dist/{chunk-IZLGHKWA.js.map → chunk-3CBSKDRL.js.map} +0 -0
  106. /package/dist/{chunk-OLEBPUZ7.js.map → chunk-4WOXD56B.js.map} +0 -0
  107. /package/dist/{chunk-QUGPXPFJ.js.map → chunk-5AZQZFJG.js.map} +0 -0
  108. /package/dist/{chunk-DTSOB2YF.js.map → chunk-6S2C5FQ4.js.map} +0 -0
  109. /package/dist/{chunk-WIXQ3F5P.js.map → chunk-742MWWVL.js.map} +0 -0
  110. /package/dist/{chunk-W3M34XT4.js.map → chunk-BAVVI5GP.js.map} +0 -0
  111. /package/dist/{chunk-QOM3F6YW.js.map → chunk-CFHDI5CV.js.map} +0 -0
  112. /package/dist/{chunk-IOZZG75J.js.map → chunk-DUU4VLOW.js.map} +0 -0
  113. /package/dist/{chunk-LLVKDFNU.js.map → chunk-GYJESQS5.js.map} +0 -0
  114. /package/dist/{chunk-EGQ3AVZV.js.map → chunk-HHCMZEUC.js.map} +0 -0
  115. /package/dist/{chunk-XQT5GSWU.js.map → chunk-ICVNVSKN.js.map} +0 -0
  116. /package/dist/{chunk-2XE4F3VZ.js.map → chunk-IRFHFRHP.js.map} +0 -0
  117. /package/dist/{chunk-ILVF6TIY.js.map → chunk-IV4INTAU.js.map} +0 -0
  118. /package/dist/{chunk-AZSSKOG6.js.map → chunk-JYH3XYWM.js.map} +0 -0
  119. /package/dist/{chunk-3JBW3GHN.js.map → chunk-LG2MCUBC.js.map} +0 -0
  120. /package/dist/{chunk-SLAZZXBU.js.map → chunk-NPZTEHR7.js.map} +0 -0
  121. /package/dist/{chunk-PKRRBRY2.js.map → chunk-OCPVA4TH.js.map} +0 -0
  122. /package/dist/{chunk-M2AAYJVI.js.map → chunk-P7N2DQLC.js.map} +0 -0
  123. /package/dist/{chunk-SN2EWIAI.js.map → chunk-P7UA66OG.js.map} +0 -0
  124. /package/dist/{chunk-SMLMH7S5.js.map → chunk-W4ADKEIY.js.map} +0 -0
  125. /package/dist/{chunk-P26O6R3Q.js.map → chunk-XDFWMY4X.js.map} +0 -0
  126. /package/dist/{chunk-QQJMVF6P.js.map → chunk-Y3XEN5TL.js.map} +0 -0
  127. /package/dist/{chunk-ZEQVS6AZ.js.map → chunk-YU4CLTZY.js.map} +0 -0
  128. /package/dist/{chunk-7HWOEYHW.js.map → chunk-ZAIU7ZEA.js.map} +0 -0
@@ -1,10 +1,10 @@
1
- export { A as AccessProfilingReportRequest, a as AccessProfilingReportResponse, C as CodingScopedWriteInput, N as ENGRAM_ACCESS_WRITE_SCHEMA_VERSION, O as EngramAccessActionConfidenceRequest, Q as EngramAccessActionConfidenceResponse, k as EngramAccessBriefingRequest, l as EngramAccessBriefingResponse, b as EngramAccessCapsuleListResponse, R as EngramAccessDaySummaryRequest, S as EngramAccessEntityListResponse, T as EngramAccessEntityResponse, U as EngramAccessEntitySummary, V as EngramAccessHealthResponse, G as EngramAccessInputError, W as EngramAccessLcmCompactionFlushRequest, X as EngramAccessLcmCompactionFlushResponse, Y as EngramAccessLcmCompactionRecordRequest, Z as EngramAccessLcmCompactionRecordResponse, d as EngramAccessLcmSearchRequest, e as EngramAccessLcmSearchResponse, _ as EngramAccessLcmStatusResponse, $ as EngramAccessMaintenanceResponse, a0 as EngramAccessMemoryBrowseRequest, a1 as EngramAccessMemoryBrowseResponse, a2 as EngramAccessMemoryRecord, u as EngramAccessMemoryResponse, i as EngramAccessMemoryStoreRequest, y as EngramAccessMemorySummary, a3 as EngramAccessObserveMessage, n as EngramAccessObserveRequest, o as EngramAccessObserveResponse, a4 as EngramAccessOfflineSyncApplyFileContentRequest, a5 as EngramAccessOfflineSyncApplyFileContentResponse, a6 as EngramAccessOfflineSyncApplyRequest, a7 as EngramAccessOfflineSyncApplyResponse, a8 as EngramAccessOfflineSyncFileContentRequest, a9 as EngramAccessOfflineSyncFileContentResponse, aa as EngramAccessOfflineSyncFilesRequest, ab as EngramAccessOfflineSyncFilesResponse, ac as EngramAccessOfflineSyncSnapshotRequest, ad as EngramAccessOfflineSyncSnapshotResponse, ae as EngramAccessOfflineSyncSnapshotStreamResponse, h as EngramAccessQmdCollectionState, g as EngramAccessQmdHealthResponse, af as EngramAccessQualityResponse, ag as EngramAccessRecallExplainRequest, ah as EngramAccessRecallExplainResponse, B as EngramAccessRecallRequest, x as EngramAccessRecallResponse, ai as EngramAccessReviewDispositionRequest, aj as EngramAccessReviewDispositionResponse, E as EngramAccessReviewQueueResponse, ak as EngramAccessScopeDebug, F as EngramAccessService, z as EngramAccessSetCodingContextRequest, j as EngramAccessSuggestionSubmitRequest, al as EngramAccessTimelineResponse, am as EngramAccessTrustZoneBrowseRequest, an as EngramAccessTrustZoneBrowseResponse, ao as EngramAccessTrustZoneDemoSeedRequest, ap as EngramAccessTrustZoneDemoSeedResponse, aq as EngramAccessTrustZonePromoteRequest, ar as EngramAccessTrustZonePromoteResponse, as as EngramAccessTrustZoneRecordSummary, at as EngramAccessTrustZoneStatusResponse, au as EngramAccessWriteEnvelope, m as EngramAccessWriteResponse, f as MemoryScopePlan, av as buildProjectedGovernanceProposedActions, aw as hasGroupedGovernanceActions, ax as shapeMemorySummary } from './access-service-BW-gb3DL.js';
1
+ export { A as AccessProfilingReportRequest, a as AccessProfilingReportResponse, C as CodingScopedWriteInput, N as ENGRAM_ACCESS_WRITE_SCHEMA_VERSION, O as EngramAccessActionConfidenceRequest, Q as EngramAccessActionConfidenceResponse, k as EngramAccessBriefingRequest, l as EngramAccessBriefingResponse, b as EngramAccessCapsuleListResponse, R as EngramAccessDaySummaryRequest, S as EngramAccessEntityListResponse, T as EngramAccessEntityResponse, U as EngramAccessEntitySummary, V as EngramAccessHealthResponse, G as EngramAccessInputError, W as EngramAccessLcmCompactionFlushRequest, X as EngramAccessLcmCompactionFlushResponse, Y as EngramAccessLcmCompactionRecordRequest, Z as EngramAccessLcmCompactionRecordResponse, d as EngramAccessLcmSearchRequest, e as EngramAccessLcmSearchResponse, _ as EngramAccessLcmStatusResponse, $ as EngramAccessMaintenanceResponse, a0 as EngramAccessMemoryBrowseRequest, a1 as EngramAccessMemoryBrowseResponse, a2 as EngramAccessMemoryRecord, u as EngramAccessMemoryResponse, i as EngramAccessMemoryStoreRequest, y as EngramAccessMemorySummary, a3 as EngramAccessObserveMessage, n as EngramAccessObserveRequest, o as EngramAccessObserveResponse, a4 as EngramAccessOfflineSyncApplyFileContentRequest, a5 as EngramAccessOfflineSyncApplyFileContentResponse, a6 as EngramAccessOfflineSyncApplyRequest, a7 as EngramAccessOfflineSyncApplyResponse, a8 as EngramAccessOfflineSyncFileContentRequest, a9 as EngramAccessOfflineSyncFileContentResponse, aa as EngramAccessOfflineSyncFilesRequest, ab as EngramAccessOfflineSyncFilesResponse, ac as EngramAccessOfflineSyncSnapshotRequest, ad as EngramAccessOfflineSyncSnapshotResponse, ae as EngramAccessOfflineSyncSnapshotStreamResponse, h as EngramAccessQmdCollectionState, g as EngramAccessQmdHealthResponse, af as EngramAccessQualityResponse, ag as EngramAccessRecallExplainRequest, ah as EngramAccessRecallExplainResponse, B as EngramAccessRecallRequest, x as EngramAccessRecallResponse, ai as EngramAccessReviewDispositionRequest, aj as EngramAccessReviewDispositionResponse, E as EngramAccessReviewQueueResponse, ak as EngramAccessScopeDebug, F as EngramAccessService, z as EngramAccessSetCodingContextRequest, j as EngramAccessSuggestionSubmitRequest, al as EngramAccessTimelineResponse, am as EngramAccessTrustZoneBrowseRequest, an as EngramAccessTrustZoneBrowseResponse, ao as EngramAccessTrustZoneDemoSeedRequest, ap as EngramAccessTrustZoneDemoSeedResponse, aq as EngramAccessTrustZonePromoteRequest, ar as EngramAccessTrustZonePromoteResponse, as as EngramAccessTrustZoneRecordSummary, at as EngramAccessTrustZoneStatusResponse, au as EngramAccessWriteEnvelope, m as EngramAccessWriteResponse, f as MemoryScopePlan, av as buildProjectedGovernanceProposedActions, aw as hasGroupedGovernanceActions, ax as shapeMemorySummary } from './access-service-CaWJP_f6.js';
2
2
  import './storage.js';
3
3
  import './types-B1VHaf2w.js';
4
4
  import './recall-explain-renderer.js';
5
5
  import './types-D1iBqhJA.js';
6
6
  import './recall-audit-anomaly.js';
7
- import './orchestrator-BnM187cb.js';
7
+ import './orchestrator-C04Q4Zao.js';
8
8
  import './explicit-capture.js';
9
9
  import './cross-namespace-budget.js';
10
10
  import './maintenance/memory-governance.js';
@@ -23,7 +23,7 @@ import './transfer/capsule-export.js';
23
23
  import './capsule-cli.js';
24
24
  import './offline-sync.js';
25
25
  import './action-confidence.js';
26
- import './catalog-DaKAFbSJ.js';
26
+ import './catalog-bflYNWsM.js';
27
27
  import './page-versioning.js';
28
28
  import './consolidation-operator.js';
29
29
  import './memory-projection-store.js';
@@ -5,7 +5,7 @@ import {
5
5
  buildProjectedGovernanceProposedActions,
6
6
  hasGroupedGovernanceActions,
7
7
  shapeMemorySummary
8
- } from "./chunk-IZLGHKWA.js";
8
+ } from "./chunk-3CBSKDRL.js";
9
9
  import "./chunk-GDASG7NC.js";
10
10
  import "./chunk-GDB4J2H3.js";
11
11
  import "./chunk-M5QKGHCR.js";
@@ -21,8 +21,8 @@ import "./chunk-H7XKCNR6.js";
21
21
  import "./chunk-2KK5WNQB.js";
22
22
  import "./chunk-SOBJ6NEY.js";
23
23
  import "./chunk-6MMONPHM.js";
24
- import "./chunk-W3M34XT4.js";
25
- import "./chunk-XQT5GSWU.js";
24
+ import "./chunk-BAVVI5GP.js";
25
+ import "./chunk-ICVNVSKN.js";
26
26
  import "./chunk-3QLPBCFG.js";
27
27
  import "./chunk-CYEPCZN5.js";
28
28
  import "./chunk-LQ6JI4VH.js";
@@ -32,8 +32,8 @@ import "./chunk-5CEJH5ZN.js";
32
32
  import "./chunk-WRFKZEO6.js";
33
33
  import "./chunk-AER6MT24.js";
34
34
  import "./chunk-CINZGPSJ.js";
35
- import "./chunk-ZFXCQPNO.js";
36
- import "./chunk-SN2EWIAI.js";
35
+ import "./chunk-EGGE52UU.js";
36
+ import "./chunk-P7UA66OG.js";
37
37
  import "./chunk-DCWIQFNA.js";
38
38
  import "./chunk-XBZQRZ6G.js";
39
39
  import "./chunk-KCQA46NR.js";
@@ -56,8 +56,8 @@ import "./chunk-EHQ5HO5T.js";
56
56
  import "./chunk-2LSZVONP.js";
57
57
  import "./chunk-DEUNUKTD.js";
58
58
  import "./chunk-SQNED75R.js";
59
- import "./chunk-DTSOB2YF.js";
60
- import "./chunk-YP23FQPT.js";
59
+ import "./chunk-6S2C5FQ4.js";
60
+ import "./chunk-3DAIQSVS.js";
61
61
  import "./chunk-M7XQSUBB.js";
62
62
  import "./chunk-L2B3EE7B.js";
63
63
  import "./chunk-5UZXUTVO.js";
@@ -1,11 +1,11 @@
1
1
  import { OperationName } from './access-boundary.js';
2
2
  import 'zod';
3
- import './access-service-BW-gb3DL.js';
4
- import './catalog-DaKAFbSJ.js';
3
+ import './access-service-CaWJP_f6.js';
4
+ import './catalog-bflYNWsM.js';
5
5
  import './types-D1iBqhJA.js';
6
6
  import './types-gb_SNtjR.js';
7
7
  import './message-parts/index.js';
8
- import './orchestrator-BnM187cb.js';
8
+ import './orchestrator-C04Q4Zao.js';
9
9
  import './briefing.js';
10
10
  import './storage.js';
11
11
  import './page-versioning.js';
@@ -1,5 +1,5 @@
1
1
  import { P as PluginConfig } from './types-D1iBqhJA.js';
2
- import { O as Orchestrator } from './orchestrator-BnM187cb.js';
2
+ import { O as Orchestrator } from './orchestrator-C04Q4Zao.js';
3
3
  import './types-gb_SNtjR.js';
4
4
  import './message-parts/index.js';
5
5
  import './briefing.js';
@@ -23,7 +23,7 @@ import './session-integrity.js';
23
23
  import './summarizer.js';
24
24
  import './orchestration/maintenance.js';
25
25
  import './namespaces/search.js';
26
- import './catalog-DaKAFbSJ.js';
26
+ import './catalog-bflYNWsM.js';
27
27
  import './recall-state.js';
28
28
  import './compounding/engine.js';
29
29
  import './shared-context/manager.js';
package/dist/briefing.js CHANGED
@@ -17,8 +17,8 @@ import {
17
17
  renderBriefingMarkdown,
18
18
  resolveBriefingSaveDir,
19
19
  validateBriefingFormat
20
- } from "./chunk-DTSOB2YF.js";
21
- import "./chunk-YP23FQPT.js";
20
+ } from "./chunk-6S2C5FQ4.js";
21
+ import "./chunk-3DAIQSVS.js";
22
22
  import "./chunk-M7XQSUBB.js";
23
23
  import "./chunk-L2B3EE7B.js";
24
24
  import "./chunk-5UZXUTVO.js";
@@ -95,7 +95,10 @@ declare class NamespaceCatalog {
95
95
  private readonly catalogPath;
96
96
  private readonly rebuildLockPath;
97
97
  private readonly criticalSection;
98
+ private compactedCache;
98
99
  protected onTouchCriticalSectionForTest?: () => Promise<void>;
100
+ protected onCatalogReadForTest?: () => void;
101
+ protected onAfterCatalogAppendForTest?: () => Promise<void>;
99
102
  protected onRebuildBeforeRenameForTest?: () => Promise<void>;
100
103
  protected onRebuildAfterScanForTest?: () => Promise<void>;
101
104
  protected onBeforeBreakStaleUnlinkForTest?: () => Promise<void>;
@@ -394,12 +397,11 @@ declare class NamespaceCatalog {
394
397
  private mergeForRebuild;
395
398
  /** Load the JSONL log and fold it into current state (last-record-wins). */
396
399
  private loadCompacted;
400
+ private cloneCompactedRecords;
397
401
  /**
398
402
  * Serialize an arbitrary read-modify-write critical section through the single
399
- * per-instance chain. Every catalog mutation (touch read+merge+append, full
400
- * rewrite) runs through this so they are mutually exclusive: a touch always
401
- * reads the latest persisted state before appending, and a rebuild rewrite
402
- * cannot interleave with a touch's append.
403
+ * per-instance chain. Every catalog mutation and cached catalog read runs
404
+ * through this queue, so cache validation and updates cannot race in-process.
403
405
  *
404
406
  * Issue #1524 adoption: delegates to the shared `MutationSerializer` (stored
405
407
  * as `criticalSection`). The util owns the rejection-recovery invariant
@@ -425,6 +427,8 @@ declare class NamespaceCatalog {
425
427
  * chain from within a held turn would deadlock.
426
428
  */
427
429
  private rewriteUnchained;
430
+ private refreshCacheAfterAppend;
431
+ private refreshCacheIdentity;
428
432
  }
429
433
 
430
434
  export { NamespaceCatalog as N, type NamespaceRecord as a, type NamespaceKind as b, type NamespaceCatalogFilter as c, type NamespaceCatalogRebuildResult as d, type NamespaceCatalogSkippedRoot as e, type NamespaceDiscoverySource as f, type NamespaceTouchMetadata as g };
@@ -4,10 +4,10 @@ import {
4
4
  } from "./chunk-ORAK3LNZ.js";
5
5
  import {
6
6
  buildExtensionsBlockForConsolidation
7
- } from "./chunk-ILVF6TIY.js";
7
+ } from "./chunk-IV4INTAU.js";
8
8
  import {
9
9
  runPostConsolidationMaterialize
10
- } from "./chunk-WIXQ3F5P.js";
10
+ } from "./chunk-742MWWVL.js";
11
11
  import "./chunk-UUH4YQOF.js";
12
12
  import "./chunk-JLNBQWZ2.js";
13
13
  import "./chunk-3UXOZBHV.js";
@@ -15,7 +15,7 @@ import "./chunk-7FL4CNPV.js";
15
15
  import {
16
16
  resolveCausalTrajectoryStoreDir
17
17
  } from "./chunk-SQNED75R.js";
18
- import "./chunk-YP23FQPT.js";
18
+ import "./chunk-3DAIQSVS.js";
19
19
  import "./chunk-M7XQSUBB.js";
20
20
  import "./chunk-L2B3EE7B.js";
21
21
  import "./chunk-5UZXUTVO.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-7FL4CNPV.js";
4
4
  import {
5
5
  StorageManager
6
- } from "./chunk-YP23FQPT.js";
6
+ } from "./chunk-3DAIQSVS.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-FYJWEGYP.js.map
110
+ //# sourceMappingURL=chunk-2B3BTQN4.js.map
@@ -50,13 +50,13 @@ import {
50
50
  resolveScopeProfilePlan,
51
51
  resolveWritableNamespaceValue,
52
52
  sanitizeFragment
53
- } from "./chunk-W3M34XT4.js";
53
+ } from "./chunk-BAVVI5GP.js";
54
54
  import {
55
55
  namespaceCollectionName
56
- } from "./chunk-XQT5GSWU.js";
56
+ } from "./chunk-ICVNVSKN.js";
57
57
  import {
58
58
  namespaceIdentityFromToken
59
- } from "./chunk-ZFXCQPNO.js";
59
+ } from "./chunk-EGGE52UU.js";
60
60
  import {
61
61
  buildProposedActions,
62
62
  buildQualityScore,
@@ -64,7 +64,7 @@ import {
64
64
  listMemoryGovernanceRuns,
65
65
  readMemoryGovernanceRunArtifact,
66
66
  runMemoryGovernance
67
- } from "./chunk-SN2EWIAI.js";
67
+ } from "./chunk-P7UA66OG.js";
68
68
  import {
69
69
  recordMemoryOutcome
70
70
  } from "./chunk-EIR5VLIH.js";
@@ -105,11 +105,11 @@ import {
105
105
  enqueuePassiveCorrectionNotification,
106
106
  parseBriefingFocus,
107
107
  parseBriefingWindow
108
- } from "./chunk-DTSOB2YF.js";
108
+ } from "./chunk-6S2C5FQ4.js";
109
109
  import {
110
110
  parseEntityFile,
111
111
  selfDeps
112
- } from "./chunk-YP23FQPT.js";
112
+ } from "./chunk-3DAIQSVS.js";
113
113
  import {
114
114
  supersessionKeysForFact
115
115
  } from "./chunk-TKZ3AL5V.js";
@@ -10918,4 +10918,4 @@ export {
10918
10918
  EngramAccessService,
10919
10919
  AccessAdminOpsSurface
10920
10920
  };
10921
- //# sourceMappingURL=chunk-IZLGHKWA.js.map
10921
+ //# sourceMappingURL=chunk-3CBSKDRL.js.map
@@ -112,8 +112,8 @@ import {
112
112
  } from "./chunk-VS2IYZRU.js";
113
113
 
114
114
  // src/storage.ts
115
- import { access, readdir as readdir4, readFile, stat as stat2, writeFile, mkdir, unlink as unlink2, appendFile, open } from "fs/promises";
116
- import { appendFileSync, createReadStream, mkdirSync, readFileSync, statSync } from "fs";
115
+ import { access, readdir as readdir4, readFile, stat as stat2, writeFile, mkdir, unlink as unlink2, appendFile, open as open2 } from "fs/promises";
116
+ import { appendFileSync, createReadStream as createReadStream2, mkdirSync, readFileSync, statSync } from "fs";
117
117
  import { createHash } from "crypto";
118
118
  import path4 from "path";
119
119
 
@@ -563,6 +563,64 @@ var MemoryReadStore = class {
563
563
  }
564
564
  };
565
565
 
566
+ // src/storage/secure-line-reader.ts
567
+ import { createReadStream } from "fs";
568
+ import { open } from "fs/promises";
569
+ import { createInterface } from "readline";
570
+ async function* readMaybeEncryptedLines(filePath, readEncryptedFile) {
571
+ const file = await open(filePath, "r");
572
+ const header = Buffer.alloc(MAGIC_HEADER_SIZE);
573
+ try {
574
+ const { bytesRead } = await file.read(header, 0, header.length, 0);
575
+ if (isEncryptedFile(header.subarray(0, bytesRead))) {
576
+ yield* (await readEncryptedFile()).split("\n");
577
+ return;
578
+ }
579
+ const input = createReadStream(filePath, {
580
+ autoClose: false,
581
+ encoding: "utf8",
582
+ fd: file.fd,
583
+ start: 0
584
+ });
585
+ const lines = createInterface({ input, crlfDelay: Infinity });
586
+ try {
587
+ for await (const line of lines) yield line;
588
+ } finally {
589
+ lines.close();
590
+ }
591
+ } finally {
592
+ await file.close();
593
+ }
594
+ }
595
+ async function readMemoryActionEventRowsFromLines(lines, limit) {
596
+ const out = [];
597
+ let writeIndex = 0;
598
+ let lineNumber = 0;
599
+ for await (const row of lines) {
600
+ lineNumber += 1;
601
+ const line = row.trim();
602
+ if (!line) continue;
603
+ try {
604
+ const parsed = JSON.parse(line);
605
+ const outcome = parsed.outcome === "applied" || parsed.outcome === "skipped" || parsed.outcome === "failed" ? parsed.outcome : null;
606
+ if (typeof parsed.timestamp === "string" && typeof parsed.action === "string" && outcome !== null) {
607
+ const entry = {
608
+ line: lineNumber,
609
+ event: { ...parsed, outcome }
610
+ };
611
+ if (out.length < limit) {
612
+ out.push(entry);
613
+ } else {
614
+ out[writeIndex] = entry;
615
+ writeIndex = (writeIndex + 1) % limit;
616
+ }
617
+ }
618
+ } catch {
619
+ }
620
+ }
621
+ return writeIndex === 0 ? out : [...out.slice(writeIndex), ...out.slice(0, writeIndex)];
622
+ }
623
+
566
624
  // src/orchestration/self-deps.ts
567
625
  function selfDeps(self) {
568
626
  const source = self;
@@ -1272,15 +1330,15 @@ function citationTemplateLiteralParts(template) {
1272
1330
  const parts = [];
1273
1331
  let cursor = 0;
1274
1332
  while (cursor < template.length) {
1275
- const open2 = template.indexOf("{", cursor);
1276
- if (open2 === -1) {
1333
+ const open3 = template.indexOf("{", cursor);
1334
+ if (open3 === -1) {
1277
1335
  parts.push(template.slice(cursor));
1278
1336
  break;
1279
1337
  }
1280
- parts.push(template.slice(cursor, open2));
1281
- const close = template.indexOf("}", open2 + 1);
1338
+ parts.push(template.slice(cursor, open3));
1339
+ const close = template.indexOf("}", open3 + 1);
1282
1340
  if (close === -1) {
1283
- cursor = open2 + 1;
1341
+ cursor = open3 + 1;
1284
1342
  } else {
1285
1343
  cursor = close + 1;
1286
1344
  }
@@ -3274,7 +3332,7 @@ var StorageManager3 = class _StorageManager {
3274
3332
  } else {
3275
3333
  const hash = createHash("sha256");
3276
3334
  let bytes = 0;
3277
- for await (const rawChunk of createReadStream(target)) {
3335
+ for await (const rawChunk of createReadStream2(target)) {
3278
3336
  const chunk = Buffer.isBuffer(rawChunk) ? rawChunk : Buffer.from(rawChunk);
3279
3337
  hash.update(chunk);
3280
3338
  bytes += chunk.length;
@@ -3371,7 +3429,7 @@ var StorageManager3 = class _StorageManager {
3371
3429
  });
3372
3430
  }
3373
3431
  async offlineSyncFileIsEncrypted(filePath) {
3374
- const handle = await open(filePath, "r");
3432
+ const handle = await open2(filePath, "r");
3375
3433
  try {
3376
3434
  const header = Buffer.alloc(MAGIC_HEADER_SIZE);
3377
3435
  const { bytesRead } = await handle.read(header, 0, header.length, 0);
@@ -5040,30 +5098,15 @@ ${memory.content}
5040
5098
  }
5041
5099
  async readMemoryActionEventRows(limit = 200) {
5042
5100
  const cappedLimit = Math.max(0, Math.floor(limit));
5043
- if (cappedLimit === 0) return [];
5101
+ if (cappedLimit === 0 || Number.isNaN(cappedLimit)) return [];
5044
5102
  try {
5045
- const raw = await this.readStorageSecureFile(this.memoryActionsPath);
5046
- const out = [];
5047
- const lines = raw.split("\n");
5048
- for (let i = lines.length - 1; i >= 0 && out.length < cappedLimit; i -= 1) {
5049
- const line = lines[i]?.trim();
5050
- if (!line) continue;
5051
- try {
5052
- const parsed = JSON.parse(line);
5053
- const outcome = parsed.outcome === "applied" || parsed.outcome === "skipped" || parsed.outcome === "failed" ? parsed.outcome : null;
5054
- if (typeof parsed.timestamp === "string" && typeof parsed.action === "string" && outcome !== null) {
5055
- out.push({
5056
- line: i + 1,
5057
- event: {
5058
- ...parsed,
5059
- outcome
5060
- }
5061
- });
5062
- }
5063
- } catch {
5064
- }
5065
- }
5066
- return out.reverse();
5103
+ return await readMemoryActionEventRowsFromLines(
5104
+ readMaybeEncryptedLines(
5105
+ this.memoryActionsPath,
5106
+ () => this.readStorageSecureFile(this.memoryActionsPath)
5107
+ ),
5108
+ cappedLimit
5109
+ );
5067
5110
  } catch (err) {
5068
5111
  if (err instanceof SecureStoreLockedError) throw err;
5069
5112
  if (!isErrnoCode(err, "ENOENT")) throw err;
@@ -5072,10 +5115,11 @@ ${memory.content}
5072
5115
  }
5073
5116
  async readAllMemoryLifecycleEvents() {
5074
5117
  try {
5075
- const raw = await this.readStorageSecureFile(this.memoryLifecycleLedgerPath);
5076
5118
  const out = [];
5077
- const lines = raw.split("\n");
5078
- for (const line of lines) {
5119
+ for await (const line of readMaybeEncryptedLines(
5120
+ this.memoryLifecycleLedgerPath,
5121
+ () => this.readStorageSecureFile(this.memoryLifecycleLedgerPath)
5122
+ )) {
5079
5123
  const row = line.trim();
5080
5124
  if (!row) continue;
5081
5125
  try {
@@ -6095,4 +6139,4 @@ export {
6095
6139
  isValidBufferSurpriseEvent,
6096
6140
  StorageManager3 as StorageManager
6097
6141
  };
6098
- //# sourceMappingURL=chunk-YP23FQPT.js.map
6142
+ //# sourceMappingURL=chunk-3DAIQSVS.js.map