@fluidframework/container-runtime 1.4.0-115997 → 2.0.0-dev-rc.1.0.0.224419

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 (703) hide show
  1. package/.eslintrc.js +19 -29
  2. package/.mocharc.js +12 -0
  3. package/CHANGELOG.md +427 -0
  4. package/README.md +69 -0
  5. package/api-extractor-lint.json +4 -0
  6. package/api-extractor.json +2 -2
  7. package/api-report/container-runtime.api.md +863 -0
  8. package/dist/{batchTracker.js → batchTracker.cjs} +9 -8
  9. package/dist/batchTracker.cjs.map +1 -0
  10. package/dist/batchTracker.d.ts +6 -6
  11. package/dist/batchTracker.d.ts.map +1 -1
  12. package/dist/blobManager.cjs +704 -0
  13. package/dist/blobManager.cjs.map +1 -0
  14. package/dist/blobManager.d.ts +135 -39
  15. package/dist/blobManager.d.ts.map +1 -1
  16. package/dist/connectionTelemetry.cjs +230 -0
  17. package/dist/connectionTelemetry.cjs.map +1 -0
  18. package/dist/connectionTelemetry.d.ts +2 -2
  19. package/dist/connectionTelemetry.d.ts.map +1 -1
  20. package/dist/container-runtime-alpha.d.ts +1677 -0
  21. package/dist/container-runtime-beta.d.ts +250 -0
  22. package/dist/container-runtime-public.d.ts +250 -0
  23. package/dist/container-runtime-untrimmed.d.ts +1792 -0
  24. package/dist/{containerHandleContext.js → containerHandleContext.cjs} +4 -2
  25. package/dist/containerHandleContext.cjs.map +1 -0
  26. package/dist/containerHandleContext.d.ts.map +1 -1
  27. package/dist/containerRuntime.cjs +2531 -0
  28. package/dist/containerRuntime.cjs.map +1 -0
  29. package/dist/containerRuntime.d.ts +454 -257
  30. package/dist/containerRuntime.d.ts.map +1 -1
  31. package/dist/{dataStore.js → dataStore.cjs} +54 -45
  32. package/dist/dataStore.cjs.map +1 -0
  33. package/dist/dataStore.d.ts +2 -2
  34. package/dist/dataStore.d.ts.map +1 -1
  35. package/dist/{dataStoreContext.js → dataStoreContext.cjs} +343 -247
  36. package/dist/dataStoreContext.cjs.map +1 -0
  37. package/dist/dataStoreContext.d.ts +73 -41
  38. package/dist/dataStoreContext.d.ts.map +1 -1
  39. package/dist/{dataStoreContexts.js → dataStoreContexts.cjs} +19 -15
  40. package/dist/dataStoreContexts.cjs.map +1 -0
  41. package/dist/dataStoreContexts.d.ts +1 -1
  42. package/dist/dataStoreContexts.d.ts.map +1 -1
  43. package/dist/{dataStoreRegistry.js → dataStoreRegistry.cjs} +9 -4
  44. package/dist/dataStoreRegistry.cjs.map +1 -0
  45. package/dist/dataStoreRegistry.d.ts +3 -0
  46. package/dist/dataStoreRegistry.d.ts.map +1 -1
  47. package/dist/{dataStores.js → dataStores.cjs} +273 -124
  48. package/dist/dataStores.cjs.map +1 -0
  49. package/dist/dataStores.d.ts +53 -23
  50. package/dist/dataStores.d.ts.map +1 -1
  51. package/dist/deltaManagerProxyBase.cjs +77 -0
  52. package/dist/deltaManagerProxyBase.cjs.map +1 -0
  53. package/dist/deltaManagerProxyBase.d.ts +35 -0
  54. package/dist/deltaManagerProxyBase.d.ts.map +1 -0
  55. package/dist/deltaManagerSummarizerProxy.cjs +42 -0
  56. package/dist/deltaManagerSummarizerProxy.cjs.map +1 -0
  57. package/dist/deltaManagerSummarizerProxy.d.ts +19 -0
  58. package/dist/deltaManagerSummarizerProxy.d.ts.map +1 -0
  59. package/dist/{deltaScheduler.js → deltaScheduler.cjs} +25 -18
  60. package/dist/deltaScheduler.cjs.map +1 -0
  61. package/dist/deltaScheduler.d.ts +8 -6
  62. package/dist/deltaScheduler.d.ts.map +1 -1
  63. package/dist/error.cjs +21 -0
  64. package/dist/error.cjs.map +1 -0
  65. package/dist/error.d.ts +14 -0
  66. package/dist/error.d.ts.map +1 -0
  67. package/dist/gc/garbageCollection.cjs +861 -0
  68. package/dist/gc/garbageCollection.cjs.map +1 -0
  69. package/dist/gc/garbageCollection.d.ts +224 -0
  70. package/dist/gc/garbageCollection.d.ts.map +1 -0
  71. package/dist/gc/gcConfigs.cjs +153 -0
  72. package/dist/gc/gcConfigs.cjs.map +1 -0
  73. package/dist/gc/gcConfigs.d.ts +23 -0
  74. package/dist/gc/gcConfigs.d.ts.map +1 -0
  75. package/dist/gc/gcDefinitions.cjs +96 -0
  76. package/dist/gc/gcDefinitions.cjs.map +1 -0
  77. package/dist/gc/gcDefinitions.d.ts +437 -0
  78. package/dist/gc/gcDefinitions.d.ts.map +1 -0
  79. package/dist/gc/gcHelpers.cjs +235 -0
  80. package/dist/gc/gcHelpers.cjs.map +1 -0
  81. package/dist/gc/gcHelpers.d.ts +71 -0
  82. package/dist/gc/gcHelpers.d.ts.map +1 -0
  83. package/dist/gc/gcReferenceGraphAlgorithm.cjs +49 -0
  84. package/dist/gc/gcReferenceGraphAlgorithm.cjs.map +1 -0
  85. package/dist/gc/gcReferenceGraphAlgorithm.d.ts +16 -0
  86. package/dist/gc/gcReferenceGraphAlgorithm.d.ts.map +1 -0
  87. package/dist/{summarizerTypes.js → gc/gcSummaryDefinitions.cjs} +1 -6
  88. package/dist/gc/gcSummaryDefinitions.cjs.map +1 -0
  89. package/dist/gc/gcSummaryDefinitions.d.ts +52 -0
  90. package/dist/gc/gcSummaryDefinitions.d.ts.map +1 -0
  91. package/dist/gc/gcSummaryStateTracker.cjs +213 -0
  92. package/dist/gc/gcSummaryStateTracker.cjs.map +1 -0
  93. package/dist/gc/gcSummaryStateTracker.d.ts +94 -0
  94. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -0
  95. package/dist/gc/gcTelemetry.cjs +298 -0
  96. package/dist/gc/gcTelemetry.cjs.map +1 -0
  97. package/dist/gc/gcTelemetry.d.ts +92 -0
  98. package/dist/gc/gcTelemetry.d.ts.map +1 -0
  99. package/dist/gc/gcUnreferencedStateTracker.cjs +118 -0
  100. package/dist/gc/gcUnreferencedStateTracker.cjs.map +1 -0
  101. package/dist/gc/gcUnreferencedStateTracker.d.ts +40 -0
  102. package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -0
  103. package/dist/gc/index.cjs +44 -0
  104. package/dist/gc/index.cjs.map +1 -0
  105. package/dist/gc/index.d.ts +13 -0
  106. package/dist/gc/index.d.ts.map +1 -0
  107. package/dist/index.cjs +47 -0
  108. package/dist/index.cjs.map +1 -0
  109. package/dist/index.d.ts +19 -8
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/messageTypes.cjs +37 -0
  112. package/dist/messageTypes.cjs.map +1 -0
  113. package/dist/messageTypes.d.ts +142 -0
  114. package/dist/messageTypes.d.ts.map +1 -0
  115. package/dist/metadata.cjs +7 -0
  116. package/dist/metadata.cjs.map +1 -0
  117. package/dist/metadata.d.ts +24 -0
  118. package/dist/metadata.d.ts.map +1 -0
  119. package/dist/opLifecycle/batchManager.cjs +139 -0
  120. package/dist/opLifecycle/batchManager.cjs.map +1 -0
  121. package/dist/opLifecycle/batchManager.d.ts +48 -0
  122. package/dist/opLifecycle/batchManager.d.ts.map +1 -0
  123. package/dist/opLifecycle/definitions.cjs +7 -0
  124. package/dist/opLifecycle/definitions.cjs.map +1 -0
  125. package/dist/opLifecycle/definitions.d.ts +83 -0
  126. package/dist/opLifecycle/definitions.d.ts.map +1 -0
  127. package/dist/opLifecycle/index.cjs +26 -0
  128. package/dist/opLifecycle/index.cjs.map +1 -0
  129. package/dist/opLifecycle/index.d.ts +13 -0
  130. package/dist/opLifecycle/index.d.ts.map +1 -0
  131. package/dist/opLifecycle/opCompressor.cjs +84 -0
  132. package/dist/opLifecycle/opCompressor.cjs.map +1 -0
  133. package/dist/opLifecycle/opCompressor.d.ts +18 -0
  134. package/dist/opLifecycle/opCompressor.d.ts.map +1 -0
  135. package/dist/opLifecycle/opDecompressor.cjs +132 -0
  136. package/dist/opLifecycle/opDecompressor.cjs.map +1 -0
  137. package/dist/opLifecycle/opDecompressor.d.ts +25 -0
  138. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -0
  139. package/dist/opLifecycle/opGroupingManager.cjs +95 -0
  140. package/dist/opLifecycle/opGroupingManager.cjs.map +1 -0
  141. package/dist/opLifecycle/opGroupingManager.d.ts +22 -0
  142. package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -0
  143. package/dist/opLifecycle/opSplitter.cjs +202 -0
  144. package/dist/opLifecycle/opSplitter.cjs.map +1 -0
  145. package/dist/opLifecycle/opSplitter.d.ts +61 -0
  146. package/dist/opLifecycle/opSplitter.d.ts.map +1 -0
  147. package/dist/opLifecycle/outbox.cjs +323 -0
  148. package/dist/opLifecycle/outbox.cjs.map +1 -0
  149. package/dist/opLifecycle/outbox.d.ts +104 -0
  150. package/dist/opLifecycle/outbox.d.ts.map +1 -0
  151. package/dist/opLifecycle/remoteMessageProcessor.cjs +136 -0
  152. package/dist/opLifecycle/remoteMessageProcessor.cjs.map +1 -0
  153. package/dist/opLifecycle/remoteMessageProcessor.d.ts +47 -0
  154. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -0
  155. package/dist/opProperties.cjs +17 -0
  156. package/dist/opProperties.cjs.map +1 -0
  157. package/dist/opProperties.d.ts +7 -0
  158. package/dist/opProperties.d.ts.map +1 -0
  159. package/dist/{packageVersion.js → packageVersion.cjs} +2 -2
  160. package/dist/packageVersion.cjs.map +1 -0
  161. package/dist/packageVersion.d.ts +1 -1
  162. package/dist/packageVersion.d.ts.map +1 -1
  163. package/dist/pendingStateManager.cjs +282 -0
  164. package/dist/pendingStateManager.cjs.map +1 -0
  165. package/dist/pendingStateManager.d.ts +32 -69
  166. package/dist/pendingStateManager.d.ts.map +1 -1
  167. package/dist/scheduleManager.cjs +258 -0
  168. package/dist/scheduleManager.cjs.map +1 -0
  169. package/dist/scheduleManager.d.ts +31 -0
  170. package/dist/scheduleManager.d.ts.map +1 -0
  171. package/dist/storageServiceWithAttachBlobs.cjs +32 -0
  172. package/dist/storageServiceWithAttachBlobs.cjs.map +1 -0
  173. package/dist/storageServiceWithAttachBlobs.d.ts +17 -0
  174. package/dist/storageServiceWithAttachBlobs.d.ts.map +1 -0
  175. package/dist/summary/index.cjs +51 -0
  176. package/dist/summary/index.cjs.map +1 -0
  177. package/dist/summary/index.d.ts +17 -0
  178. package/dist/summary/index.d.ts.map +1 -0
  179. package/dist/{orderedClientElection.js → summary/orderedClientElection.cjs} +100 -84
  180. package/dist/summary/orderedClientElection.cjs.map +1 -0
  181. package/{lib → dist/summary}/orderedClientElection.d.ts +41 -18
  182. package/dist/summary/orderedClientElection.d.ts.map +1 -0
  183. package/dist/{runWhileConnectedCoordinator.js → summary/runWhileConnectedCoordinator.cjs} +12 -10
  184. package/dist/summary/runWhileConnectedCoordinator.cjs.map +1 -0
  185. package/{lib → dist/summary}/runWhileConnectedCoordinator.d.ts +8 -2
  186. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -0
  187. package/dist/summary/runningSummarizer.cjs +679 -0
  188. package/dist/summary/runningSummarizer.cjs.map +1 -0
  189. package/dist/summary/runningSummarizer.d.ts +128 -0
  190. package/dist/summary/runningSummarizer.d.ts.map +1 -0
  191. package/dist/summary/summarizer.cjs +263 -0
  192. package/dist/summary/summarizer.cjs.map +1 -0
  193. package/dist/{summarizer.d.ts → summary/summarizer.d.ts} +18 -34
  194. package/dist/summary/summarizer.d.ts.map +1 -0
  195. package/dist/{summarizerClientElection.js → summary/summarizerClientElection.cjs} +15 -46
  196. package/dist/summary/summarizerClientElection.cjs.map +1 -0
  197. package/{lib → dist/summary}/summarizerClientElection.d.ts +4 -4
  198. package/dist/summary/summarizerClientElection.d.ts.map +1 -0
  199. package/dist/summary/summarizerHeuristics.cjs +156 -0
  200. package/dist/summary/summarizerHeuristics.cjs.map +1 -0
  201. package/{lib → dist/summary}/summarizerHeuristics.d.ts +28 -6
  202. package/dist/summary/summarizerHeuristics.d.ts.map +1 -0
  203. package/dist/summary/summarizerNode/index.cjs +12 -0
  204. package/dist/summary/summarizerNode/index.cjs.map +1 -0
  205. package/dist/summary/summarizerNode/index.d.ts +8 -0
  206. package/dist/summary/summarizerNode/index.d.ts.map +1 -0
  207. package/dist/summary/summarizerNode/summarizerNode.cjs +526 -0
  208. package/dist/summary/summarizerNode/summarizerNode.cjs.map +1 -0
  209. package/dist/summary/summarizerNode/summarizerNode.d.ts +167 -0
  210. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -0
  211. package/dist/summary/summarizerNode/summarizerNodeUtils.cjs +130 -0
  212. package/dist/summary/summarizerNode/summarizerNodeUtils.cjs.map +1 -0
  213. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +121 -0
  214. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -0
  215. package/dist/summary/summarizerNode/summarizerNodeWithGc.cjs +375 -0
  216. package/dist/summary/summarizerNode/summarizerNodeWithGc.cjs.map +1 -0
  217. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +153 -0
  218. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -0
  219. package/dist/summary/summarizerTypes.cjs +7 -0
  220. package/dist/summary/summarizerTypes.cjs.map +1 -0
  221. package/{lib → dist/summary}/summarizerTypes.d.ts +233 -83
  222. package/dist/summary/summarizerTypes.d.ts.map +1 -0
  223. package/dist/{summaryCollection.js → summary/summaryCollection.cjs} +80 -49
  224. package/dist/summary/summaryCollection.cjs.map +1 -0
  225. package/dist/{summaryCollection.d.ts → summary/summaryCollection.d.ts} +23 -5
  226. package/dist/summary/summaryCollection.d.ts.map +1 -0
  227. package/dist/{summaryFormat.js → summary/summaryFormat.cjs} +29 -26
  228. package/dist/summary/summaryFormat.cjs.map +1 -0
  229. package/{lib → dist/summary}/summaryFormat.d.ts +25 -30
  230. package/dist/summary/summaryFormat.d.ts.map +1 -0
  231. package/dist/{summaryGenerator.js → summary/summaryGenerator.cjs} +162 -74
  232. package/dist/summary/summaryGenerator.cjs.map +1 -0
  233. package/dist/{summaryGenerator.d.ts → summary/summaryGenerator.d.ts} +53 -11
  234. package/dist/summary/summaryGenerator.d.ts.map +1 -0
  235. package/dist/{summaryManager.js → summary/summaryManager.cjs} +98 -55
  236. package/dist/summary/summaryManager.cjs.map +1 -0
  237. package/{lib → dist/summary}/summaryManager.d.ts +13 -11
  238. package/dist/summary/summaryManager.d.ts.map +1 -0
  239. package/dist/{throttler.js → throttler.cjs} +21 -21
  240. package/dist/throttler.cjs.map +1 -0
  241. package/dist/throttler.d.ts +2 -2
  242. package/dist/throttler.d.ts.map +1 -1
  243. package/dist/tsdoc-metadata.json +11 -0
  244. package/lib/{batchTracker.d.ts → batchTracker.d.mts} +6 -6
  245. package/lib/batchTracker.d.mts.map +1 -0
  246. package/lib/{batchTracker.js → batchTracker.mjs} +9 -8
  247. package/lib/batchTracker.mjs.map +1 -0
  248. package/lib/blobManager.d.mts +191 -0
  249. package/lib/blobManager.d.mts.map +1 -0
  250. package/lib/blobManager.mjs +699 -0
  251. package/lib/blobManager.mjs.map +1 -0
  252. package/lib/{connectionTelemetry.d.ts → connectionTelemetry.d.mts} +2 -2
  253. package/lib/connectionTelemetry.d.mts.map +1 -0
  254. package/lib/connectionTelemetry.mjs +226 -0
  255. package/lib/connectionTelemetry.mjs.map +1 -0
  256. package/lib/container-runtime-alpha.d.mts +1677 -0
  257. package/lib/container-runtime-beta.d.mts +250 -0
  258. package/lib/container-runtime-public.d.mts +250 -0
  259. package/lib/container-runtime-untrimmed.d.mts +1792 -0
  260. package/lib/{containerHandleContext.d.ts → containerHandleContext.d.mts} +1 -1
  261. package/lib/containerHandleContext.d.mts.map +1 -0
  262. package/lib/{containerHandleContext.js → containerHandleContext.mjs} +4 -2
  263. package/lib/containerHandleContext.mjs.map +1 -0
  264. package/lib/containerRuntime.d.mts +809 -0
  265. package/lib/containerRuntime.d.mts.map +1 -0
  266. package/lib/containerRuntime.mjs +2526 -0
  267. package/lib/containerRuntime.mjs.map +1 -0
  268. package/lib/{dataStore.d.ts → dataStore.d.mts} +4 -4
  269. package/lib/dataStore.d.mts.map +1 -0
  270. package/lib/{dataStore.js → dataStore.mjs} +52 -43
  271. package/lib/dataStore.mjs.map +1 -0
  272. package/lib/{dataStoreContext.d.ts → dataStoreContext.d.mts} +74 -42
  273. package/lib/dataStoreContext.d.mts.map +1 -0
  274. package/lib/{dataStoreContext.js → dataStoreContext.mjs} +309 -213
  275. package/lib/dataStoreContext.mjs.map +1 -0
  276. package/lib/{dataStoreContexts.d.ts → dataStoreContexts.d.mts} +2 -2
  277. package/lib/dataStoreContexts.d.mts.map +1 -0
  278. package/lib/{dataStoreContexts.js → dataStoreContexts.mjs} +12 -8
  279. package/lib/dataStoreContexts.mjs.map +1 -0
  280. package/lib/{dataStoreRegistry.d.ts → dataStoreRegistry.d.mts} +3 -0
  281. package/lib/dataStoreRegistry.d.mts.map +1 -0
  282. package/lib/{dataStoreRegistry.js → dataStoreRegistry.mjs} +7 -6
  283. package/lib/dataStoreRegistry.mjs.map +1 -0
  284. package/lib/{dataStores.d.ts → dataStores.d.mts} +56 -26
  285. package/lib/dataStores.d.mts.map +1 -0
  286. package/lib/{dataStores.js → dataStores.mjs} +254 -105
  287. package/lib/dataStores.mjs.map +1 -0
  288. package/lib/deltaManagerProxyBase.d.mts +35 -0
  289. package/lib/deltaManagerProxyBase.d.mts.map +1 -0
  290. package/lib/deltaManagerProxyBase.mjs +73 -0
  291. package/lib/deltaManagerProxyBase.mjs.map +1 -0
  292. package/lib/deltaManagerSummarizerProxy.d.mts +19 -0
  293. package/lib/deltaManagerSummarizerProxy.d.mts.map +1 -0
  294. package/lib/deltaManagerSummarizerProxy.mjs +38 -0
  295. package/lib/deltaManagerSummarizerProxy.mjs.map +1 -0
  296. package/lib/{deltaScheduler.d.ts → deltaScheduler.d.mts} +8 -6
  297. package/lib/deltaScheduler.d.mts.map +1 -0
  298. package/lib/{deltaScheduler.js → deltaScheduler.mjs} +22 -15
  299. package/lib/deltaScheduler.mjs.map +1 -0
  300. package/lib/error.d.mts +14 -0
  301. package/lib/error.d.mts.map +1 -0
  302. package/lib/error.mjs +17 -0
  303. package/lib/error.mjs.map +1 -0
  304. package/lib/gc/garbageCollection.d.mts +224 -0
  305. package/lib/gc/garbageCollection.d.mts.map +1 -0
  306. package/lib/gc/garbageCollection.mjs +857 -0
  307. package/lib/gc/garbageCollection.mjs.map +1 -0
  308. package/lib/gc/gcConfigs.d.mts +23 -0
  309. package/lib/gc/gcConfigs.d.mts.map +1 -0
  310. package/lib/gc/gcConfigs.mjs +149 -0
  311. package/lib/gc/gcConfigs.mjs.map +1 -0
  312. package/lib/gc/gcDefinitions.d.mts +437 -0
  313. package/lib/gc/gcDefinitions.d.mts.map +1 -0
  314. package/lib/gc/gcDefinitions.mjs +93 -0
  315. package/lib/gc/gcDefinitions.mjs.map +1 -0
  316. package/lib/gc/gcHelpers.d.mts +71 -0
  317. package/lib/gc/gcHelpers.d.mts.map +1 -0
  318. package/lib/gc/gcHelpers.mjs +222 -0
  319. package/lib/gc/gcHelpers.mjs.map +1 -0
  320. package/lib/gc/gcReferenceGraphAlgorithm.d.mts +16 -0
  321. package/lib/gc/gcReferenceGraphAlgorithm.d.mts.map +1 -0
  322. package/lib/gc/gcReferenceGraphAlgorithm.mjs +45 -0
  323. package/lib/gc/gcReferenceGraphAlgorithm.mjs.map +1 -0
  324. package/lib/gc/gcSummaryDefinitions.d.mts +52 -0
  325. package/lib/gc/gcSummaryDefinitions.d.mts.map +1 -0
  326. package/lib/gc/gcSummaryDefinitions.mjs +6 -0
  327. package/lib/gc/gcSummaryDefinitions.mjs.map +1 -0
  328. package/lib/gc/gcSummaryStateTracker.d.mts +94 -0
  329. package/lib/gc/gcSummaryStateTracker.d.mts.map +1 -0
  330. package/lib/gc/gcSummaryStateTracker.mjs +209 -0
  331. package/lib/gc/gcSummaryStateTracker.mjs.map +1 -0
  332. package/lib/gc/gcTelemetry.d.mts +92 -0
  333. package/lib/gc/gcTelemetry.d.mts.map +1 -0
  334. package/lib/gc/gcTelemetry.mjs +293 -0
  335. package/lib/gc/gcTelemetry.mjs.map +1 -0
  336. package/lib/gc/gcUnreferencedStateTracker.d.mts +40 -0
  337. package/lib/gc/gcUnreferencedStateTracker.d.mts.map +1 -0
  338. package/lib/gc/gcUnreferencedStateTracker.mjs +114 -0
  339. package/lib/gc/gcUnreferencedStateTracker.mjs.map +1 -0
  340. package/lib/gc/index.d.mts +13 -0
  341. package/lib/gc/index.d.mts.map +1 -0
  342. package/lib/gc/index.mjs +12 -0
  343. package/lib/gc/index.mjs.map +1 -0
  344. package/lib/index.d.mts +25 -0
  345. package/lib/index.d.mts.map +1 -0
  346. package/lib/index.mjs +24 -0
  347. package/lib/index.mjs.map +1 -0
  348. package/lib/messageTypes.d.mts +142 -0
  349. package/lib/messageTypes.d.mts.map +1 -0
  350. package/lib/messageTypes.mjs +34 -0
  351. package/lib/messageTypes.mjs.map +1 -0
  352. package/lib/metadata.d.mts +24 -0
  353. package/lib/metadata.d.mts.map +1 -0
  354. package/lib/metadata.mjs +6 -0
  355. package/lib/metadata.mjs.map +1 -0
  356. package/lib/opLifecycle/batchManager.d.mts +48 -0
  357. package/lib/opLifecycle/batchManager.d.mts.map +1 -0
  358. package/lib/opLifecycle/batchManager.mjs +133 -0
  359. package/lib/opLifecycle/batchManager.mjs.map +1 -0
  360. package/lib/opLifecycle/definitions.d.mts +83 -0
  361. package/lib/opLifecycle/definitions.d.mts.map +1 -0
  362. package/lib/opLifecycle/definitions.mjs +6 -0
  363. package/lib/opLifecycle/definitions.mjs.map +1 -0
  364. package/lib/opLifecycle/index.d.mts +13 -0
  365. package/lib/opLifecycle/index.d.mts.map +1 -0
  366. package/lib/opLifecycle/index.mjs +12 -0
  367. package/lib/opLifecycle/index.mjs.map +1 -0
  368. package/lib/opLifecycle/opCompressor.d.mts +18 -0
  369. package/lib/opLifecycle/opCompressor.d.mts.map +1 -0
  370. package/lib/opLifecycle/opCompressor.mjs +80 -0
  371. package/lib/opLifecycle/opCompressor.mjs.map +1 -0
  372. package/lib/opLifecycle/opDecompressor.d.mts +25 -0
  373. package/lib/opLifecycle/opDecompressor.d.mts.map +1 -0
  374. package/lib/opLifecycle/opDecompressor.mjs +128 -0
  375. package/lib/opLifecycle/opDecompressor.mjs.map +1 -0
  376. package/lib/opLifecycle/opGroupingManager.d.mts +22 -0
  377. package/lib/opLifecycle/opGroupingManager.d.mts.map +1 -0
  378. package/lib/opLifecycle/opGroupingManager.mjs +91 -0
  379. package/lib/opLifecycle/opGroupingManager.mjs.map +1 -0
  380. package/lib/opLifecycle/opSplitter.d.mts +61 -0
  381. package/lib/opLifecycle/opSplitter.d.mts.map +1 -0
  382. package/lib/opLifecycle/opSplitter.mjs +197 -0
  383. package/lib/opLifecycle/opSplitter.mjs.map +1 -0
  384. package/lib/opLifecycle/outbox.d.mts +104 -0
  385. package/lib/opLifecycle/outbox.d.mts.map +1 -0
  386. package/lib/opLifecycle/outbox.mjs +318 -0
  387. package/lib/opLifecycle/outbox.mjs.map +1 -0
  388. package/lib/opLifecycle/remoteMessageProcessor.d.mts +47 -0
  389. package/lib/opLifecycle/remoteMessageProcessor.d.mts.map +1 -0
  390. package/lib/opLifecycle/remoteMessageProcessor.mjs +131 -0
  391. package/lib/opLifecycle/remoteMessageProcessor.mjs.map +1 -0
  392. package/lib/opProperties.d.mts +7 -0
  393. package/lib/opProperties.d.mts.map +1 -0
  394. package/lib/opProperties.mjs +13 -0
  395. package/lib/opProperties.mjs.map +1 -0
  396. package/lib/{packageVersion.d.ts → packageVersion.d.mts} +1 -1
  397. package/lib/{packageVersion.d.ts.map → packageVersion.d.mts.map} +1 -1
  398. package/lib/{packageVersion.js → packageVersion.mjs} +2 -2
  399. package/lib/packageVersion.mjs.map +1 -0
  400. package/lib/{pendingStateManager.d.ts → pendingStateManager.d.mts} +32 -69
  401. package/lib/pendingStateManager.d.mts.map +1 -0
  402. package/lib/pendingStateManager.mjs +275 -0
  403. package/lib/pendingStateManager.mjs.map +1 -0
  404. package/lib/scheduleManager.d.mts +27 -0
  405. package/lib/scheduleManager.d.mts.map +1 -0
  406. package/lib/scheduleManager.mjs +254 -0
  407. package/lib/scheduleManager.mjs.map +1 -0
  408. package/lib/storageServiceWithAttachBlobs.d.mts +17 -0
  409. package/lib/storageServiceWithAttachBlobs.d.mts.map +1 -0
  410. package/lib/storageServiceWithAttachBlobs.mjs +28 -0
  411. package/lib/storageServiceWithAttachBlobs.mjs.map +1 -0
  412. package/lib/summary/index.d.mts +17 -0
  413. package/lib/summary/index.d.mts.map +1 -0
  414. package/lib/summary/index.mjs +16 -0
  415. package/lib/summary/index.mjs.map +1 -0
  416. package/{dist/orderedClientElection.d.ts → lib/summary/orderedClientElection.d.mts} +41 -22
  417. package/lib/summary/orderedClientElection.d.mts.map +1 -0
  418. package/lib/{orderedClientElection.js → summary/orderedClientElection.mjs} +95 -79
  419. package/lib/summary/orderedClientElection.mjs.map +1 -0
  420. package/{dist/runWhileConnectedCoordinator.d.ts → lib/summary/runWhileConnectedCoordinator.d.mts} +9 -3
  421. package/lib/summary/runWhileConnectedCoordinator.d.mts.map +1 -0
  422. package/lib/{runWhileConnectedCoordinator.js → summary/runWhileConnectedCoordinator.mjs} +12 -10
  423. package/lib/summary/runWhileConnectedCoordinator.mjs.map +1 -0
  424. package/lib/summary/runningSummarizer.d.mts +128 -0
  425. package/lib/summary/runningSummarizer.d.mts.map +1 -0
  426. package/lib/summary/runningSummarizer.mjs +675 -0
  427. package/lib/summary/runningSummarizer.mjs.map +1 -0
  428. package/lib/{summarizer.d.ts → summary/summarizer.d.mts} +20 -36
  429. package/lib/summary/summarizer.d.mts.map +1 -0
  430. package/lib/summary/summarizer.mjs +257 -0
  431. package/lib/summary/summarizer.mjs.map +1 -0
  432. package/{dist/summarizerClientElection.d.ts → lib/summary/summarizerClientElection.d.mts} +6 -6
  433. package/lib/summary/summarizerClientElection.d.mts.map +1 -0
  434. package/lib/{summarizerClientElection.js → summary/summarizerClientElection.mjs} +14 -45
  435. package/lib/summary/summarizerClientElection.mjs.map +1 -0
  436. package/{dist/summarizerHeuristics.d.ts → lib/summary/summarizerHeuristics.d.mts} +29 -7
  437. package/lib/summary/summarizerHeuristics.d.mts.map +1 -0
  438. package/lib/summary/summarizerHeuristics.mjs +151 -0
  439. package/lib/summary/summarizerHeuristics.mjs.map +1 -0
  440. package/lib/summary/summarizerNode/index.d.mts +8 -0
  441. package/lib/summary/summarizerNode/index.d.mts.map +1 -0
  442. package/lib/summary/summarizerNode/index.mjs +7 -0
  443. package/lib/summary/summarizerNode/index.mjs.map +1 -0
  444. package/lib/summary/summarizerNode/summarizerNode.d.mts +167 -0
  445. package/lib/summary/summarizerNode/summarizerNode.d.mts.map +1 -0
  446. package/lib/summary/summarizerNode/summarizerNode.mjs +521 -0
  447. package/lib/summary/summarizerNode/summarizerNode.mjs.map +1 -0
  448. package/lib/summary/summarizerNode/summarizerNodeUtils.d.mts +121 -0
  449. package/lib/summary/summarizerNode/summarizerNodeUtils.d.mts.map +1 -0
  450. package/lib/summary/summarizerNode/summarizerNodeUtils.mjs +123 -0
  451. package/lib/summary/summarizerNode/summarizerNodeUtils.mjs.map +1 -0
  452. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.mts +153 -0
  453. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.mts.map +1 -0
  454. package/lib/summary/summarizerNode/summarizerNodeWithGc.mjs +370 -0
  455. package/lib/summary/summarizerNode/summarizerNodeWithGc.mjs.map +1 -0
  456. package/{dist/summarizerTypes.d.ts → lib/summary/summarizerTypes.d.mts} +234 -84
  457. package/lib/summary/summarizerTypes.d.mts.map +1 -0
  458. package/lib/summary/summarizerTypes.mjs +6 -0
  459. package/lib/summary/summarizerTypes.mjs.map +1 -0
  460. package/lib/{summaryCollection.d.ts → summary/summaryCollection.d.mts} +23 -5
  461. package/lib/summary/summaryCollection.d.mts.map +1 -0
  462. package/lib/{summaryCollection.js → summary/summaryCollection.mjs} +76 -45
  463. package/lib/summary/summaryCollection.mjs.map +1 -0
  464. package/{dist/summaryFormat.d.ts → lib/summary/summaryFormat.d.mts} +25 -30
  465. package/lib/summary/summaryFormat.d.mts.map +1 -0
  466. package/lib/{summaryFormat.js → summary/summaryFormat.mjs} +30 -26
  467. package/lib/summary/summaryFormat.mjs.map +1 -0
  468. package/lib/summary/summaryGenerator.d.mts +127 -0
  469. package/lib/summary/summaryGenerator.d.mts.map +1 -0
  470. package/lib/{summaryGenerator.js → summary/summaryGenerator.mjs} +153 -67
  471. package/lib/summary/summaryGenerator.mjs.map +1 -0
  472. package/{dist/summaryManager.d.ts → lib/summary/summaryManager.d.mts} +15 -13
  473. package/lib/summary/summaryManager.d.mts.map +1 -0
  474. package/lib/{summaryManager.js → summary/summaryManager.mjs} +94 -51
  475. package/lib/summary/summaryManager.mjs.map +1 -0
  476. package/lib/{throttler.d.ts → throttler.d.mts} +2 -2
  477. package/lib/throttler.d.mts.map +1 -0
  478. package/lib/{throttler.js → throttler.mjs} +21 -21
  479. package/lib/throttler.mjs.map +1 -0
  480. package/package.json +174 -73
  481. package/prettier.config.cjs +8 -0
  482. package/src/batchTracker.ts +60 -55
  483. package/src/blobManager.ts +937 -294
  484. package/src/connectionTelemetry.ts +342 -252
  485. package/src/containerHandleContext.ts +27 -29
  486. package/src/containerRuntime.ts +3879 -3143
  487. package/src/dataStore.ts +170 -140
  488. package/src/dataStoreContext.ts +1166 -986
  489. package/src/dataStoreContexts.ts +176 -163
  490. package/src/dataStoreRegistry.ts +29 -21
  491. package/src/dataStores.ts +921 -678
  492. package/src/deltaManagerProxyBase.ts +111 -0
  493. package/src/deltaManagerSummarizerProxy.ts +49 -0
  494. package/src/deltaScheduler.ts +161 -156
  495. package/src/error.ts +21 -0
  496. package/src/gc/garbageCollection.md +106 -0
  497. package/src/gc/garbageCollection.ts +1153 -0
  498. package/src/gc/gcConfigs.ts +216 -0
  499. package/src/gc/gcDefinitions.ts +502 -0
  500. package/src/gc/gcHelpers.ts +284 -0
  501. package/src/gc/gcReferenceGraphAlgorithm.ts +52 -0
  502. package/src/gc/gcSummaryDefinitions.ts +54 -0
  503. package/src/gc/gcSummaryStateTracker.ts +299 -0
  504. package/src/gc/gcTelemetry.ts +423 -0
  505. package/src/gc/gcUnreferencedStateTracker.ts +153 -0
  506. package/src/gc/index.ts +59 -0
  507. package/src/index.ts +101 -74
  508. package/src/messageTypes.ts +238 -0
  509. package/src/metadata.ts +26 -0
  510. package/src/opLifecycle/README.md +321 -0
  511. package/src/opLifecycle/batchManager.ts +179 -0
  512. package/src/opLifecycle/definitions.ts +89 -0
  513. package/src/opLifecycle/index.ts +19 -0
  514. package/src/opLifecycle/opCompressor.ts +99 -0
  515. package/src/opLifecycle/opDecompressor.ts +190 -0
  516. package/src/opLifecycle/opGroupingManager.ts +133 -0
  517. package/src/opLifecycle/opSplitter.ts +279 -0
  518. package/src/opLifecycle/outbox.ts +471 -0
  519. package/src/opLifecycle/remoteMessageProcessor.ts +175 -0
  520. package/src/opProperties.ts +21 -0
  521. package/src/packageVersion.ts +1 -1
  522. package/src/pendingStateManager.ts +396 -465
  523. package/src/scheduleManager.ts +358 -0
  524. package/src/storageServiceWithAttachBlobs.ts +38 -0
  525. package/src/summary/index.ts +109 -0
  526. package/src/summary/orderedClientElection.ts +571 -0
  527. package/src/summary/runWhileConnectedCoordinator.ts +117 -0
  528. package/src/summary/runningSummarizer.ts +920 -0
  529. package/src/summary/summarizer.ts +352 -0
  530. package/src/summary/summarizerClientElection.ts +140 -0
  531. package/src/summary/summarizerHeuristics.ts +227 -0
  532. package/src/summary/summarizerNode/index.ts +12 -0
  533. package/src/summary/summarizerNode/summarizerNode.ts +725 -0
  534. package/src/summary/summarizerNode/summarizerNodeUtils.ts +206 -0
  535. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +571 -0
  536. package/src/summary/summarizerTypes.ts +631 -0
  537. package/src/summary/summaryCollection.ts +474 -0
  538. package/src/summary/summaryFormat.ts +249 -0
  539. package/src/summary/summaryGenerator.ts +539 -0
  540. package/src/summary/summaryManager.ts +452 -0
  541. package/src/throttler.ts +131 -122
  542. package/tsc-multi.test.json +4 -0
  543. package/tsconfig.json +11 -13
  544. package/dist/batchTracker.js.map +0 -1
  545. package/dist/blobManager.js +0 -249
  546. package/dist/blobManager.js.map +0 -1
  547. package/dist/connectionTelemetry.js +0 -178
  548. package/dist/connectionTelemetry.js.map +0 -1
  549. package/dist/containerHandleContext.js.map +0 -1
  550. package/dist/containerRuntime.js +0 -2174
  551. package/dist/containerRuntime.js.map +0 -1
  552. package/dist/dataStore.js.map +0 -1
  553. package/dist/dataStoreContext.js.map +0 -1
  554. package/dist/dataStoreContexts.js.map +0 -1
  555. package/dist/dataStoreRegistry.js.map +0 -1
  556. package/dist/dataStores.js.map +0 -1
  557. package/dist/deltaScheduler.js.map +0 -1
  558. package/dist/garbageCollection.d.ts +0 -319
  559. package/dist/garbageCollection.d.ts.map +0 -1
  560. package/dist/garbageCollection.js +0 -993
  561. package/dist/garbageCollection.js.map +0 -1
  562. package/dist/index.js +0 -33
  563. package/dist/index.js.map +0 -1
  564. package/dist/opTelemetry.d.ts +0 -22
  565. package/dist/opTelemetry.d.ts.map +0 -1
  566. package/dist/opTelemetry.js +0 -60
  567. package/dist/opTelemetry.js.map +0 -1
  568. package/dist/orderedClientElection.d.ts.map +0 -1
  569. package/dist/orderedClientElection.js.map +0 -1
  570. package/dist/packageVersion.js.map +0 -1
  571. package/dist/pendingStateManager.js +0 -346
  572. package/dist/pendingStateManager.js.map +0 -1
  573. package/dist/runWhileConnectedCoordinator.d.ts.map +0 -1
  574. package/dist/runWhileConnectedCoordinator.js.map +0 -1
  575. package/dist/runningSummarizer.d.ts +0 -93
  576. package/dist/runningSummarizer.d.ts.map +0 -1
  577. package/dist/runningSummarizer.js +0 -384
  578. package/dist/runningSummarizer.js.map +0 -1
  579. package/dist/serializedSnapshotStorage.d.ts +0 -58
  580. package/dist/serializedSnapshotStorage.d.ts.map +0 -1
  581. package/dist/serializedSnapshotStorage.js +0 -108
  582. package/dist/serializedSnapshotStorage.js.map +0 -1
  583. package/dist/summarizer.d.ts.map +0 -1
  584. package/dist/summarizer.js +0 -348
  585. package/dist/summarizer.js.map +0 -1
  586. package/dist/summarizerClientElection.d.ts.map +0 -1
  587. package/dist/summarizerClientElection.js.map +0 -1
  588. package/dist/summarizerHandle.d.ts +0 -12
  589. package/dist/summarizerHandle.d.ts.map +0 -1
  590. package/dist/summarizerHandle.js +0 -22
  591. package/dist/summarizerHandle.js.map +0 -1
  592. package/dist/summarizerHeuristics.d.ts.map +0 -1
  593. package/dist/summarizerHeuristics.js +0 -84
  594. package/dist/summarizerHeuristics.js.map +0 -1
  595. package/dist/summarizerTypes.d.ts.map +0 -1
  596. package/dist/summarizerTypes.js.map +0 -1
  597. package/dist/summaryCollection.d.ts.map +0 -1
  598. package/dist/summaryCollection.js.map +0 -1
  599. package/dist/summaryFormat.d.ts.map +0 -1
  600. package/dist/summaryFormat.js.map +0 -1
  601. package/dist/summaryGenerator.d.ts.map +0 -1
  602. package/dist/summaryGenerator.js.map +0 -1
  603. package/dist/summaryManager.d.ts.map +0 -1
  604. package/dist/summaryManager.js.map +0 -1
  605. package/dist/throttler.js.map +0 -1
  606. package/garbageCollection.md +0 -41
  607. package/lib/batchTracker.d.ts.map +0 -1
  608. package/lib/batchTracker.js.map +0 -1
  609. package/lib/blobManager.d.ts +0 -95
  610. package/lib/blobManager.d.ts.map +0 -1
  611. package/lib/blobManager.js +0 -244
  612. package/lib/blobManager.js.map +0 -1
  613. package/lib/connectionTelemetry.d.ts.map +0 -1
  614. package/lib/connectionTelemetry.js +0 -174
  615. package/lib/connectionTelemetry.js.map +0 -1
  616. package/lib/containerHandleContext.d.ts.map +0 -1
  617. package/lib/containerHandleContext.js.map +0 -1
  618. package/lib/containerRuntime.d.ts +0 -616
  619. package/lib/containerRuntime.d.ts.map +0 -1
  620. package/lib/containerRuntime.js +0 -2166
  621. package/lib/containerRuntime.js.map +0 -1
  622. package/lib/dataStore.d.ts.map +0 -1
  623. package/lib/dataStore.js.map +0 -1
  624. package/lib/dataStoreContext.d.ts.map +0 -1
  625. package/lib/dataStoreContext.js.map +0 -1
  626. package/lib/dataStoreContexts.d.ts.map +0 -1
  627. package/lib/dataStoreContexts.js.map +0 -1
  628. package/lib/dataStoreRegistry.d.ts.map +0 -1
  629. package/lib/dataStoreRegistry.js.map +0 -1
  630. package/lib/dataStores.d.ts.map +0 -1
  631. package/lib/dataStores.js.map +0 -1
  632. package/lib/deltaScheduler.d.ts.map +0 -1
  633. package/lib/deltaScheduler.js.map +0 -1
  634. package/lib/garbageCollection.d.ts +0 -319
  635. package/lib/garbageCollection.d.ts.map +0 -1
  636. package/lib/garbageCollection.js +0 -989
  637. package/lib/garbageCollection.js.map +0 -1
  638. package/lib/index.d.ts +0 -14
  639. package/lib/index.d.ts.map +0 -1
  640. package/lib/index.js +0 -13
  641. package/lib/index.js.map +0 -1
  642. package/lib/opTelemetry.d.ts +0 -22
  643. package/lib/opTelemetry.d.ts.map +0 -1
  644. package/lib/opTelemetry.js +0 -56
  645. package/lib/opTelemetry.js.map +0 -1
  646. package/lib/orderedClientElection.d.ts.map +0 -1
  647. package/lib/orderedClientElection.js.map +0 -1
  648. package/lib/packageVersion.js.map +0 -1
  649. package/lib/pendingStateManager.d.ts.map +0 -1
  650. package/lib/pendingStateManager.js +0 -339
  651. package/lib/pendingStateManager.js.map +0 -1
  652. package/lib/runWhileConnectedCoordinator.d.ts.map +0 -1
  653. package/lib/runWhileConnectedCoordinator.js.map +0 -1
  654. package/lib/runningSummarizer.d.ts +0 -93
  655. package/lib/runningSummarizer.d.ts.map +0 -1
  656. package/lib/runningSummarizer.js +0 -380
  657. package/lib/runningSummarizer.js.map +0 -1
  658. package/lib/serializedSnapshotStorage.d.ts +0 -58
  659. package/lib/serializedSnapshotStorage.d.ts.map +0 -1
  660. package/lib/serializedSnapshotStorage.js +0 -104
  661. package/lib/serializedSnapshotStorage.js.map +0 -1
  662. package/lib/summarizer.d.ts.map +0 -1
  663. package/lib/summarizer.js +0 -342
  664. package/lib/summarizer.js.map +0 -1
  665. package/lib/summarizerClientElection.d.ts.map +0 -1
  666. package/lib/summarizerClientElection.js.map +0 -1
  667. package/lib/summarizerHandle.d.ts +0 -12
  668. package/lib/summarizerHandle.d.ts.map +0 -1
  669. package/lib/summarizerHandle.js +0 -18
  670. package/lib/summarizerHandle.js.map +0 -1
  671. package/lib/summarizerHeuristics.d.ts.map +0 -1
  672. package/lib/summarizerHeuristics.js +0 -79
  673. package/lib/summarizerHeuristics.js.map +0 -1
  674. package/lib/summarizerTypes.d.ts.map +0 -1
  675. package/lib/summarizerTypes.js +0 -9
  676. package/lib/summarizerTypes.js.map +0 -1
  677. package/lib/summaryCollection.d.ts.map +0 -1
  678. package/lib/summaryCollection.js.map +0 -1
  679. package/lib/summaryFormat.d.ts.map +0 -1
  680. package/lib/summaryFormat.js.map +0 -1
  681. package/lib/summaryGenerator.d.ts +0 -85
  682. package/lib/summaryGenerator.d.ts.map +0 -1
  683. package/lib/summaryGenerator.js.map +0 -1
  684. package/lib/summaryManager.d.ts.map +0 -1
  685. package/lib/summaryManager.js.map +0 -1
  686. package/lib/throttler.d.ts.map +0 -1
  687. package/lib/throttler.js.map +0 -1
  688. package/src/garbageCollection.ts +0 -1434
  689. package/src/opTelemetry.ts +0 -71
  690. package/src/orderedClientElection.ts +0 -511
  691. package/src/runWhileConnectedCoordinator.ts +0 -106
  692. package/src/runningSummarizer.ts +0 -550
  693. package/src/serializedSnapshotStorage.ts +0 -146
  694. package/src/summarizer.ts +0 -438
  695. package/src/summarizerClientElection.ts +0 -161
  696. package/src/summarizerHandle.ts +0 -21
  697. package/src/summarizerHeuristics.ts +0 -108
  698. package/src/summarizerTypes.ts +0 -462
  699. package/src/summaryCollection.ts +0 -406
  700. package/src/summaryFormat.ts +0 -239
  701. package/src/summaryGenerator.ts +0 -427
  702. package/src/summaryManager.ts +0 -368
  703. package/tsconfig.esnext.json +0 -7
@@ -0,0 +1,631 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+
6
+ import { IEvent, IEventProvider, ITelemetryProperties } from "@fluidframework/core-interfaces";
7
+ import { ITelemetryLoggerExt, ITelemetryLoggerPropertyBag } from "@fluidframework/telemetry-utils";
8
+ import { ContainerWarning, IDeltaManager } from "@fluidframework/container-definitions";
9
+ import {
10
+ ISequencedDocumentMessage,
11
+ ISummaryTree,
12
+ IDocumentMessage,
13
+ } from "@fluidframework/protocol-definitions";
14
+ import { ISummaryStats } from "@fluidframework/runtime-definitions";
15
+ import { ISummaryConfigurationHeuristics } from "../containerRuntime";
16
+ import { ISummaryAckMessage, ISummaryNackMessage, ISummaryOpMessage } from "./summaryCollection";
17
+ import { SummarizeReason } from "./summaryGenerator";
18
+
19
+ /**
20
+ * Similar to AbortSignal, but using promise instead of events
21
+ * @param T - cancellation reason type
22
+ * @alpha
23
+ */
24
+ export interface ICancellationToken<T> {
25
+ /** Tells if this cancellable token is cancelled */
26
+ readonly cancelled: boolean;
27
+ /**
28
+ * Promise that gets fulfilled when this cancellable token is cancelled
29
+ * @returns reason of cancellation
30
+ */
31
+ readonly waitCancelled: Promise<T>;
32
+ }
33
+
34
+ /**
35
+ * Similar to AbortSignal, but using promise instead of events
36
+ * @alpha
37
+ */
38
+ export type ISummaryCancellationToken = ICancellationToken<SummarizerStopReason>;
39
+
40
+ /**
41
+ * Data required to update internal tracking state after receiving a Summary Ack.
42
+ * @alpha
43
+ */
44
+ export interface IRefreshSummaryAckOptions {
45
+ /** Handle from the ack's summary op. */
46
+ readonly proposalHandle: string | undefined;
47
+ /** Handle from the summary ack just received */
48
+ readonly ackHandle: string;
49
+ /** Reference sequence number from the ack's summary op */
50
+ readonly summaryRefSeq: number;
51
+ /** Telemetry logger to which telemetry events will be forwarded. */
52
+ readonly summaryLogger: ITelemetryLoggerExt;
53
+ }
54
+
55
+ /**
56
+ * @alpha
57
+ */
58
+ export interface ISummarizerInternalsProvider {
59
+ /** Encapsulates the work to walk the internals of the running container to generate a summary */
60
+ submitSummary(options: ISubmitSummaryOptions): Promise<SubmitSummaryResult>;
61
+
62
+ /** Callback whenever a new SummaryAck is received, to update internal tracking state */
63
+ refreshLatestSummaryAck(options: IRefreshSummaryAckOptions): Promise<void>;
64
+ }
65
+
66
+ /**
67
+ * @deprecated Options that control the behavior of a running summarizer.
68
+ * @public
69
+ * */
70
+ export interface ISummarizerOptions {
71
+ /**
72
+ * Set to true to disable the default heuristics from running; false by default.
73
+ * This affects only the heuristics around when a summarizer should
74
+ * submit summaries. So when it is disabled, summarizer clients should
75
+ * not be expected to summarize unless an on-demand summary is requested.
76
+ */
77
+ disableHeuristics: boolean;
78
+ }
79
+
80
+ /**
81
+ * @internal
82
+ */
83
+ export interface ISummarizingWarning extends ContainerWarning {
84
+ readonly errorType: "summarizingError";
85
+ readonly logged: boolean;
86
+ }
87
+
88
+ /**
89
+ * @alpha
90
+ */
91
+ export interface IConnectableRuntime {
92
+ readonly disposed: boolean;
93
+ readonly connected: boolean;
94
+ readonly clientId: string | undefined;
95
+ once(event: "connected" | "disconnected" | "dispose", listener: () => void): this;
96
+ }
97
+
98
+ /**
99
+ * @alpha
100
+ */
101
+ export interface ISummarizerRuntime extends IConnectableRuntime {
102
+ readonly logger: ITelemetryLoggerExt;
103
+ /** clientId of parent (non-summarizing) container that owns summarizer container */
104
+ readonly summarizerClientId: string | undefined;
105
+ readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;
106
+ disposeFn(): void;
107
+ closeFn(): void;
108
+ on(
109
+ event: "op",
110
+ listener: (op: ISequencedDocumentMessage, runtimeMessage?: boolean) => void,
111
+ ): this;
112
+ off(
113
+ event: "op",
114
+ listener: (op: ISequencedDocumentMessage, runtimeMessage?: boolean) => void,
115
+ ): this;
116
+ }
117
+
118
+ /**
119
+ * Options affecting summarize behavior.
120
+ * @alpha
121
+ */
122
+ export interface ISummarizeOptions {
123
+ /** True to generate the full tree with no handle reuse optimizations; defaults to false */
124
+ readonly fullTree?: boolean;
125
+ /**
126
+ * True to ask the server what the latest summary is first; defaults to false
127
+ *
128
+ * @deprecated Summarize will not refresh latest snapshot state anymore. Instead it updates the cache and closes.
129
+ * It's expected a new summarizer client will be created, likely by the same parent.
130
+ */
131
+ readonly refreshLatestAck?: boolean;
132
+ }
133
+
134
+ /**
135
+ * @alpha
136
+ */
137
+ export interface ISubmitSummaryOptions extends ISummarizeOptions {
138
+ /** Logger to use for correlated summary events */
139
+ readonly summaryLogger: ITelemetryLoggerExt;
140
+ /** Tells when summary process should be cancelled */
141
+ readonly cancellationToken: ISummaryCancellationToken;
142
+ /** Summarization may be attempted multiple times. This tells whether this is the final summarization attempt. */
143
+ readonly finalAttempt?: boolean;
144
+ }
145
+
146
+ /**
147
+ * @alpha
148
+ */
149
+ export interface IOnDemandSummarizeOptions extends ISummarizeOptions {
150
+ /** Reason for generating summary. */
151
+ readonly reason: string;
152
+ }
153
+
154
+ /**
155
+ * Options to use when enqueueing a summarize attempt.
156
+ * @alpha
157
+ */
158
+ export interface IEnqueueSummarizeOptions extends IOnDemandSummarizeOptions {
159
+ /** If specified, The summarize attempt will not occur until after this sequence number. */
160
+ readonly afterSequenceNumber?: number;
161
+
162
+ /**
163
+ * True to override the existing enqueued summarize attempt if there is one.
164
+ * This will guarantee that this attempt gets enqueued. If override is false,
165
+ * than an existing enqueued summarize attempt will block a new one from being
166
+ * enqueued. There can only be one enqueued at a time. Defaults to false.
167
+ */
168
+ readonly override?: boolean;
169
+ }
170
+
171
+ /**
172
+ * In addition to the normal summary tree + stats, this contains additional stats
173
+ * only relevant at the root of the tree.
174
+ * @alpha
175
+ */
176
+ export interface IGeneratedSummaryStats extends ISummaryStats {
177
+ /** The total number of data stores in the container. */
178
+ readonly dataStoreCount: number;
179
+ /** The number of data stores that were summarized in this summary. */
180
+ readonly summarizedDataStoreCount: number;
181
+ /** The number of data stores whose GC reference state was updated in this summary. */
182
+ readonly gcStateUpdatedDataStoreCount?: number;
183
+ /** The size of the gc blobs in this summary. */
184
+ readonly gcTotalBlobsSize?: number;
185
+ /** The number of gc blobs in this summary. */
186
+ readonly gcBlobNodeCount?: number;
187
+ /** The summary number for a container's summary. Incremented on summaries throughout its lifetime. */
188
+ readonly summaryNumber: number;
189
+ }
190
+
191
+ /**
192
+ * Base results for all submitSummary attempts.
193
+ * @alpha
194
+ */
195
+ export interface IBaseSummarizeResult {
196
+ readonly stage: "base";
197
+ /** Error object related to failed summarize attempt. */
198
+ readonly error: any;
199
+ /** Reference sequence number as of the generate summary attempt. */
200
+ readonly referenceSequenceNumber: number;
201
+ readonly minimumSequenceNumber: number;
202
+ }
203
+
204
+ /**
205
+ * Results of submitSummary after generating the summary tree.
206
+ * @alpha
207
+ */
208
+ export interface IGenerateSummaryTreeResult extends Omit<IBaseSummarizeResult, "stage"> {
209
+ readonly stage: "generate";
210
+ /** Generated summary tree. */
211
+ readonly summaryTree: ISummaryTree;
212
+ /** Stats for generated summary tree. */
213
+ readonly summaryStats: IGeneratedSummaryStats;
214
+ /** Time it took to generate the summary tree and stats. */
215
+ readonly generateDuration: number;
216
+ /** True if the full tree regeneration with no handle reuse optimizations was forced. */
217
+ readonly forcedFullTree: boolean;
218
+ }
219
+
220
+ /**
221
+ * Results of submitSummary after uploading the tree to storage.
222
+ * @alpha
223
+ */
224
+ export interface IUploadSummaryResult extends Omit<IGenerateSummaryTreeResult, "stage"> {
225
+ readonly stage: "upload";
226
+ /** The handle returned by storage pointing to the uploaded summary tree. */
227
+ readonly handle: string;
228
+ /** Time it took to upload the summary tree to storage. */
229
+ readonly uploadDuration: number;
230
+ }
231
+
232
+ /**
233
+ * Results of submitSummary after submitting the summarize op.
234
+ * @alpha
235
+ */
236
+ export interface ISubmitSummaryOpResult extends Omit<IUploadSummaryResult, "stage" | "error"> {
237
+ readonly stage: "submit";
238
+ /** The client sequence number of the summarize op submitted for the summary. */
239
+ readonly clientSequenceNumber: number;
240
+ /** Time it took to submit the summarize op to the broadcasting service. */
241
+ readonly submitOpDuration: number;
242
+ }
243
+
244
+ /**
245
+ * Strict type representing result of a submitSummary attempt.
246
+ * The result consists of 4 possible stages, each with its own data.
247
+ * The data is cumulative, so each stage will contain the data from the previous stages.
248
+ * If the final "submitted" stage is not reached, the result may contain the error object.
249
+ *
250
+ * Stages:
251
+ *
252
+ * 1. "base" - stopped before the summary tree was even generated, and the result only contains the base data
253
+ *
254
+ * 2. "generate" - the summary tree was generated, and the result will contain that tree + stats
255
+ *
256
+ * 3. "upload" - the summary was uploaded to storage, and the result contains the server-provided handle
257
+ *
258
+ * 4. "submit" - the summarize op was submitted, and the result contains the op client sequence number.
259
+ * @alpha
260
+ */
261
+ export type SubmitSummaryResult =
262
+ | IBaseSummarizeResult
263
+ | IGenerateSummaryTreeResult
264
+ | IUploadSummaryResult
265
+ | ISubmitSummaryOpResult;
266
+
267
+ /**
268
+ * The stages of Summarize, used to describe how far progress succeeded in case of a failure at a later stage.
269
+ * @alpha
270
+ */
271
+ export type SummaryStage = SubmitSummaryResult["stage"] | "unknown";
272
+
273
+ /**
274
+ * Type for summarization failures that are retriable.
275
+ * @alpha
276
+ */
277
+ export interface IRetriableFailureResult {
278
+ readonly retryAfterSeconds?: number;
279
+ }
280
+
281
+ /**
282
+ * The data in summarizer result when submit summary stage fails.
283
+ * @alpha
284
+ */
285
+ export interface SubmitSummaryFailureData extends IRetriableFailureResult {
286
+ stage: SummaryStage;
287
+ }
288
+
289
+ /**
290
+ * @alpha
291
+ */
292
+ export interface IBroadcastSummaryResult {
293
+ readonly summarizeOp: ISummaryOpMessage;
294
+ readonly broadcastDuration: number;
295
+ }
296
+
297
+ /**
298
+ * @alpha
299
+ */
300
+ export interface IAckSummaryResult {
301
+ readonly summaryAckOp: ISummaryAckMessage;
302
+ readonly ackNackDuration: number;
303
+ }
304
+
305
+ /**
306
+ * @alpha
307
+ */
308
+ export interface INackSummaryResult extends IRetriableFailureResult {
309
+ readonly summaryNackOp: ISummaryNackMessage;
310
+ readonly ackNackDuration: number;
311
+ }
312
+
313
+ /**
314
+ * @alpha
315
+ */
316
+ export type SummarizeResultPart<TSuccess, TFailure = undefined> =
317
+ | {
318
+ success: true;
319
+ data: TSuccess;
320
+ }
321
+ | {
322
+ success: false;
323
+ data: TFailure | undefined;
324
+ message: string;
325
+ error: any;
326
+ };
327
+
328
+ /**
329
+ * @alpha
330
+ */
331
+ export interface ISummarizeResults {
332
+ /** Resolves when we generate, upload, and submit the summary. */
333
+ readonly summarySubmitted: Promise<
334
+ SummarizeResultPart<SubmitSummaryResult, SubmitSummaryFailureData>
335
+ >;
336
+ /** Resolves when we observe our summarize op broadcast. */
337
+ readonly summaryOpBroadcasted: Promise<SummarizeResultPart<IBroadcastSummaryResult>>;
338
+ /** Resolves when we receive a summaryAck or summaryNack. */
339
+ readonly receivedSummaryAckOrNack: Promise<
340
+ SummarizeResultPart<IAckSummaryResult, INackSummaryResult>
341
+ >;
342
+ }
343
+
344
+ /**
345
+ * @alpha
346
+ */
347
+ export type EnqueueSummarizeResult =
348
+ | (ISummarizeResults & {
349
+ /**
350
+ * Indicates that another summarize attempt is not already enqueued,
351
+ * and this attempt has been enqueued.
352
+ */
353
+ readonly alreadyEnqueued?: undefined;
354
+ })
355
+ | (ISummarizeResults & {
356
+ /** Indicates that another summarize attempt was already enqueued. */
357
+ readonly alreadyEnqueued: true;
358
+ /**
359
+ * Indicates that the other enqueued summarize attempt was abandoned,
360
+ * and this attempt has been enqueued enqueued.
361
+ */
362
+ readonly overridden: true;
363
+ })
364
+ | {
365
+ /** Indicates that another summarize attempt was already enqueued. */
366
+ readonly alreadyEnqueued: true;
367
+ /**
368
+ * Indicates that the other enqueued summarize attempt remains enqueued,
369
+ * and this attempt has not been enqueued.
370
+ */
371
+ readonly overridden?: undefined;
372
+ };
373
+
374
+ /**
375
+ * @alpha
376
+ */
377
+ export type SummarizerStopReason =
378
+ /** Summarizer client failed to summarize in all 3 consecutive attempts. */
379
+ | "failToSummarize"
380
+ /** Parent client reported that it is no longer connected. */
381
+ | "parentNotConnected"
382
+ /**
383
+ * Parent client reported that it is no longer elected the summarizer.
384
+ * This is the normal flow; a disconnect will always trigger the parent
385
+ * client to no longer be elected as responsible for summaries. Then it
386
+ * tries to stop its spawned summarizer client.
387
+ */
388
+ | "notElectedParent"
389
+ /**
390
+ * We are not already running the summarizer and we are not the current elected client id.
391
+ */
392
+ | "notElectedClient"
393
+ /** Summarizer client was disconnected */
394
+ | "summarizerClientDisconnected"
395
+ /** running summarizer threw an exception */
396
+ | "summarizerException"
397
+ /**
398
+ * The previous summary state on the summarizer is not the most recently acked summary. this also happens when the
399
+ * first submitSummary attempt fails for any reason and there's a 2nd summary attempt without an ack
400
+ */
401
+ | "latestSummaryStateStale";
402
+
403
+ /**
404
+ * @alpha
405
+ */
406
+ export interface ISummarizeEventProps {
407
+ result: "success" | "failure" | "canceled";
408
+ currentAttempt: number;
409
+ maxAttempts: number;
410
+ error?: any;
411
+ }
412
+
413
+ /**
414
+ * @alpha
415
+ */
416
+ export interface ISummarizerEvents extends IEvent {
417
+ (event: "summarize", listener: (props: ISummarizeEventProps) => void);
418
+ }
419
+
420
+ /**
421
+ * @alpha
422
+ */
423
+ export interface ISummarizer extends IEventProvider<ISummarizerEvents> {
424
+ /**
425
+ * Allows {@link ISummarizer} to be used with our {@link @fluidframework/core-interfaces#FluidObject} pattern.
426
+ */
427
+ readonly ISummarizer?: ISummarizer;
428
+
429
+ /*
430
+ * Asks summarizer to move to exit.
431
+ * Summarizer will finish current processes, which may take a while.
432
+ * For example, summarizer may complete last summary before exiting.
433
+ */
434
+ stop(reason: SummarizerStopReason): void;
435
+
436
+ /* Closes summarizer. Any pending processes (summary in flight) are abandoned. */
437
+ close(): void;
438
+
439
+ run(onBehalfOf: string, disableHeuristics?: boolean): Promise<SummarizerStopReason>;
440
+
441
+ /**
442
+ * Attempts to generate a summary on demand. If already running, takes no action.
443
+ * @param options - options controlling the summarize attempt
444
+ * @returns an alreadyRunning promise if a summarize attempt is already in progress,
445
+ * which will resolve when the current attempt completes. At that point caller can
446
+ * decide to try again or not. Otherwise, it will return an object containing promises
447
+ * that resolve as the summarize attempt progresses. They will resolve with success
448
+ * false if a failure is encountered.
449
+ */
450
+ summarizeOnDemand(options: IOnDemandSummarizeOptions): ISummarizeResults;
451
+ /**
452
+ * Enqueue an attempt to summarize after the specified sequence number.
453
+ * If afterSequenceNumber is provided, the summarize attempt is "enqueued"
454
+ * to run once an eligible op comes in with sequenceNumber \>= afterSequenceNumber.
455
+ * @param options - options controlling the summarize attempt
456
+ * @returns an object containing an alreadyEnqueued flag to indicate if another
457
+ * summarize attempt has already been enqueued. It also may contain an overridden flag
458
+ * when alreadyEnqueued is true, that indicates whether this attempt forced the
459
+ * previous attempt to abort. If this attempt becomes enqueued, it returns an object
460
+ * containing promises that resolve as the summarize attempt progresses. They will
461
+ * resolve with success false if a failure is encountered.
462
+ */
463
+ enqueueSummarize(options: IEnqueueSummarizeOptions): EnqueueSummarizeResult;
464
+ }
465
+
466
+ /** Data about an attempt to summarize used for heuristics. */
467
+ export interface ISummarizeAttempt {
468
+ /** Reference sequence number when summary was generated or attempted */
469
+ readonly refSequenceNumber: number;
470
+
471
+ /** Time of summary attempt after it was sent or attempted */
472
+ readonly summaryTime: number;
473
+
474
+ /** Sequence number of summary op */
475
+ summarySequenceNumber?: number;
476
+ }
477
+
478
+ /** Data relevant for summary heuristics. */
479
+ export interface ISummarizeHeuristicData {
480
+ /** Latest received op sequence number */
481
+ lastOpSequenceNumber: number;
482
+
483
+ /** Most recent summary attempt from this client */
484
+ readonly lastAttempt: ISummarizeAttempt;
485
+
486
+ /** Most recent summary that received an ack */
487
+ readonly lastSuccessfulSummary: Readonly<ISummarizeAttempt>;
488
+
489
+ /** Number of runtime ops since last summary */
490
+ numRuntimeOps: number;
491
+
492
+ /** Number of non-runtime ops since last summary */
493
+ numNonRuntimeOps: number;
494
+
495
+ /** Cumulative size in bytes of all the ops since the last summary */
496
+ totalOpsSize: number;
497
+
498
+ /** Wether or not this instance contains adjusted metrics due to missing op data */
499
+ hasMissingOpData: boolean;
500
+
501
+ /**
502
+ * Updates lastAttempt and lastSuccessfulAttempt based on the last summary.
503
+ * @param lastSummary - last ack summary
504
+ */
505
+ updateWithLastSummaryAckInfo(lastSummary: ISummarizeAttempt): void;
506
+
507
+ /**
508
+ * Records a summary attempt. If the attempt was successfully sent,
509
+ * provide the reference sequence number, otherwise it will be set
510
+ * to the last seen op sequence number.
511
+ * @param referenceSequenceNumber - reference sequence number of sent summary
512
+ */
513
+ recordAttempt(referenceSequenceNumber?: number): void;
514
+
515
+ /** Mark that the last sent summary attempt has received an ack */
516
+ markLastAttemptAsSuccessful(): void;
517
+
518
+ opsSinceLastSummary: number;
519
+ }
520
+
521
+ /** Responsible for running heuristics determining when to summarize. */
522
+ export interface ISummarizeHeuristicRunner {
523
+ /** Start specific heuristic trackers (ex: idle timer) */
524
+ start(): void;
525
+
526
+ /** Runs the heuristics to determine if it should try to summarize */
527
+ run(): void;
528
+
529
+ /** Runs a different heuristic to check if it should summarize before closing */
530
+ shouldRunLastSummary(): boolean;
531
+
532
+ /** Disposes of resources */
533
+ dispose(): void;
534
+ }
535
+
536
+ type ISummarizeTelemetryRequiredProperties =
537
+ /** Reason code for attempting to summarize */
538
+ "summarizeReason";
539
+
540
+ type ISummarizeTelemetryOptionalProperties =
541
+ /** Number of attempts within the last time window, used for calculating the throttle delay. */
542
+ | "summaryAttempts"
543
+ /** Number of attempts within the current phase (currently capped at 2 ) */
544
+ | "summaryAttemptsPerPhase"
545
+ /** One-based count of phases we've attempted (used to index into an array of ISummarizeOptions */
546
+ | "summaryAttemptPhase"
547
+ /** Summarization may be attempted multiple times. This tells whether this is the final summarization attempt */
548
+ | "finalAttempt"
549
+ | keyof ISummarizeOptions;
550
+
551
+ export type ISummarizeTelemetryProperties = Pick<
552
+ ITelemetryProperties,
553
+ ISummarizeTelemetryRequiredProperties
554
+ > &
555
+ Partial<Pick<ITelemetryProperties, ISummarizeTelemetryOptionalProperties>>;
556
+
557
+ /** Strategy used to heuristically determine when we should run a summary */
558
+ export interface ISummaryHeuristicStrategy {
559
+ /** Summarize reason for this summarize heuristic strategy (ex: "maxTime") */
560
+ summarizeReason: Readonly<SummarizeReason>;
561
+
562
+ /**
563
+ * Determines if this strategy's summarize criteria been met
564
+ * @param configuration - summary configuration we are to check against
565
+ * @param heuristicData - heuristic data used to confirm conditions are met
566
+ */
567
+ shouldRunSummary(
568
+ configuration: ISummaryConfigurationHeuristics,
569
+ heuristicData: ISummarizeHeuristicData,
570
+ ): boolean;
571
+ }
572
+
573
+ type SummaryGeneratorRequiredTelemetryProperties =
574
+ /** True to generate the full tree with no handle reuse optimizations */
575
+ | "fullTree"
576
+ /** Time since we last attempted to generate a summary */
577
+ | "timeSinceLastAttempt"
578
+ /** Time since we last successfully generated a summary */
579
+ | "timeSinceLastSummary";
580
+
581
+ type SummaryGeneratorOptionalTelemetryProperties =
582
+ /** Reference sequence number as of the generate summary attempt. */
583
+ | "referenceSequenceNumber"
584
+ /** minimum sequence number (at the reference sequence number) */
585
+ | "minimumSequenceNumber"
586
+ /** Delta between the current reference sequence number and the reference sequence number of the last attempt */
587
+ | "opsSinceLastAttempt"
588
+ /** Delta between the current reference sequence number and the reference sequence number of the last summary */
589
+ | "opsSinceLastSummary"
590
+ /**
591
+ * Delta in sum of op sizes between the current reference sequence number and the reference
592
+ * sequence number of the last summary
593
+ */
594
+ | "opsSizesSinceLastSummary"
595
+ /** Delta between the number of non-runtime ops since the last summary */
596
+ | "nonRuntimeOpsSinceLastSummary"
597
+ /** Delta between the number of runtime ops since the last summary */
598
+ | "runtimeOpsSinceLastSummary"
599
+ /** Wether or not this instance contains adjusted metrics due to missing op data */
600
+ | "hasMissingOpData"
601
+ /** Time it took to generate the summary tree and stats. */
602
+ | "generateDuration"
603
+ /** The handle returned by storage pointing to the uploaded summary tree. */
604
+ | "handle"
605
+ /** Time it took to upload the summary tree to storage. */
606
+ | "uploadDuration"
607
+ /** The client sequence number of the summarize op submitted for the summary. */
608
+ | "clientSequenceNumber"
609
+ /** Time it took for this summary to be acked after it was generated */
610
+ | "ackWaitDuration"
611
+ /** Reference sequence number of the ack/nack message */
612
+ | "ackNackSequenceNumber"
613
+ /** Actual sequence number of the summary op proposal. */
614
+ | "summarySequenceNumber"
615
+ /** Optional Retry-After time in seconds. If specified, the client should wait this many seconds before retrying. */
616
+ | "nackRetryAfter"
617
+ /** The stage at which the submit summary method failed at. This can help determine what type of failure we have */
618
+ | "stage";
619
+
620
+ export type SummaryGeneratorTelemetry = Pick<
621
+ ITelemetryProperties,
622
+ SummaryGeneratorRequiredTelemetryProperties
623
+ > &
624
+ Partial<Pick<ITelemetryProperties, SummaryGeneratorOptionalTelemetryProperties>>;
625
+
626
+ export interface ISummarizeRunnerTelemetry extends ITelemetryLoggerPropertyBag {
627
+ /** Number of times the summarizer run. */
628
+ summarizeCount: () => number;
629
+ /** Number of successful attempts to summarize. */
630
+ summarizerSuccessfulAttempts: () => number;
631
+ }