@remnic/core 9.3.769 → 9.3.771

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 (161) hide show
  1. package/dist/access-admin-ops-surface.js +34 -34
  2. package/dist/access-boundary.d.ts +2 -1
  3. package/dist/access-boundary.js +35 -35
  4. package/dist/access-cli.js +103 -100
  5. package/dist/access-cli.js.map +1 -1
  6. package/dist/access-errors.d.ts +5 -0
  7. package/dist/access-errors.js +8 -0
  8. package/dist/access-errors.js.map +1 -0
  9. package/dist/access-http.js +46 -43
  10. package/dist/access-identity-continuity-surface.js +34 -34
  11. package/dist/access-lcm-surface.js +34 -34
  12. package/dist/access-mcp-output-schemas.d.ts +20 -0
  13. package/dist/access-mcp-output-schemas.js +8 -0
  14. package/dist/access-mcp-output-schemas.js.map +1 -0
  15. package/dist/access-mcp.js +43 -40
  16. package/dist/access-observe-write-surface.js +34 -34
  17. package/dist/access-operations-batch.js +39 -37
  18. package/dist/access-operations.js +41 -39
  19. package/dist/access-recall-surface.js +34 -34
  20. package/dist/access-schema.js +3 -3
  21. package/dist/access-service.js +34 -34
  22. package/dist/access-surface-catalog.js +1 -0
  23. package/dist/access-surface-catalog.js.map +1 -1
  24. package/dist/active-recall.js +5 -5
  25. package/dist/adapters/index.js +4 -4
  26. package/dist/adapters/registry.js +2 -2
  27. package/dist/auto-sync-2SOUW4JW.js +1 -1
  28. package/dist/briefing.js +8 -8
  29. package/dist/causal-behavior.js +5 -5
  30. package/dist/causal-chain.js +3 -3
  31. package/dist/causal-consolidation.js +12 -12
  32. package/dist/causal-retrieval.js +3 -3
  33. package/dist/causal-trajectory.js +1 -1
  34. package/dist/{chunk-IGVKWKR2.js → chunk-27CQIO7T.js} +13 -13
  35. package/dist/{chunk-GLERZDM7.js → chunk-27TJRC2Y.js} +29 -7
  36. package/dist/chunk-27TJRC2Y.js.map +1 -0
  37. package/dist/{chunk-VKHZFF5P.js → chunk-44YXWE35.js} +2 -2
  38. package/dist/chunk-5RUE3GHQ.js +445 -0
  39. package/dist/chunk-5RUE3GHQ.js.map +1 -0
  40. package/dist/{chunk-R3K4CXPR.js → chunk-6QODJKOV.js} +2 -2
  41. package/dist/{chunk-ORAK3LNZ.js → chunk-6SHAUM5S.js} +5 -5
  42. package/dist/{chunk-2MR3MFQB.js → chunk-6Y4JTNX7.js} +2 -2
  43. package/dist/{chunk-CKNAVW34.js → chunk-7OSULYN2.js} +2 -2
  44. package/dist/{chunk-6T4LTI2F.js → chunk-7XH7VJN4.js} +4 -4
  45. package/dist/{chunk-JBPKEARU.js → chunk-AU7Q3LSC.js} +4 -4
  46. package/dist/{chunk-U5GFYMV7.js → chunk-BKTC7JCA.js} +3 -3
  47. package/dist/{chunk-AS2NRB45.js → chunk-BMANIB5B.js} +2 -2
  48. package/dist/{chunk-OAREUC7N.js → chunk-C2DDH5UN.js} +34 -34
  49. package/dist/{chunk-YDYC6PIS.js → chunk-CXBFYSQY.js} +2 -2
  50. package/dist/{chunk-DTTVX6EO.js → chunk-EGLUVV6B.js} +12 -12
  51. package/dist/{chunk-YNDLCWXS.js → chunk-EZ25VE3G.js} +4 -4
  52. package/dist/chunk-FTYDWKO6.js +101 -0
  53. package/dist/chunk-FTYDWKO6.js.map +1 -0
  54. package/dist/{chunk-SFNQDXXL.js → chunk-J2QYB2D5.js} +3 -3
  55. package/dist/{chunk-SQNED75R.js → chunk-KYC3RLYJ.js} +1 -1
  56. package/dist/{chunk-OX272PBW.js → chunk-L42FA4BU.js} +2 -2
  57. package/dist/{chunk-NDXJJKT2.js → chunk-LU7ATMRV.js} +2 -2
  58. package/dist/{chunk-V5RVMULT.js → chunk-LZ73Y56P.js} +10 -10
  59. package/dist/{chunk-IVFIYAIP.js → chunk-MJE4XV4A.js} +5 -5
  60. package/dist/{chunk-N4ZA2I7M.js → chunk-OTMAYEY5.js} +2 -2
  61. package/dist/{chunk-FLVL4L3L.js → chunk-OUXPVWTZ.js} +5 -5
  62. package/dist/{chunk-PA5ALD3S.js → chunk-OW4UXZNP.js} +129 -109
  63. package/dist/chunk-OW4UXZNP.js.map +1 -0
  64. package/dist/{chunk-4HYFKIGH.js → chunk-PSNMICC2.js} +4 -4
  65. package/dist/chunk-RANHFI3P.js +8 -0
  66. package/dist/chunk-RANHFI3P.js.map +1 -0
  67. package/dist/{chunk-CNXMWYLA.js → chunk-RFZW7NID.js} +165 -75
  68. package/dist/chunk-RFZW7NID.js.map +1 -0
  69. package/dist/{chunk-4JG55YV3.js → chunk-TECYUPFB.js} +4 -4
  70. package/dist/{chunk-EVXI2I6G.js → chunk-U3TRHUSJ.js} +64 -64
  71. package/dist/{chunk-SIPZ5UMK.js → chunk-U5HD7BB2.js} +27 -6
  72. package/dist/chunk-U5HD7BB2.js.map +1 -0
  73. package/dist/{chunk-X7HTU4HO.js → chunk-VFHDUFH5.js} +2 -2
  74. package/dist/{chunk-CVINPTKG.js → chunk-X5NUL5N4.js} +5 -5
  75. package/dist/{chunk-NFWTMM2M.js → chunk-XNWLD3RR.js} +2 -2
  76. package/dist/{chunk-QPTP6SKC.js → chunk-YOELDDBF.js} +2 -2
  77. package/dist/{chunk-2RLECZ6J.js → chunk-YRZMCPC5.js} +2 -2
  78. package/dist/{chunk-MSGPLITO.js → chunk-ZI3YYOOV.js} +2 -2
  79. package/dist/{chunk-MSGPLITO.js.map → chunk-ZI3YYOOV.js.map} +1 -1
  80. package/dist/cli.js +70 -67
  81. package/dist/compounding/engine.js +8 -8
  82. package/dist/config.js +2 -2
  83. package/dist/connectors/codex-materialize-runner.js +8 -8
  84. package/dist/connectors/index.js +8 -8
  85. package/dist/consolidation-provenance-check.js +2 -2
  86. package/dist/dashboard-runtime.js +2 -2
  87. package/dist/entity-retrieval.js +8 -8
  88. package/dist/extraction.js +1 -1
  89. package/dist/{forget-WYLR4ZFV.js → forget-OEE5OELK.js} +2 -2
  90. package/dist/index.js +175 -172
  91. package/dist/lcm/engine.js +4 -4
  92. package/dist/lcm/index.js +11 -11
  93. package/dist/maintenance/memory-governance.js +9 -9
  94. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +8 -8
  95. package/dist/maintenance/rebuild-memory-projection.js +10 -10
  96. package/dist/namespaces/migrate.js +13 -13
  97. package/dist/namespaces/search.js +4 -4
  98. package/dist/namespaces/storage.js +8 -8
  99. package/dist/operator-toolkit.js +19 -19
  100. package/dist/orchestration/maintenance.js +10 -10
  101. package/dist/orchestrator.js +103 -100
  102. package/dist/recall-timings.d.ts +26 -0
  103. package/dist/recall-timings.js +16 -0
  104. package/dist/recall-timings.js.map +1 -0
  105. package/dist/resume-bundles.js +3 -3
  106. package/dist/search/factory.js +3 -3
  107. package/dist/search/index.js +7 -7
  108. package/dist/semantic-consolidation.js +11 -11
  109. package/dist/semantic-rule-promotion.js +8 -8
  110. package/dist/semantic-rule-verifier.js +9 -9
  111. package/dist/storage.js +8 -8
  112. package/dist/transfer/autodetect.js +1 -1
  113. package/dist/transfer/backup.js +1 -1
  114. package/dist/transfer/capsule-export.js +2 -2
  115. package/dist/verified-recall.js +9 -9
  116. package/package.json +2 -2
  117. package/src/access-boundary.ts +2 -0
  118. package/src/access-errors.ts +2 -0
  119. package/src/access-http.ts +32 -1
  120. package/src/access-mcp-output-schemas.ts +472 -0
  121. package/src/access-mcp.ts +235 -143
  122. package/src/access-operations-batch.ts +19 -0
  123. package/src/access-surface-catalog.ts +1 -0
  124. package/src/orchestration/recall-internal.ts +21 -3
  125. package/src/recall-timings-access.test.ts +301 -0
  126. package/src/recall-timings.ts +141 -0
  127. package/dist/chunk-CNXMWYLA.js.map +0 -1
  128. package/dist/chunk-GLERZDM7.js.map +0 -1
  129. package/dist/chunk-PA5ALD3S.js.map +0 -1
  130. package/dist/chunk-SIPZ5UMK.js.map +0 -1
  131. /package/dist/{chunk-IGVKWKR2.js.map → chunk-27CQIO7T.js.map} +0 -0
  132. /package/dist/{chunk-VKHZFF5P.js.map → chunk-44YXWE35.js.map} +0 -0
  133. /package/dist/{chunk-R3K4CXPR.js.map → chunk-6QODJKOV.js.map} +0 -0
  134. /package/dist/{chunk-ORAK3LNZ.js.map → chunk-6SHAUM5S.js.map} +0 -0
  135. /package/dist/{chunk-2MR3MFQB.js.map → chunk-6Y4JTNX7.js.map} +0 -0
  136. /package/dist/{chunk-CKNAVW34.js.map → chunk-7OSULYN2.js.map} +0 -0
  137. /package/dist/{chunk-6T4LTI2F.js.map → chunk-7XH7VJN4.js.map} +0 -0
  138. /package/dist/{chunk-JBPKEARU.js.map → chunk-AU7Q3LSC.js.map} +0 -0
  139. /package/dist/{chunk-U5GFYMV7.js.map → chunk-BKTC7JCA.js.map} +0 -0
  140. /package/dist/{chunk-AS2NRB45.js.map → chunk-BMANIB5B.js.map} +0 -0
  141. /package/dist/{chunk-OAREUC7N.js.map → chunk-C2DDH5UN.js.map} +0 -0
  142. /package/dist/{chunk-YDYC6PIS.js.map → chunk-CXBFYSQY.js.map} +0 -0
  143. /package/dist/{chunk-DTTVX6EO.js.map → chunk-EGLUVV6B.js.map} +0 -0
  144. /package/dist/{chunk-YNDLCWXS.js.map → chunk-EZ25VE3G.js.map} +0 -0
  145. /package/dist/{chunk-SFNQDXXL.js.map → chunk-J2QYB2D5.js.map} +0 -0
  146. /package/dist/{chunk-SQNED75R.js.map → chunk-KYC3RLYJ.js.map} +0 -0
  147. /package/dist/{chunk-OX272PBW.js.map → chunk-L42FA4BU.js.map} +0 -0
  148. /package/dist/{chunk-NDXJJKT2.js.map → chunk-LU7ATMRV.js.map} +0 -0
  149. /package/dist/{chunk-V5RVMULT.js.map → chunk-LZ73Y56P.js.map} +0 -0
  150. /package/dist/{chunk-IVFIYAIP.js.map → chunk-MJE4XV4A.js.map} +0 -0
  151. /package/dist/{chunk-N4ZA2I7M.js.map → chunk-OTMAYEY5.js.map} +0 -0
  152. /package/dist/{chunk-FLVL4L3L.js.map → chunk-OUXPVWTZ.js.map} +0 -0
  153. /package/dist/{chunk-4HYFKIGH.js.map → chunk-PSNMICC2.js.map} +0 -0
  154. /package/dist/{chunk-4JG55YV3.js.map → chunk-TECYUPFB.js.map} +0 -0
  155. /package/dist/{chunk-EVXI2I6G.js.map → chunk-U3TRHUSJ.js.map} +0 -0
  156. /package/dist/{chunk-X7HTU4HO.js.map → chunk-VFHDUFH5.js.map} +0 -0
  157. /package/dist/{chunk-CVINPTKG.js.map → chunk-X5NUL5N4.js.map} +0 -0
  158. /package/dist/{chunk-NFWTMM2M.js.map → chunk-XNWLD3RR.js.map} +0 -0
  159. /package/dist/{chunk-QPTP6SKC.js.map → chunk-YOELDDBF.js.map} +0 -0
  160. /package/dist/{chunk-2RLECZ6J.js.map → chunk-YRZMCPC5.js.map} +0 -0
  161. /package/dist/{forget-WYLR4ZFV.js.map → forget-OEE5OELK.js.map} +0 -0
@@ -38,6 +38,12 @@ import {
38
38
  import {
39
39
  estimateRecallTokens
40
40
  } from "./chunk-6MMONPHM.js";
41
+ import {
42
+ recordObjectiveStateSnapshotsFromObservedMessages
43
+ } from "./chunk-ICP53SKG.js";
44
+ import {
45
+ objectiveStateStoreOverrideForNamespace
46
+ } from "./chunk-6HMYUWXR.js";
41
47
  import {
42
48
  combineNamespaces,
43
49
  defaultGitInvoker,
@@ -53,7 +59,7 @@ import {
53
59
  } from "./chunk-BAVVI5GP.js";
54
60
  import {
55
61
  namespaceCollectionName
56
- } from "./chunk-CKNAVW34.js";
62
+ } from "./chunk-7OSULYN2.js";
57
63
  import {
58
64
  namespaceIdentityFromToken
59
65
  } from "./chunk-EGGE52UU.js";
@@ -64,16 +70,10 @@ import {
64
70
  listMemoryGovernanceRuns,
65
71
  readMemoryGovernanceRunArtifact,
66
72
  runMemoryGovernance
67
- } from "./chunk-IVFIYAIP.js";
73
+ } from "./chunk-MJE4XV4A.js";
68
74
  import {
69
75
  recordMemoryOutcome
70
76
  } from "./chunk-EIR5VLIH.js";
71
- import {
72
- recordObjectiveStateSnapshotsFromObservedMessages
73
- } from "./chunk-ICP53SKG.js";
74
- import {
75
- objectiveStateStoreOverrideForNamespace
76
- } from "./chunk-6HMYUWXR.js";
77
77
  import {
78
78
  buildGraphSnapshot
79
79
  } from "./chunk-TQT3USCG.js";
@@ -83,42 +83,45 @@ import {
83
83
  import {
84
84
  formatProfileTraceAscii
85
85
  } from "./chunk-PNLCEFE4.js";
86
+ import {
87
+ buildProcedurePersistBody,
88
+ normalizeProcedureSteps
89
+ } from "./chunk-QDW3E4RD.js";
86
90
  import {
87
91
  persistExplicitCapture,
88
92
  queueExplicitCaptureForReview,
89
93
  validateExplicitCaptureInput
90
94
  } from "./chunk-K5LLP4CY.js";
91
- import {
92
- buildProcedurePersistBody,
93
- normalizeProcedureSteps
94
- } from "./chunk-QDW3E4RD.js";
95
95
  import {
96
96
  CrossNamespaceBudget
97
97
  } from "./chunk-ODPLEWB6.js";
98
+ import {
99
+ defaultCapsulesDir
100
+ } from "./chunk-ZY2MNJR6.js";
98
101
  import {
99
102
  filterTrajectoriesByLookbackDays,
100
103
  readCausalTrajectoryRecords
101
- } from "./chunk-SQNED75R.js";
104
+ } from "./chunk-KYC3RLYJ.js";
102
105
  import {
103
106
  FileCalendarSource,
104
107
  buildBriefing,
105
108
  enqueuePassiveCorrectionNotification,
106
109
  parseBriefingFocus,
107
110
  parseBriefingWindow
108
- } from "./chunk-R3K4CXPR.js";
111
+ } from "./chunk-6QODJKOV.js";
109
112
  import {
110
113
  parseEntityFile,
111
114
  selfDeps
112
- } from "./chunk-DTTVX6EO.js";
113
- import {
114
- serializeMutations
115
- } from "./chunk-LTJAMRGI.js";
115
+ } from "./chunk-EGLUVV6B.js";
116
116
  import {
117
117
  supersessionKeysForFact
118
118
  } from "./chunk-TKZ3AL5V.js";
119
119
  import {
120
120
  stripAttributesSuffix
121
121
  } from "./chunk-SVOZFLIQ.js";
122
+ import {
123
+ serializeMutations
124
+ } from "./chunk-LTJAMRGI.js";
122
125
  import {
123
126
  DEFAULT_RECALL_DISCLOSURE,
124
127
  isRecallDisclosure
@@ -144,8 +147,11 @@ import {
144
147
  computeContentHash
145
148
  } from "./chunk-W5H6ZRPT.js";
146
149
  import {
147
- defaultCapsulesDir
148
- } from "./chunk-ZY2MNJR6.js";
150
+ exportCapsule
151
+ } from "./chunk-OUXPVWTZ.js";
152
+ import {
153
+ evaluateActionConfidence
154
+ } from "./chunk-Z2YFLXHU.js";
149
155
  import {
150
156
  canReadNamespace,
151
157
  canWriteNamespace,
@@ -174,18 +180,9 @@ import {
174
180
  import {
175
181
  expandTildePath
176
182
  } from "./chunk-EYIEWJNI.js";
177
- import {
178
- isHandleToken
179
- } from "./chunk-JAKIDQB2.js";
180
183
  import {
181
184
  log
182
185
  } from "./chunk-NU3CSQ4H.js";
183
- import {
184
- exportCapsule
185
- } from "./chunk-FLVL4L3L.js";
186
- import {
187
- evaluateActionConfidence
188
- } from "./chunk-Z2YFLXHU.js";
189
186
  import {
190
187
  OFFLINE_SYNC_SNAPSHOT_FORMAT,
191
188
  applyOfflineSyncChangeset,
@@ -200,16 +197,19 @@ import {
200
197
  import {
201
198
  SecureStoreLockedError
202
199
  } from "./chunk-J2HSAU72.js";
200
+ import {
201
+ isHandleToken
202
+ } from "./chunk-JAKIDQB2.js";
203
+ import {
204
+ AccessIdempotencyStore,
205
+ hashAccessIdempotencyPayload
206
+ } from "./chunk-VFUEZZBS.js";
203
207
  import {
204
208
  throwIfAborted
205
209
  } from "./chunk-PVGDJXVK.js";
206
210
  import {
207
211
  AccessAuditAdapter
208
212
  } from "./chunk-TVVEYCNW.js";
209
- import {
210
- AccessIdempotencyStore,
211
- hashAccessIdempotencyPayload
212
- } from "./chunk-VFUEZZBS.js";
213
213
 
214
214
  // src/access-observe-write-surface.ts
215
215
  import { createHash as createHash6 } from "crypto";
@@ -10924,4 +10924,4 @@ export {
10924
10924
  EngramAccessService,
10925
10925
  AccessAdminOpsSurface
10926
10926
  };
10927
- //# sourceMappingURL=chunk-OAREUC7N.js.map
10927
+ //# sourceMappingURL=chunk-C2DDH5UN.js.map
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  planNamespaceMaintenance,
12
12
  runNamespaceMaintenanceBatchPlan
13
- } from "./chunk-NFWTMM2M.js";
13
+ } from "./chunk-XNWLD3RR.js";
14
14
  import {
15
15
  resolveConsolidationCapabilities,
16
16
  resolveNamespaceCapabilities,
@@ -447,4 +447,4 @@ var MaintenanceScheduler = class {
447
447
  export {
448
448
  MaintenanceScheduler
449
449
  };
450
- //# sourceMappingURL=chunk-YDYC6PIS.js.map
450
+ //# sourceMappingURL=chunk-CXBFYSQY.js.map
@@ -1,12 +1,12 @@
1
- import {
2
- WEARABLES_DIR_NAME,
3
- isValidTranscriptDate
4
- } from "./chunk-M7XQSUBB.js";
5
1
  import {
6
2
  TombstoneStore,
7
3
  buildRetiredFactTombstoneInputs,
8
4
  collectRetiredMemoriesForRebuild
9
5
  } from "./chunk-L2B3EE7B.js";
6
+ import {
7
+ WEARABLES_DIR_NAME,
8
+ isValidTranscriptDate
9
+ } from "./chunk-M7XQSUBB.js";
10
10
  import {
11
11
  isErrnoCode
12
12
  } from "./chunk-5UZXUTVO.js";
@@ -16,6 +16,9 @@ import {
16
16
  import {
17
17
  supersessionKeysForFact
18
18
  } from "./chunk-TKZ3AL5V.js";
19
+ import {
20
+ stripAttributesSuffix
21
+ } from "./chunk-SVOZFLIQ.js";
19
22
  import {
20
23
  DEFAULT_CITATION_FORMAT,
21
24
  hasCitation,
@@ -25,9 +28,6 @@ import {
25
28
  assertMemoryFrontmatterId,
26
29
  warnProjectionFallback
27
30
  } from "./chunk-DQC3ZZYM.js";
28
- import {
29
- stripAttributesSuffix
30
- } from "./chunk-SVOZFLIQ.js";
31
31
  import {
32
32
  SPECULATIVE_TTL_DAYS,
33
33
  confidenceTier
@@ -71,6 +71,10 @@ import {
71
71
  parseFaithfulnessField,
72
72
  serializeFaithfulnessFields
73
73
  } from "./chunk-YTU7WKYN.js";
74
+ import {
75
+ isConsolidationOperator,
76
+ isValidDerivedFromEntry
77
+ } from "./chunk-G7D6GZ5J.js";
74
78
  import {
75
79
  createVersion
76
80
  } from "./chunk-VF4XKTX3.js";
@@ -78,10 +82,6 @@ import {
78
82
  computeContentHash,
79
83
  normalizeContent
80
84
  } from "./chunk-W5H6ZRPT.js";
81
- import {
82
- isConsolidationOperator,
83
- isValidDerivedFromEntry
84
- } from "./chunk-G7D6GZ5J.js";
85
85
  import {
86
86
  parseProvenanceSources,
87
87
  parseProvenanceTag,
@@ -6154,4 +6154,4 @@ export {
6154
6154
  isValidBufferSurpriseEvent,
6155
6155
  StorageManager3 as StorageManager
6156
6156
  };
6157
- //# sourceMappingURL=chunk-DTTVX6EO.js.map
6157
+ //# sourceMappingURL=chunk-EGLUVV6B.js.map
@@ -1,9 +1,9 @@
1
- import {
2
- diffGraphSnapshots
3
- } from "./chunk-AUDJPF4N.js";
4
1
  import {
5
2
  graphSnapshotFromMemoryDir
6
3
  } from "./chunk-44442YCH.js";
4
+ import {
5
+ diffGraphSnapshots
6
+ } from "./chunk-AUDJPF4N.js";
7
7
 
8
8
  // src/dashboard-runtime.ts
9
9
  import { createHash, timingSafeEqual } from "crypto";
@@ -370,4 +370,4 @@ var GraphDashboardServer = class {
370
370
  export {
371
371
  GraphDashboardServer
372
372
  };
373
- //# sourceMappingURL=chunk-YNDLCWXS.js.map
373
+ //# sourceMappingURL=chunk-EZ25VE3G.js.map
@@ -0,0 +1,101 @@
1
+ // src/recall-timings.ts
2
+ var RECALL_TIMING_HISTORY_LIMIT = 50;
3
+ var TIMING_FIELD_ALLOWLIST = [
4
+ "total",
5
+ "sharedCtx",
6
+ "profile",
7
+ "peerProfile",
8
+ "identityContinuity",
9
+ "entityRetrieval",
10
+ "ki",
11
+ "artifacts",
12
+ "objectiveState",
13
+ "causalTrajectories",
14
+ "cmcCausalChains",
15
+ "calibrationRules",
16
+ "trustZones",
17
+ "harmonicRetrieval",
18
+ "verifiedRecall",
19
+ "verifiedRules",
20
+ "workProducts",
21
+ "qmd",
22
+ "transcript",
23
+ "summaries",
24
+ "nativeKnowledge",
25
+ "convRecall",
26
+ "compounding",
27
+ "graphShadow",
28
+ "qmdPost"
29
+ ];
30
+ var PROCESS_STARTED_AT = new Date(Date.now() - process.uptime() * 1e3).toISOString();
31
+ var histories = /* @__PURE__ */ new WeakMap();
32
+ function numericMilliseconds(value) {
33
+ if (typeof value === "number" && Number.isFinite(value) && value >= 0) {
34
+ return value;
35
+ }
36
+ if (typeof value !== "string") return void 0;
37
+ const match = /^(\d+)ms/.exec(value);
38
+ return match ? Number(match[1]) : void 0;
39
+ }
40
+ function sanitizeRecallTiming(input) {
41
+ const timingsMs = {
42
+ total: numericMilliseconds(input.total) ?? 0
43
+ };
44
+ for (const field of TIMING_FIELD_ALLOWLIST) {
45
+ if (field === "total") continue;
46
+ const value = numericMilliseconds(input[field]);
47
+ if (value !== void 0) timingsMs[field] = value;
48
+ }
49
+ return {
50
+ timestamp: typeof input.timestamp === "string" ? input.timestamp : "",
51
+ namespace: typeof input.namespace === "string" ? input.namespace : "",
52
+ recallPlan: typeof input.recallPlan === "string" ? input.recallPlan : "",
53
+ queryPolicy: typeof input.queryPolicy === "string" ? input.queryPolicy : "",
54
+ timingsMs
55
+ };
56
+ }
57
+ function recordRecallTiming(config, input) {
58
+ const history = histories.get(config) ?? [];
59
+ history.push(sanitizeRecallTiming(input));
60
+ if (history.length > RECALL_TIMING_HISTORY_LIMIT) history.shift();
61
+ histories.set(config, history);
62
+ }
63
+ function resolveRecallTimingsOperatorPrincipal(config, transportPrincipal) {
64
+ return config.agentAccessHttp.principal?.trim() || transportPrincipal?.trim() || void 0;
65
+ }
66
+ function isRecallTimingsOperator(config, authenticatedPrincipal, transportPrincipal) {
67
+ const operatorPrincipal = resolveRecallTimingsOperatorPrincipal(
68
+ config,
69
+ transportPrincipal
70
+ );
71
+ return Boolean(
72
+ operatorPrincipal && authenticatedPrincipal && authenticatedPrincipal === operatorPrincipal
73
+ );
74
+ }
75
+ function getRecallTimings(config) {
76
+ const history = histories.get(config) ?? [];
77
+ return history.slice().reverse().map((record) => ({
78
+ ...record,
79
+ timingsMs: { ...record.timingsMs }
80
+ }));
81
+ }
82
+ function getRecallTimingStatus(config) {
83
+ const records = getRecallTimings(config);
84
+ return {
85
+ generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
86
+ processStartedAt: PROCESS_STARTED_AT,
87
+ capacity: RECALL_TIMING_HISTORY_LIMIT,
88
+ count: records.length,
89
+ order: "newest-first",
90
+ records
91
+ };
92
+ }
93
+
94
+ export {
95
+ recordRecallTiming,
96
+ resolveRecallTimingsOperatorPrincipal,
97
+ isRecallTimingsOperator,
98
+ getRecallTimings,
99
+ getRecallTimingStatus
100
+ };
101
+ //# sourceMappingURL=chunk-FTYDWKO6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/recall-timings.ts"],"sourcesContent":["import type { PluginConfig } from \"./types.js\";\n\nexport interface RecallTimingRecord {\n readonly timestamp: string;\n readonly namespace: string;\n readonly recallPlan: string;\n readonly queryPolicy: string;\n readonly timingsMs: Readonly<Record<string, number>>;\n}\n\nexport interface RecallTimingStatus {\n readonly generatedAt: string;\n readonly processStartedAt: string;\n readonly capacity: number;\n readonly count: number;\n readonly order: \"newest-first\";\n readonly records: RecallTimingRecord[];\n}\n\nconst RECALL_TIMING_HISTORY_LIMIT = 50;\nconst TIMING_FIELD_ALLOWLIST = [\n \"total\",\n \"sharedCtx\",\n \"profile\",\n \"peerProfile\",\n \"identityContinuity\",\n \"entityRetrieval\",\n \"ki\",\n \"artifacts\",\n \"objectiveState\",\n \"causalTrajectories\",\n \"cmcCausalChains\",\n \"calibrationRules\",\n \"trustZones\",\n \"harmonicRetrieval\",\n \"verifiedRecall\",\n \"verifiedRules\",\n \"workProducts\",\n \"qmd\",\n \"transcript\",\n \"summaries\",\n \"nativeKnowledge\",\n \"convRecall\",\n \"compounding\",\n \"graphShadow\",\n \"qmdPost\",\n] as const;\n// The ring buffer is process-local: a daemon restart or haproxy failover to\n// the other backend starts an empty history. processStartedAt lets consumers\n// detect that discontinuity. Derived from the process time origin, not module\n// initialization, so lazy imports cannot skew it.\nconst PROCESS_STARTED_AT = new Date(Date.now() - process.uptime() * 1000).toISOString();\nconst histories = new WeakMap<PluginConfig, RecallTimingRecord[]>();\n\nfunction numericMilliseconds(value: unknown): number | undefined {\n if (typeof value === \"number\" && Number.isFinite(value) && value >= 0) {\n return value;\n }\n if (typeof value !== \"string\") return undefined;\n const match = /^(\\d+)ms/.exec(value);\n return match ? Number(match[1]) : undefined;\n}\n\nfunction sanitizeRecallTiming(\n input: Record<string, unknown>,\n): RecallTimingRecord {\n // Serialization boundary: ONLY allowlisted numeric phases reach timingsMs,\n // and the four dimension strings are copied field-by-field. Never spread\n // the internal record into the public shape.\n const timingsMs: Record<string, number> = {\n total: numericMilliseconds(input.total) ?? 0,\n };\n for (const field of TIMING_FIELD_ALLOWLIST) {\n if (field === \"total\") continue;\n const value = numericMilliseconds(input[field]);\n // Phases that did not run are omitted; 0 means \"ran, measured zero\".\n if (value !== undefined) timingsMs[field] = value;\n }\n return {\n timestamp: typeof input.timestamp === \"string\" ? input.timestamp : \"\",\n namespace: typeof input.namespace === \"string\" ? input.namespace : \"\",\n recallPlan: typeof input.recallPlan === \"string\" ? input.recallPlan : \"\",\n queryPolicy: typeof input.queryPolicy === \"string\" ? input.queryPolicy : \"\",\n timingsMs,\n };\n}\n\nexport function recordRecallTiming(\n config: PluginConfig,\n input: Record<string, unknown>,\n): void {\n const history = histories.get(config) ?? [];\n history.push(sanitizeRecallTiming(input));\n if (history.length > RECALL_TIMING_HISTORY_LIMIT) history.shift();\n histories.set(config, history);\n}\n\nexport function resolveRecallTimingsOperatorPrincipal(\n config: PluginConfig,\n transportPrincipal?: string,\n): string | undefined {\n return config.agentAccessHttp.principal?.trim()\n || transportPrincipal?.trim()\n || undefined;\n}\n\nexport function isRecallTimingsOperator(\n config: PluginConfig,\n authenticatedPrincipal?: string,\n transportPrincipal?: string,\n): boolean {\n const operatorPrincipal = resolveRecallTimingsOperatorPrincipal(\n config,\n transportPrincipal,\n );\n return Boolean(\n operatorPrincipal\n && authenticatedPrincipal\n && authenticatedPrincipal === operatorPrincipal,\n );\n}\n\nexport function getRecallTimings(config: PluginConfig): RecallTimingRecord[] {\n const history = histories.get(config) ?? [];\n return history.slice().reverse().map((record) => ({\n ...record,\n timingsMs: { ...record.timingsMs },\n }));\n}\n\nexport function getRecallTimingStatus(config: PluginConfig): RecallTimingStatus {\n const records = getRecallTimings(config);\n return {\n generatedAt: new Date().toISOString(),\n processStartedAt: PROCESS_STARTED_AT,\n capacity: RECALL_TIMING_HISTORY_LIMIT,\n count: records.length,\n order: \"newest-first\",\n records,\n };\n}\n"],"mappings":";AAmBA,IAAM,8BAA8B;AACpC,IAAM,yBAAyB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAKA,IAAM,qBAAqB,IAAI,KAAK,KAAK,IAAI,IAAI,QAAQ,OAAO,IAAI,GAAI,EAAE,YAAY;AACtF,IAAM,YAAY,oBAAI,QAA4C;AAElE,SAAS,oBAAoB,OAAoC;AAC/D,MAAI,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,KAAK,SAAS,GAAG;AACrE,WAAO;AAAA,EACT;AACA,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,QAAM,QAAQ,WAAW,KAAK,KAAK;AACnC,SAAO,QAAQ,OAAO,MAAM,CAAC,CAAC,IAAI;AACpC;AAEA,SAAS,qBACP,OACoB;AAIpB,QAAM,YAAoC;AAAA,IACxC,OAAO,oBAAoB,MAAM,KAAK,KAAK;AAAA,EAC7C;AACA,aAAW,SAAS,wBAAwB;AAC1C,QAAI,UAAU,QAAS;AACvB,UAAM,QAAQ,oBAAoB,MAAM,KAAK,CAAC;AAE9C,QAAI,UAAU,OAAW,WAAU,KAAK,IAAI;AAAA,EAC9C;AACA,SAAO;AAAA,IACL,WAAW,OAAO,MAAM,cAAc,WAAW,MAAM,YAAY;AAAA,IACnE,WAAW,OAAO,MAAM,cAAc,WAAW,MAAM,YAAY;AAAA,IACnE,YAAY,OAAO,MAAM,eAAe,WAAW,MAAM,aAAa;AAAA,IACtE,aAAa,OAAO,MAAM,gBAAgB,WAAW,MAAM,cAAc;AAAA,IACzE;AAAA,EACF;AACF;AAEO,SAAS,mBACd,QACA,OACM;AACN,QAAM,UAAU,UAAU,IAAI,MAAM,KAAK,CAAC;AAC1C,UAAQ,KAAK,qBAAqB,KAAK,CAAC;AACxC,MAAI,QAAQ,SAAS,4BAA6B,SAAQ,MAAM;AAChE,YAAU,IAAI,QAAQ,OAAO;AAC/B;AAEO,SAAS,sCACd,QACA,oBACoB;AACpB,SAAO,OAAO,gBAAgB,WAAW,KAAK,KACzC,oBAAoB,KAAK,KACzB;AACP;AAEO,SAAS,wBACd,QACA,wBACA,oBACS;AACT,QAAM,oBAAoB;AAAA,IACxB;AAAA,IACA;AAAA,EACF;AACA,SAAO;AAAA,IACL,qBACG,0BACA,2BAA2B;AAAA,EAChC;AACF;AAEO,SAAS,iBAAiB,QAA4C;AAC3E,QAAM,UAAU,UAAU,IAAI,MAAM,KAAK,CAAC;AAC1C,SAAO,QAAQ,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY;AAAA,IAChD,GAAG;AAAA,IACH,WAAW,EAAE,GAAG,OAAO,UAAU;AAAA,EACnC,EAAE;AACJ;AAEO,SAAS,sBAAsB,QAA0C;AAC9E,QAAM,UAAU,iBAAiB,MAAM;AACvC,SAAO;AAAA,IACL,cAAa,oBAAI,KAAK,GAAE,YAAY;AAAA,IACpC,kBAAkB;AAAA,IAClB,UAAU;AAAA,IACV,OAAO,QAAQ;AAAA,IACf,OAAO;AAAA,IACP;AAAA,EACF;AACF;","names":[]}
@@ -10,10 +10,10 @@ import {
10
10
  import {
11
11
  listMemoryGovernanceRuns,
12
12
  readMemoryGovernanceRunArtifact
13
- } from "./chunk-IVFIYAIP.js";
13
+ } from "./chunk-MJE4XV4A.js";
14
14
  import {
15
15
  StorageManager
16
- } from "./chunk-DTTVX6EO.js";
16
+ } from "./chunk-EGLUVV6B.js";
17
17
  import {
18
18
  MEMORY_LIFECYCLE_EVENT_SORT_ORDER,
19
19
  buildLifecycleEventsForMemory,
@@ -1023,4 +1023,4 @@ export {
1023
1023
  verifyMemoryProjection,
1024
1024
  repairMemoryProjection
1025
1025
  };
1026
- //# sourceMappingURL=chunk-SFNQDXXL.js.map
1026
+ //# sourceMappingURL=chunk-J2QYB2D5.js.map
@@ -216,4 +216,4 @@ export {
216
216
  getCausalTrajectoryStoreStatus,
217
217
  searchCausalTrajectories
218
218
  };
219
- //# sourceMappingURL=chunk-SQNED75R.js.map
219
+ //# sourceMappingURL=chunk-KYC3RLYJ.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-EGGE52UU.js";
5
5
  import {
6
6
  StorageManager
7
- } from "./chunk-DTTVX6EO.js";
7
+ } from "./chunk-EGLUVV6B.js";
8
8
  import {
9
9
  MutationSerializer
10
10
  } from "./chunk-LTJAMRGI.js";
@@ -339,4 +339,4 @@ export {
339
339
  resolveNamespaceStorageRoot,
340
340
  NamespaceStorageRouter
341
341
  };
342
- //# sourceMappingURL=chunk-OX272PBW.js.map
342
+ //# sourceMappingURL=chunk-L42FA4BU.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-SFQ6QNL7.js";
7
7
  import {
8
8
  StorageManager
9
- } from "./chunk-DTTVX6EO.js";
9
+ } from "./chunk-EGLUVV6B.js";
10
10
  import {
11
11
  buildLifecycleEventsForMemory,
12
12
  sortMemoryLifecycleEvents
@@ -115,4 +115,4 @@ export {
115
115
  backupExistingLedger,
116
116
  rebuildMemoryLifecycleLedger
117
117
  };
118
- //# sourceMappingURL=chunk-NDXJJKT2.js.map
118
+ //# sourceMappingURL=chunk-LU7ATMRV.js.map
@@ -1,12 +1,3 @@
1
- import {
2
- LcmDag
3
- } from "./chunk-7N4KAIGN.js";
4
- import {
5
- LcmWorkQueue
6
- } from "./chunk-TPDBFYEG.js";
7
- import {
8
- assembleCompressedHistory
9
- } from "./chunk-KCYE2MZM.js";
10
1
  import {
11
2
  ensureLcmStateDir,
12
3
  openLcmDatabase
@@ -17,6 +8,15 @@ import {
17
8
  import {
18
9
  LcmArchive
19
10
  } from "./chunk-HW5EF6LV.js";
11
+ import {
12
+ LcmDag
13
+ } from "./chunk-7N4KAIGN.js";
14
+ import {
15
+ LcmWorkQueue
16
+ } from "./chunk-TPDBFYEG.js";
17
+ import {
18
+ assembleCompressedHistory
19
+ } from "./chunk-KCYE2MZM.js";
20
20
  import {
21
21
  log
22
22
  } from "./chunk-NU3CSQ4H.js";
@@ -516,4 +516,4 @@ export {
516
516
  extractLcmConfig,
517
517
  LcmEngine
518
518
  };
519
- //# sourceMappingURL=chunk-V5RVMULT.js.map
519
+ //# sourceMappingURL=chunk-LZ73Y56P.js.map
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-DTTVX6EO.js";
3
+ } from "./chunk-EGLUVV6B.js";
4
4
  import {
5
5
  assertPathInsideRoot
6
6
  } from "./chunk-5GPPACXK.js";
7
- import {
8
- decideLifecycleTransition
9
- } from "./chunk-TBBDFYXW.js";
10
7
  import {
11
8
  RECALL_FALLBACK_DIRS
12
9
  } from "./chunk-VS2IYZRU.js";
10
+ import {
11
+ decideLifecycleTransition
12
+ } from "./chunk-TBBDFYXW.js";
13
13
 
14
14
  // src/maintenance/memory-governance.ts
15
15
  import path from "path";
@@ -751,4 +751,4 @@ export {
751
751
  listMemoryGovernanceRuns,
752
752
  readMemoryGovernanceRunArtifact
753
753
  };
754
- //# sourceMappingURL=chunk-IVFIYAIP.js.map
754
+ //# sourceMappingURL=chunk-MJE4XV4A.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-7FL4CNPV.js";
4
4
  import {
5
5
  StorageManager
6
- } from "./chunk-DTTVX6EO.js";
6
+ } from "./chunk-EGLUVV6B.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-N4ZA2I7M.js.map
110
+ //# sourceMappingURL=chunk-OTMAYEY5.js.map
@@ -1,3 +1,7 @@
1
+ import {
2
+ CAPSULE_SCHEMA_VERSION,
3
+ EXPORT_FORMAT
4
+ } from "./chunk-J4EB7DNW.js";
1
5
  import {
2
6
  CAPSULE_ID_PATTERN,
3
7
  CapsuleBlockSchema,
@@ -7,10 +11,6 @@ import {
7
11
  import {
8
12
  encryptCapsuleFile
9
13
  } from "./chunk-437S3G37.js";
10
- import {
11
- CAPSULE_SCHEMA_VERSION,
12
- EXPORT_FORMAT
13
- } from "./chunk-J4EB7DNW.js";
14
14
  import {
15
15
  DEFAULT_TRANSFER_EXCLUDE_DIRS,
16
16
  computeTransferOutputRel
@@ -261,4 +261,4 @@ export {
261
261
  exportCapsule,
262
262
  isValidCapsuleSince
263
263
  };
264
- //# sourceMappingURL=chunk-FLVL4L3L.js.map
264
+ //# sourceMappingURL=chunk-OUXPVWTZ.js.map