@flamingo-stack/openframe-frontend-core 0.0.490-1506.3944.1 → 0.0.490

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 (293) hide show
  1. package/dist/{chunk-5CJR2GZ4.cjs → chunk-2MKUHJ3O.cjs} +31 -31
  2. package/dist/{chunk-5CJR2GZ4.cjs.map → chunk-2MKUHJ3O.cjs.map} +1 -1
  3. package/dist/{chunk-S2NHJDKQ.cjs → chunk-3IEVA5AO.cjs} +62 -62
  4. package/dist/{chunk-S2NHJDKQ.cjs.map → chunk-3IEVA5AO.cjs.map} +1 -1
  5. package/dist/{chunk-GTWO5NAY.js → chunk-6CFFISUC.js} +2 -2
  6. package/dist/{chunk-VHG6AX5V.js → chunk-6CJ2K7BD.js} +2 -2
  7. package/dist/{chunk-4NWARV5I.js → chunk-6QK3ONDD.js} +2 -2
  8. package/dist/{chunk-YHOIAA2E.cjs → chunk-7I42V2OD.cjs} +60 -60
  9. package/dist/chunk-7I42V2OD.cjs.map +1 -0
  10. package/dist/{chunk-T2EGSZFN.js → chunk-AIRNG27G.js} +5 -6
  11. package/dist/chunk-AIRNG27G.js.map +1 -0
  12. package/dist/{chunk-NWX7MMF5.cjs → chunk-AW63ET2A.cjs} +15 -15
  13. package/dist/{chunk-NWX7MMF5.cjs.map → chunk-AW63ET2A.cjs.map} +1 -1
  14. package/dist/{chunk-TKN5667N.js → chunk-BZMOEWWS.js} +10 -10
  15. package/dist/chunk-BZMOEWWS.js.map +1 -0
  16. package/dist/{chunk-DSDZ5T4P.cjs → chunk-D5LQMRPU.cjs} +5 -5
  17. package/dist/{chunk-DSDZ5T4P.cjs.map → chunk-D5LQMRPU.cjs.map} +1 -1
  18. package/dist/{chunk-CORIBKHG.js → chunk-EGXCWZYP.js} +2 -2
  19. package/dist/{chunk-5EYRXSY5.cjs → chunk-EJQUYZXF.cjs} +9 -9
  20. package/dist/{chunk-5EYRXSY5.cjs.map → chunk-EJQUYZXF.cjs.map} +1 -1
  21. package/dist/{chunk-P4WTZU6L.cjs → chunk-FY5XAW3H.cjs} +11 -11
  22. package/dist/{chunk-P4WTZU6L.cjs.map → chunk-FY5XAW3H.cjs.map} +1 -1
  23. package/dist/{chunk-VQ523ORK.cjs → chunk-GMPYR3MX.cjs} +26 -26
  24. package/dist/{chunk-VQ523ORK.cjs.map → chunk-GMPYR3MX.cjs.map} +1 -1
  25. package/dist/{chunk-QSCHCZL3.cjs → chunk-GUTYUMGV.cjs} +7 -7
  26. package/dist/{chunk-QSCHCZL3.cjs.map → chunk-GUTYUMGV.cjs.map} +1 -1
  27. package/dist/{chunk-Q6E7VJ4W.cjs → chunk-IEZ3YBAP.cjs} +27 -28
  28. package/dist/chunk-IEZ3YBAP.cjs.map +1 -0
  29. package/dist/{chunk-HSACATCD.js → chunk-MPYDX5WX.js} +2 -2
  30. package/dist/{chunk-RQLBHKXN.js → chunk-NGEFYPY7.js} +2 -2
  31. package/dist/{chunk-BE6DK7QY.js → chunk-OQIMH2WQ.js} +8985 -11081
  32. package/dist/chunk-OQIMH2WQ.js.map +1 -0
  33. package/dist/{chunk-CSYSYJCF.cjs → chunk-UZZT65PQ.cjs} +37 -37
  34. package/dist/{chunk-CSYSYJCF.cjs.map → chunk-UZZT65PQ.cjs.map} +1 -1
  35. package/dist/{chunk-YZ2OIYQ3.js → chunk-VDZO6IDR.js} +4 -4
  36. package/dist/{chunk-UUYRJPGJ.js → chunk-VL2YMDPH.js} +4 -4
  37. package/dist/{chunk-5LMGFI4J.cjs → chunk-VUXNXWOQ.cjs} +4946 -7042
  38. package/dist/chunk-VUXNXWOQ.cjs.map +1 -0
  39. package/dist/{chunk-XQ2B74SI.js → chunk-WLM3F3WU.js} +2 -2
  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/guide-display.d.ts +14 -0
  45. package/dist/components/chat/guide-display.d.ts.map +1 -0
  46. package/dist/components/chat/hooks/index.d.ts +1 -0
  47. package/dist/components/chat/hooks/index.d.ts.map +1 -1
  48. package/dist/components/chat/hooks/use-chat.d.ts.map +1 -1
  49. package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts +48 -15
  50. package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts.map +1 -1
  51. package/dist/components/chat/hooks/use-realtime-chunk-processor.d.ts +6 -0
  52. package/dist/components/chat/hooks/use-realtime-chunk-processor.d.ts.map +1 -0
  53. package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts +57 -10
  54. package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts.map +1 -1
  55. package/dist/components/chat/index.cjs +2 -8
  56. package/dist/components/chat/index.cjs.map +1 -1
  57. package/dist/components/chat/index.d.ts +1 -1
  58. package/dist/components/chat/index.d.ts.map +1 -1
  59. package/dist/components/chat/index.js +15 -21
  60. package/dist/components/chat/types/api.types.d.ts +81 -1
  61. package/dist/components/chat/types/api.types.d.ts.map +1 -1
  62. package/dist/components/chat/types/component.types.d.ts +6 -0
  63. package/dist/components/chat/types/component.types.d.ts.map +1 -1
  64. package/dist/components/chat/types/message.types.d.ts +15 -2
  65. package/dist/components/chat/types/message.types.d.ts.map +1 -1
  66. package/dist/components/chat/types/processing.types.d.ts +93 -2
  67. package/dist/components/chat/types/processing.types.d.ts.map +1 -1
  68. package/dist/components/chat/utils/chunk-parser.d.ts +25 -0
  69. package/dist/components/chat/utils/chunk-parser.d.ts.map +1 -0
  70. package/dist/components/chat/utils/extract-incomplete-message-state.d.ts +6 -34
  71. package/dist/components/chat/utils/extract-incomplete-message-state.d.ts.map +1 -1
  72. package/dist/components/chat/utils/index.d.ts +3 -2
  73. package/dist/components/chat/utils/index.d.ts.map +1 -1
  74. package/dist/components/chat/utils/message-segment-accumulator.d.ts +5 -0
  75. package/dist/components/chat/utils/message-segment-accumulator.d.ts.map +1 -1
  76. package/dist/components/chat/utils/process-historical-messages.d.ts +11 -59
  77. package/dist/components/chat/utils/process-historical-messages.d.ts.map +1 -1
  78. package/dist/components/contact/index.cjs +3 -3
  79. package/dist/components/contact/index.js +2 -2
  80. package/dist/components/docs/index.cjs +5 -5
  81. package/dist/components/docs/index.js +4 -4
  82. package/dist/components/embeds/index.cjs +3 -3
  83. package/dist/components/embeds/index.js +2 -2
  84. package/dist/components/faq/index.cjs +3 -3
  85. package/dist/components/faq/index.js +2 -2
  86. package/dist/components/features/index.cjs +2 -2
  87. package/dist/components/features/index.js +1 -1
  88. package/dist/components/help-center-pages/index.cjs +20 -20
  89. package/dist/components/help-center-pages/index.js +11 -11
  90. package/dist/components/index.cjs +130 -170
  91. package/dist/components/index.cjs.map +1 -1
  92. package/dist/components/index.js +23 -63
  93. package/dist/components/index.js.map +1 -1
  94. package/dist/components/navigation/index.cjs +2 -2
  95. package/dist/components/navigation/index.js +1 -1
  96. package/dist/components/onboarding-guides/index.cjs +5 -5
  97. package/dist/components/onboarding-guides/index.js +4 -4
  98. package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts.map +1 -1
  99. package/dist/components/related-content/index.cjs +3 -3
  100. package/dist/components/related-content/index.js +2 -2
  101. package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
  102. package/dist/components/tickets/index.cjs +5 -5
  103. package/dist/components/tickets/index.js +4 -4
  104. package/dist/components/ui/index.cjs +2 -42
  105. package/dist/components/ui/index.cjs.map +1 -1
  106. package/dist/components/ui/index.d.ts +2 -1
  107. package/dist/components/ui/index.d.ts.map +1 -1
  108. package/dist/components/ui/index.js +15 -55
  109. package/dist/components/ui/rich-markdown-renderer.d.ts +34 -0
  110. package/dist/components/ui/rich-markdown-renderer.d.ts.map +1 -0
  111. package/dist/components/ui/simple-markdown-renderer.d.ts +73 -0
  112. package/dist/components/ui/simple-markdown-renderer.d.ts.map +1 -0
  113. package/dist/index.cjs +2 -58
  114. package/dist/index.cjs.map +1 -1
  115. package/dist/index.js +15 -71
  116. package/dist/utils/index.cjs +40 -169
  117. package/dist/utils/index.cjs.map +1 -1
  118. package/dist/utils/index.d.ts +0 -1
  119. package/dist/utils/index.d.ts.map +1 -1
  120. package/dist/utils/index.js +41 -162
  121. package/dist/utils/index.js.map +1 -1
  122. package/dist/utils/markdown-section-extractor.d.ts.map +1 -1
  123. package/package.json +1 -7
  124. package/src/components/chat/__tests__/chat-message-list.test.tsx +5 -293
  125. package/src/components/chat/chat-message-enhanced.tsx +80 -163
  126. package/src/components/chat/chat-message-list.tsx +109 -358
  127. package/src/components/chat/embeddable-chat.tsx +0 -6
  128. package/src/components/chat/guide-display.tsx +44 -0
  129. package/src/components/chat/hooks/.index.md +33 -30
  130. package/src/components/chat/hooks/.use-nats-chat-adapter.md +55 -36
  131. package/src/components/chat/hooks/.use-realtime-chunk-processor.md +77 -0
  132. package/src/components/chat/hooks/index.ts +1 -0
  133. package/src/components/chat/hooks/use-chat.ts +0 -8
  134. package/src/components/chat/hooks/use-nats-chat-adapter.ts +825 -243
  135. package/src/components/chat/hooks/use-realtime-chunk-processor.ts +489 -0
  136. package/src/components/chat/hooks/use-sse-chat-adapter.ts +684 -380
  137. package/src/components/chat/index.ts +1 -5
  138. package/src/components/chat/thinking-display.tsx +1 -1
  139. package/src/components/chat/types/.api.types.md +49 -39
  140. package/src/components/chat/types/.processing.types.md +58 -29
  141. package/src/components/chat/types/api.types.ts +73 -6
  142. package/src/components/chat/types/component.types.ts +9 -0
  143. package/src/components/chat/types/message.types.ts +17 -1
  144. package/src/components/chat/types/processing.types.ts +53 -11
  145. package/src/components/chat/utils/.chunk-parser.md +62 -0
  146. package/src/components/chat/utils/.index.md +40 -31
  147. package/src/components/chat/utils/chunk-parser.ts +262 -0
  148. package/src/components/chat/utils/extract-incomplete-message-state.ts +5 -63
  149. package/src/components/chat/utils/index.ts +8 -5
  150. package/src/components/chat/utils/message-segment-accumulator.ts +19 -0
  151. package/src/components/chat/utils/process-historical-messages.ts +390 -352
  152. package/src/components/onboarding-guides/onboarding-guide-detail-view.tsx +4 -22
  153. package/src/components/shared/legal-document/legal-document-page.tsx +1 -1
  154. package/src/components/shared/product-release/release-detail-page.tsx +4 -19
  155. package/src/components/ui/.simple-markdown-renderer.md +52 -0
  156. package/src/components/ui/index.ts +2 -1
  157. package/src/components/ui/release-changelog-section.tsx +1 -1
  158. package/src/components/ui/rich-markdown-renderer.tsx +1223 -0
  159. package/src/components/ui/simple-markdown-renderer.tsx +964 -0
  160. package/src/components/ui/ticket-info-section.tsx +1 -1
  161. package/src/stories/ChatMessageEnhanced.stories.tsx +48 -1
  162. package/src/utils/index.ts +0 -1
  163. package/src/utils/markdown-section-extractor.ts +56 -41
  164. package/dist/chat-protocol/decode.d.ts +0 -58
  165. package/dist/chat-protocol/decode.d.ts.map +0 -1
  166. package/dist/chat-protocol/encode.d.ts +0 -44
  167. package/dist/chat-protocol/encode.d.ts.map +0 -1
  168. package/dist/chat-protocol/env-flag.d.ts +0 -35
  169. package/dist/chat-protocol/env-flag.d.ts.map +0 -1
  170. package/dist/chat-protocol/events.d.ts +0 -196
  171. package/dist/chat-protocol/events.d.ts.map +0 -1
  172. package/dist/chat-protocol/frames.d.ts +0 -213
  173. package/dist/chat-protocol/frames.d.ts.map +0 -1
  174. package/dist/chat-protocol/index.cjs +0 -494
  175. package/dist/chat-protocol/index.cjs.map +0 -1
  176. package/dist/chat-protocol/index.d.ts +0 -18
  177. package/dist/chat-protocol/index.d.ts.map +0 -1
  178. package/dist/chat-protocol/index.js +0 -478
  179. package/dist/chat-protocol/index.js.map +0 -1
  180. package/dist/chat-protocol/ip-normalize.d.ts +0 -44
  181. package/dist/chat-protocol/ip-normalize.d.ts.map +0 -1
  182. package/dist/chat-protocol/nats-decoder.d.ts +0 -26
  183. package/dist/chat-protocol/nats-decoder.d.ts.map +0 -1
  184. package/dist/chunk-5LMGFI4J.cjs.map +0 -1
  185. package/dist/chunk-BE6DK7QY.js.map +0 -1
  186. package/dist/chunk-Q6E7VJ4W.cjs.map +0 -1
  187. package/dist/chunk-T2EGSZFN.js.map +0 -1
  188. package/dist/chunk-TKN5667N.js.map +0 -1
  189. package/dist/chunk-YHOIAA2E.cjs.map +0 -1
  190. package/dist/components/chat/stream/chat-dialog-store.d.ts +0 -184
  191. package/dist/components/chat/stream/chat-dialog-store.d.ts.map +0 -1
  192. package/dist/components/chat/stream/chat-stream-reducer.d.ts +0 -367
  193. package/dist/components/chat/stream/chat-stream-reducer.d.ts.map +0 -1
  194. package/dist/components/chat/stream/delta-batcher.d.ts +0 -51
  195. package/dist/components/chat/stream/delta-batcher.d.ts.map +0 -1
  196. package/dist/components/chat/stream/index.d.ts +0 -17
  197. package/dist/components/chat/stream/index.d.ts.map +0 -1
  198. package/dist/components/chat/stream/message-mutations.d.ts +0 -77
  199. package/dist/components/chat/stream/message-mutations.d.ts.map +0 -1
  200. package/dist/components/chat/stream/use-chat-stream-reducer.d.ts +0 -22
  201. package/dist/components/chat/stream/use-chat-stream-reducer.d.ts.map +0 -1
  202. package/dist/components/ui/markdown/base-components.d.ts +0 -51
  203. package/dist/components/ui/markdown/base-components.d.ts.map +0 -1
  204. package/dist/components/ui/markdown/engine.d.ts +0 -99
  205. package/dist/components/ui/markdown/engine.d.ts.map +0 -1
  206. package/dist/components/ui/markdown/heading-ids.d.ts +0 -65
  207. package/dist/components/ui/markdown/heading-ids.d.ts.map +0 -1
  208. package/dist/components/ui/markdown/index.d.ts +0 -18
  209. package/dist/components/ui/markdown/index.d.ts.map +0 -1
  210. package/dist/components/ui/markdown/mermaid-diagram.d.ts +0 -79
  211. package/dist/components/ui/markdown/mermaid-diagram.d.ts.map +0 -1
  212. package/dist/components/ui/markdown/rich/embed-overrides.d.ts +0 -14
  213. package/dist/components/ui/markdown/rich/embed-overrides.d.ts.map +0 -1
  214. package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts +0 -40
  215. package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts.map +0 -1
  216. package/dist/components/ui/markdown/rich/shortcodes.d.ts +0 -8
  217. package/dist/components/ui/markdown/rich/shortcodes.d.ts.map +0 -1
  218. package/dist/components/ui/markdown/sanitize.d.ts +0 -153
  219. package/dist/components/ui/markdown/sanitize.d.ts.map +0 -1
  220. package/dist/components/ui/markdown/simple-markdown-renderer.d.ts +0 -23
  221. package/dist/components/ui/markdown/simple-markdown-renderer.d.ts.map +0 -1
  222. package/dist/components/ui/markdown/streaming.d.ts +0 -78
  223. package/dist/components/ui/markdown/streaming.d.ts.map +0 -1
  224. package/dist/components/ui/markdown/text-size.d.ts +0 -34
  225. package/dist/components/ui/markdown/text-size.d.ts.map +0 -1
  226. package/dist/utils/markdown-fences.d.ts +0 -42
  227. package/dist/utils/markdown-fences.d.ts.map +0 -1
  228. package/dist/utils/markdown-heading-id.d.ts +0 -85
  229. package/dist/utils/markdown-heading-id.d.ts.map +0 -1
  230. package/src/chat-protocol/__tests__/__snapshots__/nats-decoder-golden.test.ts.snap +0 -307
  231. package/src/chat-protocol/__tests__/chat-protocol.test.ts +0 -516
  232. package/src/chat-protocol/__tests__/env-flag.test.ts +0 -52
  233. package/src/chat-protocol/__tests__/ip-normalize.test.ts +0 -136
  234. package/src/chat-protocol/__tests__/nats-decoder-golden.test.ts +0 -228
  235. package/src/chat-protocol/decode.ts +0 -278
  236. package/src/chat-protocol/encode.ts +0 -71
  237. package/src/chat-protocol/env-flag.ts +0 -39
  238. package/src/chat-protocol/events.ts +0 -232
  239. package/src/chat-protocol/frames.ts +0 -245
  240. package/src/chat-protocol/index.ts +0 -21
  241. package/src/chat-protocol/ip-normalize.ts +0 -146
  242. package/src/chat-protocol/nats-decoder.ts +0 -252
  243. package/src/components/chat/__tests__/chat-message-streaming-memo.test.tsx +0 -207
  244. package/src/components/chat/__tests__/chat-pending-turn.test.tsx +0 -209
  245. package/src/components/chat/hooks/__tests__/__snapshots__/conversation-id-persistence-golden.test.ts.snap +0 -37
  246. package/src/components/chat/hooks/__tests__/__snapshots__/sse-stream-golden.test.ts.snap +0 -0
  247. package/src/components/chat/hooks/__tests__/conversation-id-persistence-golden.test.ts +0 -438
  248. package/src/components/chat/hooks/__tests__/sse-stream-golden.test.ts +0 -318
  249. package/src/components/chat/stream/__tests__/__snapshots__/chat-stream-reducer-golden.test.ts.snap +0 -940
  250. package/src/components/chat/stream/__tests__/chat-dialog-store.test.ts +0 -756
  251. package/src/components/chat/stream/__tests__/chat-stream-reducer-golden.test.ts +0 -460
  252. package/src/components/chat/stream/__tests__/chat-stream-reducer.test.ts +0 -894
  253. package/src/components/chat/stream/__tests__/delta-batcher.test.ts +0 -255
  254. package/src/components/chat/stream/__tests__/use-chat-stream-reducer.test.ts +0 -98
  255. package/src/components/chat/stream/chat-dialog-store.ts +0 -536
  256. package/src/components/chat/stream/chat-stream-reducer.ts +0 -1796
  257. package/src/components/chat/stream/delta-batcher.ts +0 -159
  258. package/src/components/chat/stream/index.ts +0 -55
  259. package/src/components/chat/stream/message-mutations.ts +0 -338
  260. package/src/components/chat/stream/use-chat-stream-reducer.ts +0 -126
  261. package/src/components/chat/utils/__tests__/__snapshots__/process-historical-messages-golden.test.ts.snap +0 -420
  262. package/src/components/chat/utils/__tests__/__snapshots__/segment-accumulator-golden.test.ts.snap +0 -605
  263. package/src/components/chat/utils/__tests__/process-historical-messages-golden.test.ts +0 -317
  264. package/src/components/chat/utils/__tests__/segment-accumulator-golden.test.ts +0 -270
  265. package/src/components/ui/__tests__/__snapshots__/markdown-parity.test.tsx.snap +0 -2420
  266. package/src/components/ui/__tests__/markdown-parity.test.tsx +0 -2528
  267. package/src/components/ui/markdown/__tests__/mermaid-security.test.ts +0 -115
  268. package/src/components/ui/markdown/__tests__/mermaid-stale-render.test.tsx +0 -95
  269. package/src/components/ui/markdown/__tests__/sanitize-invariant.test.ts +0 -309
  270. package/src/components/ui/markdown/__tests__/streaming.test.tsx +0 -388
  271. package/src/components/ui/markdown/base-components.tsx +0 -360
  272. package/src/components/ui/markdown/engine.tsx +0 -315
  273. package/src/components/ui/markdown/heading-ids.ts +0 -239
  274. package/src/components/ui/markdown/index.ts +0 -49
  275. package/src/components/ui/markdown/mermaid-diagram.tsx +0 -291
  276. package/src/components/ui/markdown/rich/embed-overrides.tsx +0 -199
  277. package/src/components/ui/markdown/rich/rich-markdown-renderer.tsx +0 -184
  278. package/src/components/ui/markdown/rich/shortcodes.ts +0 -170
  279. package/src/components/ui/markdown/sanitize.ts +0 -3499
  280. package/src/components/ui/markdown/simple-markdown-renderer.tsx +0 -28
  281. package/src/components/ui/markdown/streaming.ts +0 -362
  282. package/src/components/ui/markdown/text-size.ts +0 -106
  283. package/src/utils/markdown-fences.ts +0 -127
  284. package/src/utils/markdown-heading-id.ts +0 -348
  285. /package/dist/{chunk-GTWO5NAY.js.map → chunk-6CFFISUC.js.map} +0 -0
  286. /package/dist/{chunk-VHG6AX5V.js.map → chunk-6CJ2K7BD.js.map} +0 -0
  287. /package/dist/{chunk-4NWARV5I.js.map → chunk-6QK3ONDD.js.map} +0 -0
  288. /package/dist/{chunk-CORIBKHG.js.map → chunk-EGXCWZYP.js.map} +0 -0
  289. /package/dist/{chunk-HSACATCD.js.map → chunk-MPYDX5WX.js.map} +0 -0
  290. /package/dist/{chunk-RQLBHKXN.js.map → chunk-NGEFYPY7.js.map} +0 -0
  291. /package/dist/{chunk-YZ2OIYQ3.js.map → chunk-VDZO6IDR.js.map} +0 -0
  292. /package/dist/{chunk-UUYRJPGJ.js.map → chunk-VL2YMDPH.js.map} +0 -0
  293. /package/dist/{chunk-XQ2B74SI.js.map → chunk-WLM3F3WU.js.map} +0 -0
@@ -1,605 +0,0 @@
1
- // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
-
3
- exports[`MessageSegmentAccumulator — golden sequences > CHARACTERIZATION: a LATE standalone EXECUTING after its EXECUTED pushes a NEW executing segment (no in-place downgrade, but a duplicate card appears) 1`] = `
4
- [
5
- {
6
- "data": {
7
- "integratedToolType": "TACTICAL_RMM",
8
- "parameters": {
9
- "script": "cleanup.sh",
10
- },
11
- "result": "Freed 2.3 GB",
12
- "success": true,
13
- "toolExecutionRequestId": "exec-1",
14
- "toolExplanation": undefined,
15
- "toolFunction": "run_script",
16
- "toolTitle": "Run cleanup script",
17
- "type": "EXECUTED_TOOL",
18
- },
19
- "type": "tool_execution",
20
- },
21
- {
22
- "data": {
23
- "integratedToolType": "TACTICAL_RMM",
24
- "parameters": {
25
- "script": "cleanup.sh",
26
- },
27
- "toolExecutionRequestId": "exec-1",
28
- "toolFunction": "run_script",
29
- "toolTitle": "Run cleanup script",
30
- "type": "EXECUTING_TOOL",
31
- },
32
- "type": "tool_execution",
33
- },
34
- ]
35
- `;
36
-
37
- exports[`MessageSegmentAccumulator — golden sequences > EXECUTED with no prior EXECUTING lands as a standalone completed segment 1`] = `
38
- [
39
- {
40
- "data": {
41
- "integratedToolType": "TACTICAL_RMM",
42
- "parameters": undefined,
43
- "result": "Freed 2.3 GB",
44
- "success": true,
45
- "toolExecutionRequestId": "exec-orphan",
46
- "toolExplanation": undefined,
47
- "toolFunction": "run_script",
48
- "toolTitle": undefined,
49
- "type": "EXECUTED_TOOL",
50
- },
51
- "type": "tool_execution",
52
- },
53
- ]
54
- `;
55
-
56
- exports[`MessageSegmentAccumulator — golden sequences > addApprovalBatch upserts by approvalRequestId (replay path produces ONE batch segment) 1`] = `
57
- [
58
- {
59
- "data": {
60
- "approvalRequestId": "batch-1",
61
- "approvalType": "CLIENT",
62
- "executions": {
63
- "exec-a": {
64
- "result": "ok",
65
- "status": "done",
66
- "success": true,
67
- },
68
- },
69
- "toolCalls": [
70
- {
71
- "approvalType": "CLIENT",
72
- "requiresApproval": true,
73
- "toolCallArguments": {
74
- "subject": "Printer down",
75
- },
76
- "toolExecutionRequestId": "exec-a",
77
- "toolExplanation": "Opens a support ticket",
78
- "toolName": "create_ticket",
79
- "toolTitle": "Create ticket",
80
- },
81
- {
82
- "approvalType": null,
83
- "requiresApproval": false,
84
- "toolCallArguments": null,
85
- "toolExecutionRequestId": "exec-b",
86
- "toolName": "read_kb",
87
- },
88
- ],
89
- },
90
- "onApprove": undefined,
91
- "onReject": undefined,
92
- "resolvedByName": "Jane Admin",
93
- "status": "approved",
94
- "type": "approval_batch",
95
- },
96
- ]
97
- `;
98
-
99
- exports[`MessageSegmentAccumulator — golden sequences > batch approval with per-tool executions merged into the batch (no standalone segments) 1`] = `
100
- [
101
- {
102
- "data": {
103
- "approvalRequestId": "batch-1",
104
- "approvalType": "CLIENT",
105
- "executions": {
106
- "exec-a": {
107
- "result": "Ticket #77 created",
108
- "status": "done",
109
- "success": true,
110
- },
111
- "exec-b": {
112
- "result": undefined,
113
- "status": "executing",
114
- "success": undefined,
115
- },
116
- },
117
- "toolCalls": [
118
- {
119
- "approvalType": "CLIENT",
120
- "requiresApproval": true,
121
- "toolCallArguments": {
122
- "subject": "Printer down",
123
- },
124
- "toolExecutionRequestId": "exec-a",
125
- "toolExplanation": "Opens a support ticket",
126
- "toolName": "create_ticket",
127
- "toolTitle": "Create ticket",
128
- },
129
- {
130
- "approvalType": null,
131
- "requiresApproval": false,
132
- "toolCallArguments": null,
133
- "toolExecutionRequestId": "exec-b",
134
- "toolName": "read_kb",
135
- },
136
- ],
137
- },
138
- "onApprove": undefined,
139
- "onReject": undefined,
140
- "resolvedByName": "Jane Admin",
141
- "status": "approved",
142
- "type": "approval_batch",
143
- },
144
- ]
145
- `;
146
-
147
- exports[`MessageSegmentAccumulator — golden sequences > batch no-downgrade rule: a redelivered EXECUTING after EXECUTED keeps the done slot 1`] = `
148
- [
149
- {
150
- "data": {
151
- "approvalRequestId": "batch-1",
152
- "approvalType": "CLIENT",
153
- "executions": {
154
- "exec-a": {
155
- "result": "done!",
156
- "status": "done",
157
- "success": true,
158
- },
159
- },
160
- "toolCalls": [
161
- {
162
- "approvalType": "CLIENT",
163
- "requiresApproval": true,
164
- "toolCallArguments": {
165
- "subject": "Printer down",
166
- },
167
- "toolExecutionRequestId": "exec-a",
168
- "toolExplanation": "Opens a support ticket",
169
- "toolName": "create_ticket",
170
- "toolTitle": "Create ticket",
171
- },
172
- {
173
- "approvalType": null,
174
- "requiresApproval": false,
175
- "toolCallArguments": null,
176
- "toolExecutionRequestId": "exec-b",
177
- "toolName": "read_kb",
178
- },
179
- ],
180
- },
181
- "onApprove": undefined,
182
- "onReject": undefined,
183
- "resolvedByName": undefined,
184
- "status": "approved",
185
- "type": "approval_batch",
186
- },
187
- ]
188
- `;
189
-
190
- exports[`MessageSegmentAccumulator — golden sequences > coalesces consecutive text deltas into one text segment 1`] = `
191
- [
192
- {
193
- "text": "Hello, world",
194
- "type": "text",
195
- },
196
- ]
197
- `;
198
-
199
- exports[`MessageSegmentAccumulator — golden sequences > coalesces thinking deltas, and text after thinking starts a NEW segment 1`] = `
200
- [
201
- {
202
- "text": "Let me think… ok.",
203
- "type": "thinking",
204
- },
205
- {
206
- "text": "Answer: 42",
207
- "type": "text",
208
- },
209
- {
210
- "text": "post-answer thought",
211
- "type": "thinking",
212
- },
213
- ]
214
- `;
215
-
216
- exports[`MessageSegmentAccumulator — golden sequences > completeContextCompaction with no started segment pushes a completed one 1`] = `
217
- [
218
- {
219
- "status": "completed",
220
- "summary": undefined,
221
- "type": "context_compaction",
222
- },
223
- ]
224
- `;
225
-
226
- exports[`MessageSegmentAccumulator — golden sequences > context compaction start → complete replaces the started segment in place 1`] = `
227
- [
228
- {
229
- "text": "Before compaction",
230
- "type": "text",
231
- },
232
- {
233
- "status": "completed",
234
- "summary": "Summarized 34 messages",
235
- "type": "context_compaction",
236
- },
237
- {
238
- "text": "After compaction",
239
- "type": "text",
240
- },
241
- ]
242
- `;
243
-
244
- exports[`MessageSegmentAccumulator — golden sequences > error segments append verbatim 1`] = `
245
- [
246
- {
247
- "text": "partial answer",
248
- "type": "text",
249
- },
250
- {
251
- "details": "boom",
252
- "title": "Agent crashed",
253
- "type": "error",
254
- },
255
- ]
256
- `;
257
-
258
- exports[`MessageSegmentAccumulator — golden sequences > flushPendingApprovals emits pending cards for every tracked-but-unresolved approval 1`] = `
259
- [
260
- {
261
- "data": {
262
- "approvalType": "CLIENT",
263
- "command": "cmd-1",
264
- "explanation": undefined,
265
- "requestId": "req-1",
266
- },
267
- "onApprove": undefined,
268
- "onReject": undefined,
269
- "status": "pending",
270
- "type": "approval_request",
271
- },
272
- {
273
- "data": {
274
- "approvalType": "ADMIN",
275
- "command": "cmd-2",
276
- "explanation": "why",
277
- "requestId": "req-2",
278
- },
279
- "onApprove": undefined,
280
- "onReject": undefined,
281
- "status": "pending",
282
- "type": "approval_request",
283
- },
284
- ]
285
- `;
286
-
287
- exports[`MessageSegmentAccumulator — golden sequences > implicit approval does NOT touch approval_batch segments (handled by applyExecutionToBatch only) 1`] = `
288
- [
289
- {
290
- "data": {
291
- "approvalRequestId": "batch-1",
292
- "approvalType": "CLIENT",
293
- "toolCalls": [
294
- {
295
- "approvalType": "CLIENT",
296
- "requiresApproval": true,
297
- "toolCallArguments": {
298
- "subject": "Printer down",
299
- },
300
- "toolExecutionRequestId": "exec-a",
301
- "toolExplanation": "Opens a support ticket",
302
- "toolName": "create_ticket",
303
- "toolTitle": "Create ticket",
304
- },
305
- {
306
- "approvalType": null,
307
- "requiresApproval": false,
308
- "toolCallArguments": null,
309
- "toolExecutionRequestId": "exec-b",
310
- "toolName": "read_kb",
311
- },
312
- ],
313
- },
314
- "onApprove": undefined,
315
- "onReject": undefined,
316
- "resolvedByName": undefined,
317
- "status": "pending",
318
- "type": "approval_batch",
319
- },
320
- {
321
- "data": {
322
- "integratedToolType": "TACTICAL_RMM",
323
- "parameters": {
324
- "script": "cleanup.sh",
325
- },
326
- "toolExecutionRequestId": "exec-unrelated",
327
- "toolFunction": "run_script",
328
- "toolTitle": "Run cleanup script",
329
- "type": "EXECUTING_TOOL",
330
- },
331
- "type": "tool_execution",
332
- },
333
- ]
334
- `;
335
-
336
- exports[`MessageSegmentAccumulator — golden sequences > implicit approval flips ONLY the latest pending gate, earlier pending gates stay pending 1`] = `
337
- [
338
- {
339
- "data": {
340
- "approvalType": "CLIENT",
341
- "command": "first",
342
- "explanation": undefined,
343
- "requestId": "req-1",
344
- },
345
- "onApprove": undefined,
346
- "onReject": undefined,
347
- "status": "pending",
348
- "type": "approval_request",
349
- },
350
- {
351
- "data": {
352
- "approvalType": "CLIENT",
353
- "command": "second",
354
- "explanation": undefined,
355
- "requestId": "req-2",
356
- },
357
- "onApprove": undefined,
358
- "onReject": undefined,
359
- "status": "approved",
360
- "type": "approval_request",
361
- },
362
- {
363
- "data": {
364
- "integratedToolType": "TACTICAL_RMM",
365
- "parameters": {
366
- "script": "cleanup.sh",
367
- },
368
- "toolExecutionRequestId": "exec-1",
369
- "toolFunction": "run_script",
370
- "toolTitle": "Run cleanup script",
371
- "type": "EXECUTING_TOOL",
372
- },
373
- "type": "tool_execution",
374
- },
375
- ]
376
- `;
377
-
378
- exports[`MessageSegmentAccumulator — golden sequences > implicit resolvePendingApprovalForExecution: a tool execution flips the LATEST pending single approval (NATS-observer behavior) 1`] = `
379
- [
380
- {
381
- "data": {
382
- "approvalType": "CLIENT",
383
- "command": "echo old",
384
- "explanation": undefined,
385
- "requestId": "req-old",
386
- },
387
- "onApprove": undefined,
388
- "onReject": undefined,
389
- "status": "rejected",
390
- "type": "approval_request",
391
- },
392
- {
393
- "data": {
394
- "approvalType": "CLIENT",
395
- "command": "systemctl restart nats",
396
- "explanation": undefined,
397
- "requestId": "req-1",
398
- },
399
- "onApprove": undefined,
400
- "onReject": undefined,
401
- "status": "approved",
402
- "type": "approval_request",
403
- },
404
- {
405
- "data": {
406
- "integratedToolType": "TACTICAL_RMM",
407
- "parameters": {
408
- "script": "cleanup.sh",
409
- },
410
- "toolExecutionRequestId": "exec-9",
411
- "toolFunction": "run_script",
412
- "toolTitle": "Run cleanup script",
413
- "type": "EXECUTING_TOOL",
414
- },
415
- "type": "tool_execution",
416
- },
417
- ]
418
- `;
419
-
420
- exports[`MessageSegmentAccumulator — golden sequences > initializeWithState continues an incomplete message across reconnect 1`] = `
421
- [
422
- {
423
- "text": "partial ",
424
- "type": "text",
425
- },
426
- {
427
- "data": {
428
- "integratedToolType": "TACTICAL_RMM",
429
- "parameters": {
430
- "script": "cleanup.sh",
431
- },
432
- "result": "Freed 2.3 GB",
433
- "success": true,
434
- "toolExecutionRequestId": "exec-1",
435
- "toolExplanation": undefined,
436
- "toolFunction": "run_script",
437
- "toolTitle": "Run cleanup script",
438
- "type": "EXECUTED_TOOL",
439
- },
440
- "type": "tool_execution",
441
- },
442
- {
443
- "text": "and the rest.",
444
- "type": "text",
445
- },
446
- ]
447
- `;
448
-
449
- exports[`MessageSegmentAccumulator — golden sequences > merges EXECUTING_TOOL → EXECUTED_TOOL in place by toolExecutionRequestId (title restored) 1`] = `
450
- [
451
- {
452
- "text": "Running a cleanup now.",
453
- "type": "text",
454
- },
455
- {
456
- "data": {
457
- "integratedToolType": "TACTICAL_RMM",
458
- "parameters": {
459
- "script": "cleanup.sh",
460
- },
461
- "result": "Freed 2.3 GB",
462
- "success": true,
463
- "toolExecutionRequestId": "exec-1",
464
- "toolExplanation": undefined,
465
- "toolFunction": "run_script",
466
- "toolTitle": "Run cleanup script",
467
- "type": "EXECUTED_TOOL",
468
- },
469
- "type": "tool_execution",
470
- },
471
- ]
472
- `;
473
-
474
- exports[`MessageSegmentAccumulator — golden sequences > pairs by (integratedToolType, toolFunction) when no exec id is present (older backends) 1`] = `
475
- [
476
- {
477
- "data": {
478
- "integratedToolType": "TACTICAL_RMM",
479
- "parameters": {
480
- "script": "cleanup.sh",
481
- },
482
- "result": "Freed 2.3 GB",
483
- "success": true,
484
- "toolExplanation": undefined,
485
- "toolFunction": "run_script",
486
- "toolTitle": "Run cleanup script",
487
- "type": "EXECUTED_TOOL",
488
- },
489
- "type": "tool_execution",
490
- },
491
- ]
492
- `;
493
-
494
- exports[`MessageSegmentAccumulator — golden sequences > replaySegments reproduces a mixed recorded segment array (idempotent replay) 1`] = `
495
- [
496
- {
497
- "text": "hmm",
498
- "type": "thinking",
499
- },
500
- {
501
- "text": "Sure — ",
502
- "type": "text",
503
- },
504
- {
505
- "data": {
506
- "integratedToolType": "TACTICAL_RMM",
507
- "parameters": {
508
- "script": "cleanup.sh",
509
- },
510
- "result": "Freed 2.3 GB",
511
- "success": true,
512
- "toolExecutionRequestId": "exec-1",
513
- "toolExplanation": undefined,
514
- "toolFunction": "run_script",
515
- "toolTitle": "Run cleanup script",
516
- "type": "EXECUTED_TOOL",
517
- },
518
- "type": "tool_execution",
519
- },
520
- {
521
- "data": {
522
- "approvalRequestId": "batch-1",
523
- "approvalType": "CLIENT",
524
- "executions": {
525
- "exec-a": {
526
- "result": "ok",
527
- "status": "done",
528
- "success": true,
529
- },
530
- },
531
- "toolCalls": [
532
- {
533
- "approvalType": "CLIENT",
534
- "requiresApproval": true,
535
- "toolCallArguments": {
536
- "subject": "Printer down",
537
- },
538
- "toolExecutionRequestId": "exec-a",
539
- "toolExplanation": "Opens a support ticket",
540
- "toolName": "create_ticket",
541
- "toolTitle": "Create ticket",
542
- },
543
- {
544
- "approvalType": null,
545
- "requiresApproval": false,
546
- "toolCallArguments": null,
547
- "toolExecutionRequestId": "exec-b",
548
- "toolName": "read_kb",
549
- },
550
- ],
551
- },
552
- "onApprove": undefined,
553
- "onReject": undefined,
554
- "resolvedByName": undefined,
555
- "status": "approved",
556
- "type": "approval_batch",
557
- },
558
- {
559
- "text": "done.",
560
- "type": "text",
561
- },
562
- ]
563
- `;
564
-
565
- exports[`MessageSegmentAccumulator — golden sequences > single approval request → updateApprovalStatus flips status and stamps resolvedByName only on batches 1`] = `
566
- [
567
- {
568
- "data": {
569
- "approvalType": "CLIENT",
570
- "command": "systemctl restart nats",
571
- "explanation": "Restart broker",
572
- "requestId": "req-1",
573
- },
574
- "onApprove": [Function],
575
- "onReject": [Function],
576
- "status": "approved",
577
- "type": "approval_request",
578
- },
579
- ]
580
- `;
581
-
582
- exports[`MessageSegmentAccumulator — golden sequences > tracked (pending) approval + processApprovalResult appends a resolved segment 1`] = `
583
- {
584
- "hasPendingAfter": false,
585
- "pendingData": {
586
- "approvalType": "CLIENT",
587
- "command": "rm -rf /tmp/cache",
588
- "explanation": "Clear caches",
589
- },
590
- "segments": [
591
- {
592
- "data": {
593
- "approvalType": "CLIENT",
594
- "command": "rm -rf /tmp/cache",
595
- "explanation": "Clear caches",
596
- "requestId": "req-2",
597
- },
598
- "onApprove": undefined,
599
- "onReject": undefined,
600
- "status": "rejected",
601
- "type": "approval_request",
602
- },
603
- ],
604
- }
605
- `;