@flamingo-stack/openframe-frontend-core 0.0.468-snapshot.20260723140929 → 0.0.468

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 (280) hide show
  1. package/dist/{chunk-TOFOK7G5.cjs → chunk-2WZAR2MB.cjs} +37 -37
  2. package/dist/{chunk-TOFOK7G5.cjs.map → chunk-2WZAR2MB.cjs.map} +1 -1
  3. package/dist/{chunk-YXNWEVER.cjs → chunk-3I34MUEG.cjs} +62 -62
  4. package/dist/{chunk-YXNWEVER.cjs.map → chunk-3I34MUEG.cjs.map} +1 -1
  5. package/dist/{chunk-4W54HUP7.cjs → chunk-3PLQWO4H.cjs} +4896 -7014
  6. package/dist/chunk-3PLQWO4H.cjs.map +1 -0
  7. package/dist/{chunk-33FDAZDB.js → chunk-3TU6QURP.js} +2 -2
  8. package/dist/{chunk-2BJSRTKU.js → chunk-AEM7ADDG.js} +2 -2
  9. package/dist/{chunk-VUCYS36H.js → chunk-CLW2S55N.js} +10 -10
  10. package/dist/chunk-CLW2S55N.js.map +1 -0
  11. package/dist/{chunk-LRESZO4L.cjs → chunk-ELIY4AO2.cjs} +26 -26
  12. package/dist/{chunk-LRESZO4L.cjs.map → chunk-ELIY4AO2.cjs.map} +1 -1
  13. package/dist/{chunk-MMF6HJB7.js → chunk-EZESVVIM.js} +4 -4
  14. package/dist/{chunk-AW3LVWVV.js → chunk-HTSWLPMU.js} +2 -2
  15. package/dist/{chunk-MTLBBSLP.cjs → chunk-HVLMAT4T.cjs} +5 -5
  16. package/dist/{chunk-MTLBBSLP.cjs.map → chunk-HVLMAT4T.cjs.map} +1 -1
  17. package/dist/{chunk-RPAOSHBN.js → chunk-IUMPVRSH.js} +2 -2
  18. package/dist/{chunk-5HUTT3FD.cjs → chunk-J6CE6HZS.cjs} +11 -11
  19. package/dist/{chunk-5HUTT3FD.cjs.map → chunk-J6CE6HZS.cjs.map} +1 -1
  20. package/dist/{chunk-7I2QMUEZ.js → chunk-JW3UNHGW.js} +2 -2
  21. package/dist/{chunk-4UFRQT7Z.cjs → chunk-L3BWGFHT.cjs} +15 -15
  22. package/dist/{chunk-4UFRQT7Z.cjs.map → chunk-L3BWGFHT.cjs.map} +1 -1
  23. package/dist/{chunk-WHWDGCQV.cjs → chunk-MULVIGIN.cjs} +60 -60
  24. package/dist/chunk-MULVIGIN.cjs.map +1 -0
  25. package/dist/{chunk-AJSNF5YF.js → chunk-O2QOC5FA.js} +5 -6
  26. package/dist/chunk-O2QOC5FA.js.map +1 -0
  27. package/dist/{chunk-E6O6XATC.js → chunk-P5SLNM3C.js} +9699 -11817
  28. package/dist/chunk-P5SLNM3C.js.map +1 -0
  29. package/dist/{chunk-GYEZV4GK.js → chunk-QTGYQ2U7.js} +2 -2
  30. package/dist/{chunk-4QDFNDVW.js → chunk-QZJN5OHK.js} +4 -4
  31. package/dist/{chunk-U2KPMWO6.cjs → chunk-TISXEAGH.cjs} +7 -7
  32. package/dist/{chunk-U2KPMWO6.cjs.map → chunk-TISXEAGH.cjs.map} +1 -1
  33. package/dist/{chunk-V5YWOQBP.cjs → chunk-VHFH3BG6.cjs} +31 -31
  34. package/dist/{chunk-V5YWOQBP.cjs.map → chunk-VHFH3BG6.cjs.map} +1 -1
  35. package/dist/{chunk-OVIUQJ2H.cjs → chunk-VRJXY6TM.cjs} +27 -28
  36. package/dist/chunk-VRJXY6TM.cjs.map +1 -0
  37. package/dist/{chunk-DG7TX763.js → chunk-VYUEOKI6.js} +2 -2
  38. package/dist/{chunk-GLKULDQN.cjs → chunk-X77X3RKH.cjs} +9 -9
  39. package/dist/{chunk-GLKULDQN.cjs.map → chunk-X77X3RKH.cjs.map} +1 -1
  40. package/dist/components/case-studies/index.cjs +8 -8
  41. package/dist/components/case-studies/index.js +2 -2
  42. package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
  43. package/dist/components/chat/chat-message-list.d.ts.map +1 -1
  44. package/dist/components/chat/hooks/index.d.ts +1 -0
  45. package/dist/components/chat/hooks/index.d.ts.map +1 -1
  46. package/dist/components/chat/hooks/use-chat.d.ts.map +1 -1
  47. package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts +48 -15
  48. package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts.map +1 -1
  49. package/dist/components/chat/hooks/use-realtime-chunk-processor.d.ts +6 -0
  50. package/dist/components/chat/hooks/use-realtime-chunk-processor.d.ts.map +1 -0
  51. package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts +47 -3
  52. package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts.map +1 -1
  53. package/dist/components/chat/index.cjs +2 -10
  54. package/dist/components/chat/index.cjs.map +1 -1
  55. package/dist/components/chat/index.d.ts +0 -1
  56. package/dist/components/chat/index.d.ts.map +1 -1
  57. package/dist/components/chat/index.js +13 -21
  58. package/dist/components/chat/types/api.types.d.ts +81 -1
  59. package/dist/components/chat/types/api.types.d.ts.map +1 -1
  60. package/dist/components/chat/types/processing.types.d.ts +90 -2
  61. package/dist/components/chat/types/processing.types.d.ts.map +1 -1
  62. package/dist/components/chat/utils/chunk-parser.d.ts +25 -0
  63. package/dist/components/chat/utils/chunk-parser.d.ts.map +1 -0
  64. package/dist/components/chat/utils/extract-incomplete-message-state.d.ts +6 -34
  65. package/dist/components/chat/utils/extract-incomplete-message-state.d.ts.map +1 -1
  66. package/dist/components/chat/utils/index.d.ts +3 -2
  67. package/dist/components/chat/utils/index.d.ts.map +1 -1
  68. package/dist/components/chat/utils/process-historical-messages.d.ts +11 -59
  69. package/dist/components/chat/utils/process-historical-messages.d.ts.map +1 -1
  70. package/dist/components/contact/index.cjs +3 -3
  71. package/dist/components/contact/index.js +2 -2
  72. package/dist/components/docs/index.cjs +5 -5
  73. package/dist/components/docs/index.js +4 -4
  74. package/dist/components/embeds/index.cjs +3 -3
  75. package/dist/components/embeds/index.js +2 -2
  76. package/dist/components/faq/index.cjs +3 -3
  77. package/dist/components/faq/index.js +2 -2
  78. package/dist/components/features/index.cjs +2 -2
  79. package/dist/components/features/index.js +1 -1
  80. package/dist/components/help-center-pages/index.cjs +20 -20
  81. package/dist/components/help-center-pages/index.js +11 -11
  82. package/dist/components/index.cjs +130 -172
  83. package/dist/components/index.cjs.map +1 -1
  84. package/dist/components/index.js +21 -63
  85. package/dist/components/index.js.map +1 -1
  86. package/dist/components/navigation/index.cjs +2 -2
  87. package/dist/components/navigation/index.js +1 -1
  88. package/dist/components/onboarding-guides/index.cjs +5 -5
  89. package/dist/components/onboarding-guides/index.js +4 -4
  90. package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts.map +1 -1
  91. package/dist/components/related-content/index.cjs +3 -3
  92. package/dist/components/related-content/index.js +2 -2
  93. package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
  94. package/dist/components/tickets/index.cjs +5 -5
  95. package/dist/components/tickets/index.js +4 -4
  96. package/dist/components/ui/index.cjs +2 -44
  97. package/dist/components/ui/index.cjs.map +1 -1
  98. package/dist/components/ui/index.d.ts +2 -1
  99. package/dist/components/ui/index.d.ts.map +1 -1
  100. package/dist/components/ui/index.js +13 -55
  101. package/dist/components/ui/rich-markdown-renderer.d.ts +34 -0
  102. package/dist/components/ui/rich-markdown-renderer.d.ts.map +1 -0
  103. package/dist/components/ui/simple-markdown-renderer.d.ts +73 -0
  104. package/dist/components/ui/simple-markdown-renderer.d.ts.map +1 -0
  105. package/dist/index.cjs +2 -60
  106. package/dist/index.cjs.map +1 -1
  107. package/dist/index.js +13 -71
  108. package/dist/utils/index.cjs +40 -169
  109. package/dist/utils/index.cjs.map +1 -1
  110. package/dist/utils/index.d.ts +0 -1
  111. package/dist/utils/index.d.ts.map +1 -1
  112. package/dist/utils/index.js +41 -162
  113. package/dist/utils/index.js.map +1 -1
  114. package/dist/utils/markdown-section-extractor.d.ts.map +1 -1
  115. package/package.json +1 -7
  116. package/src/components/chat/__tests__/chat-message-list.test.tsx +5 -293
  117. package/src/components/chat/chat-message-enhanced.tsx +17 -111
  118. package/src/components/chat/chat-message-list.tsx +109 -358
  119. package/src/components/chat/embeddable-chat.tsx +0 -6
  120. package/src/components/chat/hooks/.index.md +1 -1
  121. package/src/components/chat/hooks/.use-nats-chat-adapter.md +1 -1
  122. package/src/components/chat/hooks/.use-realtime-chunk-processor.md +50 -0
  123. package/src/components/chat/hooks/index.ts +1 -0
  124. package/src/components/chat/hooks/use-chat.ts +0 -8
  125. package/src/components/chat/hooks/use-nats-chat-adapter.ts +822 -243
  126. package/src/components/chat/hooks/use-realtime-chunk-processor.ts +479 -0
  127. package/src/components/chat/hooks/use-sse-chat-adapter.ts +666 -318
  128. package/src/components/chat/index.ts +0 -5
  129. package/src/components/chat/thinking-display.tsx +1 -1
  130. package/src/components/chat/types/.api.types.md +3 -1
  131. package/src/components/chat/types/.processing.types.md +23 -6
  132. package/src/components/chat/types/api.types.ts +73 -6
  133. package/src/components/chat/types/processing.types.ts +52 -11
  134. package/src/components/chat/utils/.chunk-parser.md +51 -0
  135. package/src/components/chat/utils/.index.md +5 -0
  136. package/src/components/chat/utils/chunk-parser.ts +255 -0
  137. package/src/components/chat/utils/extract-incomplete-message-state.ts +5 -63
  138. package/src/components/chat/utils/index.ts +8 -5
  139. package/src/components/chat/utils/process-historical-messages.ts +383 -352
  140. package/src/components/onboarding-guides/onboarding-guide-detail-view.tsx +4 -22
  141. package/src/components/shared/legal-document/legal-document-page.tsx +1 -1
  142. package/src/components/shared/product-release/release-detail-page.tsx +4 -19
  143. package/src/components/ui/.simple-markdown-renderer.md +40 -0
  144. package/src/components/ui/index.ts +2 -1
  145. package/src/components/ui/release-changelog-section.tsx +1 -1
  146. package/src/components/ui/rich-markdown-renderer.tsx +1223 -0
  147. package/src/components/ui/simple-markdown-renderer.tsx +965 -0
  148. package/src/components/ui/ticket-info-section.tsx +1 -1
  149. package/src/utils/index.ts +0 -1
  150. package/src/utils/markdown-section-extractor.ts +56 -41
  151. package/dist/chat-protocol/decode.d.ts +0 -58
  152. package/dist/chat-protocol/decode.d.ts.map +0 -1
  153. package/dist/chat-protocol/encode.d.ts +0 -44
  154. package/dist/chat-protocol/encode.d.ts.map +0 -1
  155. package/dist/chat-protocol/env-flag.d.ts +0 -35
  156. package/dist/chat-protocol/env-flag.d.ts.map +0 -1
  157. package/dist/chat-protocol/events.d.ts +0 -192
  158. package/dist/chat-protocol/events.d.ts.map +0 -1
  159. package/dist/chat-protocol/frames.d.ts +0 -206
  160. package/dist/chat-protocol/frames.d.ts.map +0 -1
  161. package/dist/chat-protocol/index.cjs +0 -493
  162. package/dist/chat-protocol/index.cjs.map +0 -1
  163. package/dist/chat-protocol/index.d.ts +0 -18
  164. package/dist/chat-protocol/index.d.ts.map +0 -1
  165. package/dist/chat-protocol/index.js +0 -477
  166. package/dist/chat-protocol/index.js.map +0 -1
  167. package/dist/chat-protocol/ip-normalize.d.ts +0 -44
  168. package/dist/chat-protocol/ip-normalize.d.ts.map +0 -1
  169. package/dist/chat-protocol/nats-decoder.d.ts +0 -26
  170. package/dist/chat-protocol/nats-decoder.d.ts.map +0 -1
  171. package/dist/chunk-4W54HUP7.cjs.map +0 -1
  172. package/dist/chunk-AJSNF5YF.js.map +0 -1
  173. package/dist/chunk-E6O6XATC.js.map +0 -1
  174. package/dist/chunk-OVIUQJ2H.cjs.map +0 -1
  175. package/dist/chunk-VUCYS36H.js.map +0 -1
  176. package/dist/chunk-WHWDGCQV.cjs.map +0 -1
  177. package/dist/components/chat/stream/chat-dialog-store.d.ts +0 -184
  178. package/dist/components/chat/stream/chat-dialog-store.d.ts.map +0 -1
  179. package/dist/components/chat/stream/chat-stream-reducer.d.ts +0 -367
  180. package/dist/components/chat/stream/chat-stream-reducer.d.ts.map +0 -1
  181. package/dist/components/chat/stream/delta-batcher.d.ts +0 -51
  182. package/dist/components/chat/stream/delta-batcher.d.ts.map +0 -1
  183. package/dist/components/chat/stream/index.d.ts +0 -17
  184. package/dist/components/chat/stream/index.d.ts.map +0 -1
  185. package/dist/components/chat/stream/message-mutations.d.ts +0 -77
  186. package/dist/components/chat/stream/message-mutations.d.ts.map +0 -1
  187. package/dist/components/chat/stream/use-chat-stream-reducer.d.ts +0 -22
  188. package/dist/components/chat/stream/use-chat-stream-reducer.d.ts.map +0 -1
  189. package/dist/components/ui/markdown/base-components.d.ts +0 -56
  190. package/dist/components/ui/markdown/base-components.d.ts.map +0 -1
  191. package/dist/components/ui/markdown/engine.d.ts +0 -99
  192. package/dist/components/ui/markdown/engine.d.ts.map +0 -1
  193. package/dist/components/ui/markdown/heading-ids.d.ts +0 -65
  194. package/dist/components/ui/markdown/heading-ids.d.ts.map +0 -1
  195. package/dist/components/ui/markdown/index.d.ts +0 -18
  196. package/dist/components/ui/markdown/index.d.ts.map +0 -1
  197. package/dist/components/ui/markdown/mermaid-diagram.d.ts +0 -79
  198. package/dist/components/ui/markdown/mermaid-diagram.d.ts.map +0 -1
  199. package/dist/components/ui/markdown/rich/embed-overrides.d.ts +0 -14
  200. package/dist/components/ui/markdown/rich/embed-overrides.d.ts.map +0 -1
  201. package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts +0 -40
  202. package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts.map +0 -1
  203. package/dist/components/ui/markdown/rich/shortcodes.d.ts +0 -8
  204. package/dist/components/ui/markdown/rich/shortcodes.d.ts.map +0 -1
  205. package/dist/components/ui/markdown/sanitize.d.ts +0 -153
  206. package/dist/components/ui/markdown/sanitize.d.ts.map +0 -1
  207. package/dist/components/ui/markdown/simple-markdown-renderer.d.ts +0 -23
  208. package/dist/components/ui/markdown/simple-markdown-renderer.d.ts.map +0 -1
  209. package/dist/components/ui/markdown/streaming.d.ts +0 -78
  210. package/dist/components/ui/markdown/streaming.d.ts.map +0 -1
  211. package/dist/components/ui/markdown/text-size.d.ts +0 -34
  212. package/dist/components/ui/markdown/text-size.d.ts.map +0 -1
  213. package/dist/utils/markdown-fences.d.ts +0 -42
  214. package/dist/utils/markdown-fences.d.ts.map +0 -1
  215. package/dist/utils/markdown-heading-id.d.ts +0 -85
  216. package/dist/utils/markdown-heading-id.d.ts.map +0 -1
  217. package/src/chat-protocol/__tests__/__snapshots__/nats-decoder-golden.test.ts.snap +0 -307
  218. package/src/chat-protocol/__tests__/chat-protocol.test.ts +0 -515
  219. package/src/chat-protocol/__tests__/env-flag.test.ts +0 -52
  220. package/src/chat-protocol/__tests__/ip-normalize.test.ts +0 -136
  221. package/src/chat-protocol/__tests__/nats-decoder-golden.test.ts +0 -228
  222. package/src/chat-protocol/decode.ts +0 -277
  223. package/src/chat-protocol/encode.ts +0 -71
  224. package/src/chat-protocol/env-flag.ts +0 -39
  225. package/src/chat-protocol/events.ts +0 -228
  226. package/src/chat-protocol/frames.ts +0 -238
  227. package/src/chat-protocol/index.ts +0 -21
  228. package/src/chat-protocol/ip-normalize.ts +0 -146
  229. package/src/chat-protocol/nats-decoder.ts +0 -252
  230. package/src/components/chat/__tests__/chat-message-streaming-memo.test.tsx +0 -207
  231. package/src/components/chat/__tests__/chat-pending-turn.test.tsx +0 -209
  232. package/src/components/chat/hooks/__tests__/__snapshots__/persisted-state-v1-golden.test.ts.snap +0 -297
  233. package/src/components/chat/hooks/__tests__/__snapshots__/sse-stream-golden.test.ts.snap +0 -0
  234. package/src/components/chat/hooks/__tests__/persisted-state-v1-golden.test.ts +0 -272
  235. package/src/components/chat/hooks/__tests__/sse-stream-golden.test.ts +0 -318
  236. package/src/components/chat/stream/__tests__/__snapshots__/chat-stream-reducer-golden.test.ts.snap +0 -937
  237. package/src/components/chat/stream/__tests__/chat-dialog-store.test.ts +0 -756
  238. package/src/components/chat/stream/__tests__/chat-stream-reducer-golden.test.ts +0 -460
  239. package/src/components/chat/stream/__tests__/chat-stream-reducer.test.ts +0 -894
  240. package/src/components/chat/stream/__tests__/delta-batcher.test.ts +0 -255
  241. package/src/components/chat/stream/__tests__/use-chat-stream-reducer.test.ts +0 -98
  242. package/src/components/chat/stream/chat-dialog-store.ts +0 -536
  243. package/src/components/chat/stream/chat-stream-reducer.ts +0 -1796
  244. package/src/components/chat/stream/delta-batcher.ts +0 -159
  245. package/src/components/chat/stream/index.ts +0 -55
  246. package/src/components/chat/stream/message-mutations.ts +0 -338
  247. package/src/components/chat/stream/use-chat-stream-reducer.ts +0 -126
  248. package/src/components/chat/utils/__tests__/__snapshots__/process-historical-messages-golden.test.ts.snap +0 -418
  249. package/src/components/chat/utils/__tests__/__snapshots__/segment-accumulator-golden.test.ts.snap +0 -599
  250. package/src/components/chat/utils/__tests__/process-historical-messages-golden.test.ts +0 -317
  251. package/src/components/chat/utils/__tests__/segment-accumulator-golden.test.ts +0 -270
  252. package/src/components/ui/__tests__/__snapshots__/markdown-parity.test.tsx.snap +0 -2420
  253. package/src/components/ui/__tests__/markdown-parity.test.tsx +0 -2528
  254. package/src/components/ui/markdown/__tests__/mermaid-security.test.ts +0 -115
  255. package/src/components/ui/markdown/__tests__/mermaid-stale-render.test.tsx +0 -95
  256. package/src/components/ui/markdown/__tests__/sanitize-invariant.test.ts +0 -309
  257. package/src/components/ui/markdown/__tests__/streaming.test.tsx +0 -388
  258. package/src/components/ui/markdown/base-components.tsx +0 -341
  259. package/src/components/ui/markdown/engine.tsx +0 -315
  260. package/src/components/ui/markdown/heading-ids.ts +0 -239
  261. package/src/components/ui/markdown/index.ts +0 -49
  262. package/src/components/ui/markdown/mermaid-diagram.tsx +0 -291
  263. package/src/components/ui/markdown/rich/embed-overrides.tsx +0 -199
  264. package/src/components/ui/markdown/rich/rich-markdown-renderer.tsx +0 -184
  265. package/src/components/ui/markdown/rich/shortcodes.ts +0 -170
  266. package/src/components/ui/markdown/sanitize.ts +0 -3499
  267. package/src/components/ui/markdown/simple-markdown-renderer.tsx +0 -28
  268. package/src/components/ui/markdown/streaming.ts +0 -362
  269. package/src/components/ui/markdown/text-size.ts +0 -106
  270. package/src/utils/markdown-fences.ts +0 -127
  271. package/src/utils/markdown-heading-id.ts +0 -348
  272. /package/dist/{chunk-33FDAZDB.js.map → chunk-3TU6QURP.js.map} +0 -0
  273. /package/dist/{chunk-2BJSRTKU.js.map → chunk-AEM7ADDG.js.map} +0 -0
  274. /package/dist/{chunk-MMF6HJB7.js.map → chunk-EZESVVIM.js.map} +0 -0
  275. /package/dist/{chunk-AW3LVWVV.js.map → chunk-HTSWLPMU.js.map} +0 -0
  276. /package/dist/{chunk-RPAOSHBN.js.map → chunk-IUMPVRSH.js.map} +0 -0
  277. /package/dist/{chunk-7I2QMUEZ.js.map → chunk-JW3UNHGW.js.map} +0 -0
  278. /package/dist/{chunk-GYEZV4GK.js.map → chunk-QTGYQ2U7.js.map} +0 -0
  279. /package/dist/{chunk-4QDFNDVW.js.map → chunk-QZJN5OHK.js.map} +0 -0
  280. /package/dist/{chunk-DG7TX763.js.map → chunk-VYUEOKI6.js.map} +0 -0
@@ -1,937 +0,0 @@
1
- // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
-
3
- exports[`chat stream reducer — legacy chunk-processor golden event logs > CHARACTERIZATION duplicate/out-of-order: redelivered EXECUTING after EXECUTED in-stream appends a NEW executing segment (no dedup) 1`] = `
4
- [
5
- {
6
- "event": "onStreamStart",
7
- },
8
- {
9
- "event": "onAgentBusy",
10
- },
11
- {
12
- "event": "onSegmentsUpdate",
13
- "metadata": undefined,
14
- "segments": [
15
- {
16
- "data": {
17
- "integratedToolType": "TACTICAL_RMM",
18
- "parameters": {
19
- "script": "cleanup.sh",
20
- },
21
- "toolExecutionRequestId": "exec-1",
22
- "toolFunction": "run_script",
23
- "toolTitle": "Run cleanup script",
24
- "type": "EXECUTING_TOOL",
25
- },
26
- "type": "tool_execution",
27
- },
28
- ],
29
- },
30
- {
31
- "event": "onSegmentsUpdate",
32
- "metadata": undefined,
33
- "segments": [
34
- {
35
- "data": {
36
- "integratedToolType": "TACTICAL_RMM",
37
- "parameters": {
38
- "script": "cleanup.sh",
39
- },
40
- "result": "Freed 2.3 GB",
41
- "success": true,
42
- "toolExecutionRequestId": "exec-1",
43
- "toolFunction": "run_script",
44
- "toolTitle": "Run cleanup script",
45
- "type": "EXECUTED_TOOL",
46
- },
47
- "type": "tool_execution",
48
- },
49
- ],
50
- },
51
- {
52
- "event": "onAgentBusy",
53
- },
54
- {
55
- "event": "onSegmentsUpdate",
56
- "metadata": undefined,
57
- "segments": [
58
- {
59
- "data": {
60
- "integratedToolType": "TACTICAL_RMM",
61
- "parameters": {
62
- "script": "cleanup.sh",
63
- },
64
- "result": "Freed 2.3 GB",
65
- "success": true,
66
- "toolExecutionRequestId": "exec-1",
67
- "toolFunction": "run_script",
68
- "toolTitle": "Run cleanup script",
69
- "type": "EXECUTED_TOOL",
70
- },
71
- "type": "tool_execution",
72
- },
73
- {
74
- "data": {
75
- "integratedToolType": "TACTICAL_RMM",
76
- "parameters": {
77
- "script": "cleanup.sh",
78
- },
79
- "toolExecutionRequestId": "exec-1",
80
- "toolFunction": "run_script",
81
- "toolTitle": "Run cleanup script",
82
- "type": "EXECUTING_TOOL",
83
- },
84
- "type": "tool_execution",
85
- },
86
- ],
87
- },
88
- {
89
- "event": "onStreamEnd",
90
- },
91
- ]
92
- `;
93
-
94
- exports[`chat stream reducer — legacy chunk-processor golden event logs > approval request (displayed) → approval result: in-message flip + onApprovalResolved 1`] = `
95
- [
96
- {
97
- "event": "onStreamStart",
98
- },
99
- {
100
- "event": "onSegmentsUpdate",
101
- "metadata": undefined,
102
- "segments": [
103
- {
104
- "data": {
105
- "approvalType": "CLIENT",
106
- "command": "systemctl restart nats",
107
- "explanation": "Restart the broker",
108
- "requestId": "req-1",
109
- },
110
- "onApprove": [Function],
111
- "onReject": [Function],
112
- "status": "pending",
113
- "type": "approval_request",
114
- },
115
- ],
116
- },
117
- {
118
- "event": "onStreamEnd",
119
- },
120
- {
121
- "event": "onAgentBusy",
122
- },
123
- {
124
- "approvalType": "CLIENT",
125
- "event": "onApprovalResolved",
126
- "requestId": "req-1",
127
- "resolvedByName": "Jane Admin",
128
- "status": "approved",
129
- },
130
- ]
131
- `;
132
-
133
- exports[`chat stream reducer — legacy chunk-processor golden event logs > approval result WITHOUT onApprovalResolved wired: emits cumulative onSegmentsUpdate instead 1`] = `
134
- [
135
- {
136
- "event": "onStreamStart",
137
- },
138
- {
139
- "event": "onSegmentsUpdate",
140
- "metadata": undefined,
141
- "segments": [
142
- {
143
- "data": {
144
- "approvalType": "CLIENT",
145
- "command": "reboot",
146
- "explanation": undefined,
147
- "requestId": "req-1",
148
- },
149
- "onApprove": [Function],
150
- "onReject": [Function],
151
- "status": "pending",
152
- "type": "approval_request",
153
- },
154
- ],
155
- },
156
- {
157
- "event": "onSegmentsUpdate",
158
- "metadata": undefined,
159
- "segments": [
160
- {
161
- "data": {
162
- "approvalType": "CLIENT",
163
- "command": "reboot",
164
- "explanation": undefined,
165
- "requestId": "req-1",
166
- },
167
- "onApprove": [Function],
168
- "onReject": [Function],
169
- "status": "rejected",
170
- "type": "approval_request",
171
- },
172
- ],
173
- },
174
- ]
175
- `;
176
-
177
- exports[`chat stream reducer — legacy chunk-processor golden event logs > batch approval (batchApprovalsEnabled default ON): one batch segment, executions merge into it 1`] = `
178
- [
179
- {
180
- "event": "onStreamStart",
181
- },
182
- {
183
- "event": "onSegmentsUpdate",
184
- "metadata": undefined,
185
- "segments": [
186
- {
187
- "data": {
188
- "approvalRequestId": "batch-1",
189
- "approvalType": "CLIENT",
190
- "toolCalls": [
191
- {
192
- "approvalType": "CLIENT",
193
- "requiresApproval": true,
194
- "toolCallArguments": {
195
- "subject": "Printer down",
196
- },
197
- "toolExecutionRequestId": "exec-a",
198
- "toolExplanation": undefined,
199
- "toolName": "create_ticket",
200
- "toolTitle": "Create ticket",
201
- "toolType": undefined,
202
- },
203
- {
204
- "approvalType": null,
205
- "requiresApproval": false,
206
- "toolCallArguments": null,
207
- "toolExecutionRequestId": "exec-b",
208
- "toolExplanation": undefined,
209
- "toolName": "read_kb",
210
- "toolTitle": undefined,
211
- "toolType": undefined,
212
- },
213
- ],
214
- },
215
- "onApprove": [Function],
216
- "onReject": [Function],
217
- "resolvedByName": undefined,
218
- "status": "pending",
219
- "type": "approval_batch",
220
- },
221
- ],
222
- },
223
- {
224
- "event": "onAgentBusy",
225
- },
226
- {
227
- "approvalType": "CLIENT",
228
- "event": "onApprovalResolved",
229
- "requestId": "batch-1",
230
- "resolvedByName": "Alice Client",
231
- "status": "approved",
232
- },
233
- {
234
- "event": "onAgentBusy",
235
- },
236
- {
237
- "event": "onSegmentsUpdate",
238
- "metadata": undefined,
239
- "segments": [
240
- {
241
- "data": {
242
- "approvalRequestId": "batch-1",
243
- "approvalType": "CLIENT",
244
- "executions": {
245
- "exec-a": {
246
- "result": undefined,
247
- "status": "executing",
248
- "success": undefined,
249
- },
250
- },
251
- "toolCalls": [
252
- {
253
- "approvalType": "CLIENT",
254
- "requiresApproval": true,
255
- "toolCallArguments": {
256
- "subject": "Printer down",
257
- },
258
- "toolExecutionRequestId": "exec-a",
259
- "toolExplanation": undefined,
260
- "toolName": "create_ticket",
261
- "toolTitle": "Create ticket",
262
- "toolType": undefined,
263
- },
264
- {
265
- "approvalType": null,
266
- "requiresApproval": false,
267
- "toolCallArguments": null,
268
- "toolExecutionRequestId": "exec-b",
269
- "toolExplanation": undefined,
270
- "toolName": "read_kb",
271
- "toolTitle": undefined,
272
- "toolType": undefined,
273
- },
274
- ],
275
- },
276
- "onApprove": [Function],
277
- "onReject": [Function],
278
- "resolvedByName": "Alice Client",
279
- "status": "approved",
280
- "type": "approval_batch",
281
- },
282
- ],
283
- },
284
- {
285
- "event": "onSegmentsUpdate",
286
- "metadata": undefined,
287
- "segments": [
288
- {
289
- "data": {
290
- "approvalRequestId": "batch-1",
291
- "approvalType": "CLIENT",
292
- "executions": {
293
- "exec-a": {
294
- "result": "Ticket #77 created",
295
- "status": "done",
296
- "success": true,
297
- },
298
- },
299
- "toolCalls": [
300
- {
301
- "approvalType": "CLIENT",
302
- "requiresApproval": true,
303
- "toolCallArguments": {
304
- "subject": "Printer down",
305
- },
306
- "toolExecutionRequestId": "exec-a",
307
- "toolExplanation": undefined,
308
- "toolName": "create_ticket",
309
- "toolTitle": "Create ticket",
310
- "toolType": undefined,
311
- },
312
- {
313
- "approvalType": null,
314
- "requiresApproval": false,
315
- "toolCallArguments": null,
316
- "toolExecutionRequestId": "exec-b",
317
- "toolExplanation": undefined,
318
- "toolName": "read_kb",
319
- "toolTitle": undefined,
320
- "toolType": undefined,
321
- },
322
- ],
323
- },
324
- "onApprove": [Function],
325
- "onReject": [Function],
326
- "resolvedByName": "Alice Client",
327
- "status": "approved",
328
- "type": "approval_batch",
329
- },
330
- ],
331
- },
332
- {
333
- "event": "onStreamEnd",
334
- },
335
- ]
336
- `;
337
-
338
- exports[`chat stream reducer — legacy chunk-processor golden event logs > batch approval with batchApprovalsEnabled:false unfolds into legacy cards (requiresApproval only) 1`] = `
339
- [
340
- {
341
- "event": "onStreamStart",
342
- },
343
- {
344
- "event": "onSegmentsUpdate",
345
- "metadata": undefined,
346
- "segments": [
347
- {
348
- "data": {
349
- "approvalType": "CLIENT",
350
- "command": "Create ticket",
351
- "explanation": undefined,
352
- "requestId": "batch-1",
353
- },
354
- "onApprove": [Function],
355
- "onReject": [Function],
356
- "status": "pending",
357
- "type": "approval_request",
358
- },
359
- ],
360
- },
361
- {
362
- "event": "onStreamEnd",
363
- },
364
- ]
365
- `;
366
-
367
- exports[`chat stream reducer — legacy chunk-processor golden event logs > cold start (no MESSAGE_START ever): text emits CUMULATIVE segments (no append flag) 1`] = `
368
- [
369
- {
370
- "event": "onSegmentsUpdate",
371
- "metadata": undefined,
372
- "segments": [
373
- {
374
- "text": "cold ",
375
- "type": "text",
376
- },
377
- ],
378
- },
379
- {
380
- "event": "onSegmentsUpdate",
381
- "metadata": undefined,
382
- "segments": [
383
- {
384
- "text": "cold start",
385
- "type": "text",
386
- },
387
- ],
388
- },
389
- ]
390
- `;
391
-
392
- exports[`chat stream reducer — legacy chunk-processor golden event logs > context compaction outside a stream emits append+isCompacting metadata; inside a stream it is cumulative 1`] = `
393
- {
394
- "inStream": [
395
- {
396
- "event": "onStreamStart",
397
- },
398
- {
399
- "event": "onSegmentsUpdate",
400
- "metadata": undefined,
401
- "segments": [
402
- {
403
- "status": "started",
404
- "type": "context_compaction",
405
- },
406
- ],
407
- },
408
- {
409
- "event": "onSegmentsUpdate",
410
- "metadata": undefined,
411
- "segments": [
412
- {
413
- "status": "completed",
414
- "summary": "Mid-stream summary",
415
- "type": "context_compaction",
416
- },
417
- ],
418
- },
419
- {
420
- "event": "onStreamEnd",
421
- },
422
- ],
423
- "standalone": [
424
- {
425
- "event": "onSegmentsUpdate",
426
- "metadata": {
427
- "append": true,
428
- "isCompacting": true,
429
- },
430
- "segments": [
431
- {
432
- "status": "started",
433
- "type": "context_compaction",
434
- },
435
- ],
436
- },
437
- {
438
- "event": "onSegmentsUpdate",
439
- "metadata": {
440
- "append": true,
441
- "isCompacting": true,
442
- },
443
- "segments": [
444
- {
445
- "status": "completed",
446
- "summary": "Summarized 12 messages",
447
- "type": "context_compaction",
448
- },
449
- ],
450
- },
451
- ],
452
- }
453
- `;
454
-
455
- exports[`chat stream reducer — legacy chunk-processor golden event logs > direct-mode barrier: after a DIRECT_MESSAGE, AI chunks are dropped with a one-shot teardown 1`] = `
456
- [
457
- {
458
- "event": "onStreamStart",
459
- },
460
- {
461
- "event": "onSegmentsUpdate",
462
- "metadata": undefined,
463
- "segments": [
464
- {
465
- "text": "ai text before takeover",
466
- "type": "text",
467
- },
468
- ],
469
- },
470
- {
471
- "event": "onDirectMessage",
472
- "metadata": {
473
- "displayName": undefined,
474
- "ownerType": "ADMIN",
475
- "streamSeq": undefined,
476
- "userId": undefined,
477
- },
478
- "text": "Human takeover",
479
- },
480
- {
481
- "event": "onStreamEnd",
482
- },
483
- {
484
- "event": "onSystemMessage",
485
- "metadata": {
486
- "streamSeq": undefined,
487
- },
488
- "text": "still visible",
489
- },
490
- {
491
- "event": "onDirectMessage",
492
- "metadata": {
493
- "displayName": undefined,
494
- "ownerType": undefined,
495
- "streamSeq": undefined,
496
- "userId": undefined,
497
- },
498
- "text": "second human message",
499
- },
500
- ]
501
- `;
502
-
503
- exports[`chat stream reducer — legacy chunk-processor golden event logs > error chunk: segment append + onError with JSON-extracted message 1`] = `
504
- [
505
- {
506
- "event": "onStreamStart",
507
- },
508
- {
509
- "event": "onSegmentsUpdate",
510
- "metadata": undefined,
511
- "segments": [
512
- {
513
- "text": "partial",
514
- "type": "text",
515
- },
516
- ],
517
- },
518
- {
519
- "event": "onSegmentsUpdate",
520
- "metadata": undefined,
521
- "segments": [
522
- {
523
- "text": "partial",
524
- "type": "text",
525
- },
526
- {
527
- "details": "boom",
528
- "title": "Agent crashed",
529
- "type": "error",
530
- },
531
- ],
532
- },
533
- {
534
- "details": "boom",
535
- "error": "Agent crashed",
536
- "event": "onError",
537
- },
538
- {
539
- "event": "onSegmentsUpdate",
540
- "metadata": undefined,
541
- "segments": [
542
- {
543
- "text": "partial",
544
- "type": "text",
545
- },
546
- {
547
- "details": "boom",
548
- "title": "Agent crashed",
549
- "type": "error",
550
- },
551
- {
552
- "details": "not-json",
553
- "title": "Plain details",
554
- "type": "error",
555
- },
556
- ],
557
- },
558
- {
559
- "details": "not-json",
560
- "error": "Plain details",
561
- "event": "onError",
562
- },
563
- ]
564
- `;
565
-
566
- exports[`chat stream reducer — legacy chunk-processor golden event logs > escalated approval (type not displayed) → onEscalatedApproval, then result appends resolved card 1`] = `
567
- {
568
- "log": [
569
- {
570
- "event": "onStreamStart",
571
- },
572
- {
573
- "data": {
574
- "approvalType": "ADMIN",
575
- "command": "drop database prod",
576
- "explanation": undefined,
577
- },
578
- "event": "onEscalatedApproval",
579
- "requestId": "req-adm",
580
- },
581
- {
582
- "event": "onStreamEnd",
583
- },
584
- {
585
- "event": "onAgentBusy",
586
- },
587
- {
588
- "approved": true,
589
- "data": {
590
- "approvalType": "ADMIN",
591
- "command": "drop database prod",
592
- "explanation": undefined,
593
- },
594
- "event": "onEscalatedApprovalResult",
595
- "requestId": "req-adm",
596
- },
597
- {
598
- "event": "onSegmentsUpdate",
599
- "metadata": {
600
- "append": true,
601
- },
602
- "segments": [
603
- {
604
- "data": {
605
- "approvalType": "ADMIN",
606
- "command": "drop database prod",
607
- "explanation": undefined,
608
- "requestId": "req-adm",
609
- },
610
- "onApprove": [Function],
611
- "onReject": [Function],
612
- "status": "approved",
613
- "type": "approval_request",
614
- },
615
- ],
616
- },
617
- {
618
- "approvalType": "ADMIN",
619
- "event": "onApprovalResolved",
620
- "requestId": "req-adm",
621
- "resolvedByName": undefined,
622
- "status": "approved",
623
- },
624
- ],
625
- "pendingAfter": [],
626
- }
627
- `;
628
-
629
- exports[`chat stream reducer — legacy chunk-processor golden event logs > initialState resume: continuation chunks after resume take the post-stream append path 1`] = `
630
- [
631
- {
632
- "data": {
633
- "approvalType": "ADMIN",
634
- "command": "escalated cmd",
635
- },
636
- "event": "onEscalatedApproval",
637
- "requestId": "req-esc",
638
- },
639
- ]
640
- `;
641
-
642
- exports[`chat stream reducer — legacy chunk-processor golden event logs > normal turn: start → metadata → text ×3 → token usage → end 1`] = `
643
- [
644
- {
645
- "event": "onStreamStart",
646
- },
647
- {
648
- "event": "onMetadata",
649
- "metadata": {
650
- "action": "metadata",
651
- "contextWindow": 200000,
652
- "modelDisplayName": "Claude Sonnet",
653
- "modelName": "claude-sonnet-x",
654
- "providerName": "anthropic",
655
- },
656
- },
657
- {
658
- "event": "onSegmentsUpdate",
659
- "metadata": undefined,
660
- "segments": [
661
- {
662
- "text": "Hello",
663
- "type": "text",
664
- },
665
- ],
666
- },
667
- {
668
- "event": "onSegmentsUpdate",
669
- "metadata": undefined,
670
- "segments": [
671
- {
672
- "text": "Hello, ",
673
- "type": "text",
674
- },
675
- ],
676
- },
677
- {
678
- "event": "onSegmentsUpdate",
679
- "metadata": undefined,
680
- "segments": [
681
- {
682
- "text": "Hello, world",
683
- "type": "text",
684
- },
685
- ],
686
- },
687
- {
688
- "data": {
689
- "contextSize": 180000,
690
- "inputTokensSize": 100,
691
- "outputTokensSize": 20,
692
- "totalTokensSize": 120,
693
- },
694
- "event": "onTokenUsage",
695
- },
696
- {
697
- "event": "onStreamEnd",
698
- },
699
- ]
700
- `;
701
-
702
- exports[`chat stream reducer — legacy chunk-processor golden event logs > post-MESSAGE_END continuation: text/thinking emit DELTA segments with append:true 1`] = `
703
- [
704
- {
705
- "event": "onStreamStart",
706
- },
707
- {
708
- "event": "onSegmentsUpdate",
709
- "metadata": undefined,
710
- "segments": [
711
- {
712
- "text": "in-stream",
713
- "type": "text",
714
- },
715
- ],
716
- },
717
- {
718
- "event": "onStreamEnd",
719
- },
720
- {
721
- "event": "onSegmentsUpdate",
722
- "metadata": {
723
- "append": true,
724
- },
725
- "segments": [
726
- {
727
- "text": "post-end text",
728
- "type": "text",
729
- },
730
- ],
731
- },
732
- {
733
- "event": "onSegmentsUpdate",
734
- "metadata": {
735
- "append": true,
736
- },
737
- "segments": [
738
- {
739
- "text": "post-end thinking",
740
- "type": "thinking",
741
- },
742
- ],
743
- },
744
- ]
745
- `;
746
-
747
- exports[`chat stream reducer — legacy chunk-processor golden event logs > reset() clears accumulator + stream flags so the next dialog cold-starts cumulative 1`] = `
748
- [
749
- {
750
- "event": "onSegmentsUpdate",
751
- "metadata": undefined,
752
- "segments": [
753
- {
754
- "text": "dialog two cold start",
755
- "type": "text",
756
- },
757
- ],
758
- },
759
- ]
760
- `;
761
-
762
- exports[`chat stream reducer — legacy chunk-processor golden event logs > streamSeq on content chunks is threaded into onSegmentsUpdate metadata 1`] = `
763
- [
764
- {
765
- "event": "onStreamStart",
766
- },
767
- {
768
- "event": "onSegmentsUpdate",
769
- "metadata": {
770
- "streamSeq": 7,
771
- },
772
- "segments": [
773
- {
774
- "text": "seq-stamped",
775
- "type": "text",
776
- },
777
- ],
778
- },
779
- {
780
- "event": "onStreamEnd",
781
- },
782
- ]
783
- `;
784
-
785
- exports[`chat stream reducer — legacy chunk-processor golden event logs > tool execution IN-stream: accumulator-driven segment updates, onToolExecuted NOT fired 1`] = `
786
- [
787
- {
788
- "event": "onStreamStart",
789
- },
790
- {
791
- "event": "onSegmentsUpdate",
792
- "metadata": undefined,
793
- "segments": [
794
- {
795
- "text": "Running now. ",
796
- "type": "text",
797
- },
798
- ],
799
- },
800
- {
801
- "event": "onAgentBusy",
802
- },
803
- {
804
- "event": "onSegmentsUpdate",
805
- "metadata": undefined,
806
- "segments": [
807
- {
808
- "text": "Running now. ",
809
- "type": "text",
810
- },
811
- {
812
- "data": {
813
- "integratedToolType": "TACTICAL_RMM",
814
- "parameters": {
815
- "script": "cleanup.sh",
816
- },
817
- "toolExecutionRequestId": "exec-1",
818
- "toolFunction": "run_script",
819
- "toolTitle": "Run cleanup script",
820
- "type": "EXECUTING_TOOL",
821
- },
822
- "type": "tool_execution",
823
- },
824
- ],
825
- },
826
- {
827
- "event": "onSegmentsUpdate",
828
- "metadata": undefined,
829
- "segments": [
830
- {
831
- "text": "Running now. ",
832
- "type": "text",
833
- },
834
- {
835
- "data": {
836
- "integratedToolType": "TACTICAL_RMM",
837
- "parameters": {
838
- "script": "cleanup.sh",
839
- },
840
- "result": "Freed 2.3 GB",
841
- "success": true,
842
- "toolExecutionRequestId": "exec-1",
843
- "toolFunction": "run_script",
844
- "toolTitle": "Run cleanup script",
845
- "type": "EXECUTED_TOOL",
846
- },
847
- "type": "tool_execution",
848
- },
849
- ],
850
- },
851
- {
852
- "event": "onStreamEnd",
853
- },
854
- ]
855
- `;
856
-
857
- exports[`chat stream reducer — legacy chunk-processor golden event logs > tool execution OUTSIDE a message window: onAgentBusy + cross-message onToolExecuted (accumulator skipped) 1`] = `
858
- [
859
- {
860
- "event": "onAgentBusy",
861
- },
862
- {
863
- "event": "onToolExecuted",
864
- "segment": {
865
- "data": {
866
- "integratedToolType": "TACTICAL_RMM",
867
- "parameters": {
868
- "script": "cleanup.sh",
869
- },
870
- "toolExecutionRequestId": "exec-1",
871
- "toolFunction": "run_script",
872
- "toolTitle": "Run cleanup script",
873
- "type": "EXECUTING_TOOL",
874
- },
875
- "type": "tool_execution",
876
- },
877
- },
878
- {
879
- "event": "onToolExecuted",
880
- "segment": {
881
- "data": {
882
- "integratedToolType": "TACTICAL_RMM",
883
- "parameters": undefined,
884
- "result": "Freed 2.3 GB",
885
- "success": true,
886
- "toolExecutionRequestId": "exec-1",
887
- "toolFunction": "run_script",
888
- "toolTitle": undefined,
889
- "type": "EXECUTED_TOOL",
890
- },
891
- "type": "tool_execution",
892
- },
893
- },
894
- ]
895
- `;
896
-
897
- exports[`chat stream reducer — legacy chunk-processor golden event logs > user echo / system / direct-message / dialog-closed routing 1`] = `
898
- [
899
- {
900
- "event": "onUserMessage",
901
- "metadata": {
902
- "contextItems": [
903
- {
904
- "id": "dev-1",
905
- "label": "dev-1",
906
- "type": "device",
907
- },
908
- ],
909
- "displayName": "Alice",
910
- "ownerType": "CLIENT",
911
- "streamSeq": 3,
912
- "userId": "user-42",
913
- },
914
- "text": "open a ticket",
915
- },
916
- {
917
- "event": "onSystemMessage",
918
- "metadata": {
919
- "streamSeq": 4,
920
- },
921
- "text": "User joined the chat",
922
- },
923
- {
924
- "event": "onDirectMessage",
925
- "metadata": {
926
- "displayName": "Jane Admin",
927
- "ownerType": "ADMIN",
928
- "streamSeq": 5,
929
- "userId": "admin-7",
930
- },
931
- "text": "Human here now",
932
- },
933
- {
934
- "event": "onDialogClosed",
935
- },
936
- ]
937
- `;