@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,34 +0,0 @@
1
- /**
2
- * Text-size presets for the unified markdown engine.
3
- *
4
- * `default` / `compact` / `large` are carried over verbatim from the old
5
- * `SimpleMarkdownRenderer`. `article` is NEW — it reproduces the exact
6
- * typography the old `RichMarkdownRenderer` hardcoded per element, so
7
- * content surfaces (blog, case studies, releases, legal, docs) keep
8
- * byte-identical classes through the unification.
9
- *
10
- * ODS-TOKENS FLAG (ODS_TOKEN_RULES §Typography / §General): the `article`
11
- * preset carries raw px classes (`text-[32px] md:text-[40px] …`) because
12
- * ODS currently has NO composite tokens for long-form prose — `text-h1`/
13
- * `text-h2` are Azeret Mono UI-label scale and `text-h5` is uppercase,
14
- * so mapping prose headings onto them would visibly regress articles.
15
- * The `code` entry of EVERY preset (`text-[13px]` / `text-[14px]` /
16
- * `text-[16px]`), not just `article`'s, is raw px for the same reason: ODS
17
- * has no code/mono type scale. `base-components.tsx` carries the matching
18
- * flag for inline code's `text-[0.9em]` (the mono FAMILY is no longer an
19
- * exemption — both code surfaces now use `font-mono`).
20
- * Per the unification plan, the missing prose- and code-typography tokens
21
- * are FLAGGED here for addition to ODS; the raw-px carry-over is the
22
- * documented, review-gated exemption recorded in the unification PR.
23
- * Do NOT copy these px classes anywhere else.
24
- */
25
- export type TextSizeElement = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'li' | 'blockquote' | 'code' | 'th' | 'td';
26
- export type TextSizeClassMap = Partial<Record<TextSizeElement, string>>;
27
- export type TextSizePreset = 'default' | 'compact' | 'large' | 'article';
28
- export type TextSizeConfig = TextSizePreset | TextSizeClassMap | {
29
- preset: TextSizePreset;
30
- overrides: TextSizeClassMap;
31
- };
32
- export declare const TEXT_SIZE_PRESETS: Record<TextSizePreset, Record<TextSizeElement, string>>;
33
- export declare function resolveTextSizeConfig(config?: TextSizeConfig): Record<TextSizeElement, string>;
34
- //# sourceMappingURL=text-size.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"text-size.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/markdown/text-size.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,MAAM,eAAe,GACvB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACvC,GAAG,GAAG,IAAI,GAAG,YAAY,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;AAErD,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AACzE,MAAM,MAAM,cAAc,GACtB,cAAc,GACd,gBAAgB,GAChB;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,SAAS,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAE5D,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CA6DrF,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAM9F"}
@@ -1,42 +0,0 @@
1
- /**
2
- * Fenced-code tracker — THE definition of "am I inside a code fence".
3
- * Server-safe: no React, no DOM.
4
- *
5
- * Lives in its own module because it is a GENERAL CommonMark fence machine
6
- * with two unrelated consumers: the heading scanner
7
- * (`utils/markdown-heading-id`) and the streaming block splitter
8
- * (`components/ui/markdown/streaming`). It used to live inside
9
- * `markdown-heading-id`, which meant a streaming renderer imported its fence
10
- * state machine from a module named after heading slugs. `markdown-heading-id`
11
- * re-exports these names so the public `utils` surface is unchanged.
12
- */
13
- /** True when `line` is a CommonMark blank line (spaces/tabs only, `\r`-tolerant). */
14
- export declare function isBlankLine(line: string): boolean;
15
- /**
16
- * What one source line is, relative to fenced code:
17
- * - `open` — this line opened a fence
18
- * - `close` — this line closed the open fence
19
- * - `inside`— this line is fence content (including a would-be delimiter that
20
- * does NOT close the open fence: wrong marker char, too short, or
21
- * carrying an info string)
22
- * - `text` — this line is ordinary markdown outside any fence
23
- *
24
- * NOTE: no consumer discriminates the three non-`text` roles today — both the
25
- * heading scanner and the streaming splitter only test `!== 'text'`, and the
26
- * closer-haystack mask below only tests `=== 'open'` / `=== 'close'`. The
27
- * four-value union is kept because the state machine already computes the
28
- * distinction for free and a future consumer (e.g. fence-aware syntax
29
- * post-processing) would otherwise have to re-derive it.
30
- */
31
- export type FenceLineRole = 'open' | 'close' | 'inside' | 'text';
32
- export interface FenceTracker {
33
- /** Advance across one raw source line (mutates) and classify it. */
34
- push(line: string): FenceLineRole;
35
- /** Marker CHARACTER of the currently open fence (`` ` `` / `~`), or null. */
36
- openChar(): string | null;
37
- /** Run length of the currently open fence (a closer must be ≥ this). */
38
- openLength(): number;
39
- }
40
- /** A fresh fenced-code state machine. Server-safe: no React, no DOM. */
41
- export declare function createFenceTracker(): FenceTracker;
42
- //# sourceMappingURL=markdown-fences.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdown-fences.d.ts","sourceRoot":"","sources":["../../src/utils/markdown-fences.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAoDH,qFAAqF;AACrF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAA;AAEhE,MAAM,WAAW,YAAY;IAC3B,oEAAoE;IACpE,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAA;IACjC,6EAA6E;IAC7E,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAA;IACzB,wEAAwE;IACxE,UAAU,IAAI,MAAM,CAAA;CACrB;AAED,wEAAwE;AACxE,wBAAgB,kBAAkB,IAAI,YAAY,CA8BjD"}
@@ -1,85 +0,0 @@
1
- /**
2
- * Markdown heading-id slug SSOT (server-safe: no React, no DOM).
3
- *
4
- * This algorithm previously existed in THREE byte-identical copies:
5
- * - `components/ui/simple-markdown-renderer.tsx` (generateHeadingId)
6
- * - `components/ui/rich-markdown-renderer.tsx` (generateHeadingId)
7
- * - `utils/markdown-section-extractor.ts` (extractSections)
8
- *
9
- * The extractor is the PRODUCER of `sectionIds` and the renderers are the
10
- * CONSUMERS — if the two ever drift, deep-link anchors and scroll-spy
11
- * targets silently diverge. All three now call these helpers; the parity
12
- * test `components/ui/__tests__/markdown-parity.test.tsx` asserts
13
- * extractor-vs-renderer ID agreement over the fixture corpus.
14
- */
15
- /** Emoji ranges stripped from heading text before slugification. */
16
- export declare const HEADING_EMOJI_RE: RegExp;
17
- /** Remove emoji characters and trim. */
18
- export declare function stripHeadingEmojis(text: string): string;
19
- /**
20
- * Core slug chain WITHOUT the emoji strip (the extractor exposes emoji
21
- * stripping as an option, so the two steps are kept separable):
22
- * lowercase → drop non-word/space/hyphen chars → spaces to hyphens →
23
- * trim leading/trailing hyphens. May return `''` for symbol-only input —
24
- * callers apply their own fallback (`section-N`).
25
- */
26
- export declare function slugifyHeadingBase(text: string): string;
27
- /** The full default chain used by the renderers: emoji strip + slugify. */
28
- export declare function slugifyHeadingText(text: string): string;
29
- /**
30
- * Sharing the slug chain alone was not enough. The PRODUCER
31
- * (`utils/markdown-section-extractor`) and the CONSUMER
32
- * (`components/ui/markdown/heading-ids`) each carried their own copy of
33
- * "which lines are headings" and "how do duplicates get suffixed", and the
34
- * copies drifted:
35
- * - the extractor toggled its code-block state on a bare
36
- * `line.startsWith('```')`, so a `~~~`-fenced (or wider-backtick, or
37
- * indented) block containing `## Setup` produced a SECTION from the
38
- * extractor and NO id from the renderer — `sectionIdMap` then missed
39
- * silently and the deep-link anchor pointed nowhere;
40
- * - the extractor anchored ATX at column 0 while the renderer allowed the
41
- * CommonMark 0..3-space indent;
42
- * - the dedupe counter was hand-copied in both files, each with a comment
43
- * saying "the two must agree".
44
- * Both now call `scanHeadings` + `createHeadingIdDeduper`. Server-safe: no
45
- * React, no DOM.
46
- */
47
- export { createFenceTracker, isBlankLine, type FenceTracker, type FenceLineRole, } from './markdown-fences';
48
- /** A heading the renderer will emit, located in the source. */
49
- export interface ScannedHeading {
50
- /** 1-based line of the heading's FIRST line (setext: the title line). */
51
- line: number;
52
- level: number;
53
- /** Raw title text, before `stripInlineMarkdown` / slugification. */
54
- text: string;
55
- }
56
- export interface ScanHeadingsOptions {
57
- /**
58
- * Skip a leading YAML frontmatter block (`---` on line 1 through the next
59
- * `---`). Only a DOCUMENT-LEADING block counts: a bare `---` mid-document
60
- * is a thematic break or a setext underline, and treating it as a
61
- * frontmatter toggle (what the extractor used to do) silently swallowed
62
- * every heading until the next one.
63
- */
64
- skipFrontmatter?: boolean;
65
- /** Include raw-HTML headings (`<h2>Title</h2>`). Default true. */
66
- includeRawHtml?: boolean;
67
- /**
68
- * Skip fenced-code blocks. Default true — a `##` inside a code fence is
69
- * code, not a heading, and the renderer emits no id for it.
70
- */
71
- skipFences?: boolean;
72
- }
73
- /**
74
- * Collect every heading the markdown renderer will emit, in document order.
75
- * THE single definition of "which lines are headings" for both the extractor
76
- * and the renderer's id map.
77
- */
78
- export declare function scanHeadings(content: string, options?: ScanHeadingsOptions): ScannedHeading[];
79
- /**
80
- * The duplicate-id suffix counter, as ONE closure both sides instantiate.
81
- * First occurrence keeps the bare slug; the Nth gets `-N`. Extractor and
82
- * renderer MUST use the same counter or `#anchor` deep links diverge.
83
- */
84
- export declare function createHeadingIdDeduper(): (cleanId: string) => string;
85
- //# sourceMappingURL=markdown-heading-id.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdown-heading-id.d.ts","sourceRoot":"","sources":["../../src/utils/markdown-heading-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,oEAAoE;AACpE,eAAO,MAAM,gBAAgB,QACsC,CAAA;AAEnE,wCAAwC;AACxC,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOvD;AAED,2EAA2E;AAC3E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAKD;;;;;;;;;;;;;;;;;GAiBG;AAMH,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAA;AAG1B,+DAA+D;AAC/D,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,kEAAkE;IAClE,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAkHD;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,mBAAwB,GAChC,cAAc,EAAE,CAwGlB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAUpE"}
@@ -1,307 +0,0 @@
1
- // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
-
3
- exports[`decodeNatsChunk — golden corpus > maps the full recorded corpus to normalized events (snapshot) 1`] = `
4
- {
5
- "ai_metadata_full": {
6
- "contextWindowMaxTokens": 200000,
7
- "modelLabel": "Claude Sonnet",
8
- "modelName": "claude-sonnet-x",
9
- "provider": "anthropic",
10
- "type": "metadata",
11
- },
12
- "ai_metadata_legacy_provider_field": {
13
- "contextWindowMaxTokens": 0,
14
- "modelLabel": undefined,
15
- "modelName": "gpt-x",
16
- "provider": "openai",
17
- "type": "metadata",
18
- },
19
- "ai_metadata_missing_model": null,
20
- "ai_metadata_non_numeric_context_window": {
21
- "contextWindowMaxTokens": 0,
22
- "modelLabel": undefined,
23
- "modelName": "claude-sonnet-x",
24
- "provider": "anthropic",
25
- "type": "metadata",
26
- },
27
- "approval_request_batch": {
28
- "approvalType": "ADMIN",
29
- "requestId": "batch-1",
30
- "toolCalls": [
31
- {
32
- "approvalType": "ADMIN",
33
- "requiresApproval": true,
34
- "toolCallArguments": {
35
- "subject": "Printer down",
36
- },
37
- "toolExecutionRequestId": "exec-a",
38
- "toolExplanation": "Opens a new support ticket",
39
- "toolName": "create_ticket",
40
- "toolTitle": "Create ticket",
41
- "toolType": "WRITE",
42
- },
43
- {
44
- "approvalType": null,
45
- "requiresApproval": false,
46
- "toolCallArguments": null,
47
- "toolExecutionRequestId": "exec-b",
48
- "toolExplanation": undefined,
49
- "toolName": "read_kb",
50
- "toolTitle": undefined,
51
- "toolType": undefined,
52
- },
53
- ],
54
- "type": "approval-request",
55
- },
56
- "approval_request_batch_malformed_entries": {
57
- "approvalType": "USER",
58
- "requestId": "batch-2",
59
- "toolCalls": [
60
- {
61
- "approvalType": null,
62
- "requiresApproval": false,
63
- "toolCallArguments": null,
64
- "toolExecutionRequestId": "",
65
- "toolExplanation": undefined,
66
- "toolName": "42",
67
- "toolTitle": undefined,
68
- "toolType": undefined,
69
- },
70
- ],
71
- "type": "approval-request",
72
- },
73
- "approval_request_empty_tool_calls": {
74
- "approvalType": "USER",
75
- "command": "echo hi",
76
- "explanation": undefined,
77
- "requestId": "req-3",
78
- "type": "approval-request",
79
- },
80
- "approval_request_single": {
81
- "approvalType": "CLIENT",
82
- "command": "systemctl restart nats",
83
- "explanation": "Restart the message broker",
84
- "requestId": "req-1",
85
- "type": "approval-request",
86
- },
87
- "approval_request_snake_case_id": {
88
- "approvalType": "USER",
89
- "command": "rm -rf /tmp/cache",
90
- "explanation": undefined,
91
- "requestId": "req-2",
92
- "type": "approval-request",
93
- },
94
- "approval_result_approved": {
95
- "approvalType": "CLIENT",
96
- "requestId": "req-1",
97
- "resolvedByName": "Jane Admin",
98
- "status": "approved",
99
- "type": "approval-resolved",
100
- },
101
- "approval_result_rejected_resolved_by_name": {
102
- "approvalType": "CLIENT",
103
- "requestId": "req-1",
104
- "resolvedByName": "Bob Tech",
105
- "status": "rejected",
106
- "type": "approval-resolved",
107
- },
108
- "approval_result_truthy_string_approved": {
109
- "approvalType": "CLIENT",
110
- "requestId": "req-9",
111
- "resolvedByName": undefined,
112
- "status": "rejected",
113
- "type": "approval-resolved",
114
- },
115
- "context_compaction_end": {
116
- "phase": "end",
117
- "summary": "Compacted 34 messages",
118
- "type": "compaction",
119
- },
120
- "context_compaction_end_no_summary": {
121
- "phase": "end",
122
- "summary": undefined,
123
- "type": "compaction",
124
- },
125
- "context_compaction_start": {
126
- "phase": "start",
127
- "type": "compaction",
128
- },
129
- "dialog_closed": {
130
- "type": "dialog-closed",
131
- },
132
- "direct_message": {
133
- "displayName": "Jane Admin",
134
- "kind": "direct-message",
135
- "ownerType": "ADMIN",
136
- "text": "Hi, human here taking over",
137
- "type": "participant",
138
- "userId": "admin-7",
139
- },
140
- "direct_message_no_text": null,
141
- "empty_object": null,
142
- "error_bare": {
143
- "details": undefined,
144
- "title": "An error occurred",
145
- "type": "error",
146
- },
147
- "error_full": {
148
- "details": "{"error":{"message":"boom"}}",
149
- "title": "Agent crashed",
150
- "type": "error",
151
- },
152
- "executed_tool": {
153
- "data": {
154
- "integratedToolType": "TACTICAL_RMM",
155
- "parameters": {
156
- "script": "cleanup.sh",
157
- },
158
- "result": "Freed 2.3 GB",
159
- "success": true,
160
- "toolExecutionRequestId": "exec-1",
161
- "toolFunction": "run_script",
162
- "toolTitle": undefined,
163
- "type": "EXECUTED_TOOL",
164
- },
165
- "type": "tool-execution",
166
- },
167
- "executed_tool_failure_no_exec_id": {
168
- "data": {
169
- "integratedToolType": "FLEET_MDM",
170
- "parameters": undefined,
171
- "result": "Device unreachable",
172
- "success": false,
173
- "toolExecutionRequestId": undefined,
174
- "toolFunction": "lock_device",
175
- "toolTitle": undefined,
176
- "type": "EXECUTED_TOOL",
177
- },
178
- "type": "tool-execution",
179
- },
180
- "executing_tool": {
181
- "data": {
182
- "integratedToolType": "TACTICAL_RMM",
183
- "parameters": {
184
- "script": "cleanup.sh",
185
- "timeout": 30,
186
- },
187
- "toolExecutionRequestId": "exec-1",
188
- "toolFunction": "run_script",
189
- "toolTitle": "Run cleanup script",
190
- "type": "EXECUTING_TOOL",
191
- },
192
- "type": "tool-execution",
193
- },
194
- "executing_tool_minimal": {
195
- "data": {
196
- "integratedToolType": "",
197
- "parameters": undefined,
198
- "toolExecutionRequestId": undefined,
199
- "toolFunction": "",
200
- "toolTitle": undefined,
201
- "type": "EXECUTING_TOOL",
202
- },
203
- "type": "tool-execution",
204
- },
205
- "message_end": {
206
- "type": "turn-end",
207
- },
208
- "message_request": {
209
- "contextItems": undefined,
210
- "displayName": "Alice",
211
- "kind": "message-request",
212
- "ownerType": "CLIENT",
213
- "text": "open a ticket",
214
- "type": "participant",
215
- "userId": "user-42",
216
- },
217
- "message_request_no_text": {
218
- "contextItems": undefined,
219
- "displayName": undefined,
220
- "kind": "message-request",
221
- "ownerType": undefined,
222
- "text": "",
223
- "type": "participant",
224
- "userId": undefined,
225
- },
226
- "message_request_with_context_items": {
227
- "contextItems": [
228
- {
229
- "id": "dev-1",
230
- "label": "dev-1",
231
- "type": "device",
232
- },
233
- ],
234
- "displayName": undefined,
235
- "kind": "message-request",
236
- "ownerType": undefined,
237
- "text": "diagnose this device",
238
- "type": "participant",
239
- "userId": undefined,
240
- },
241
- "message_start": {
242
- "type": "turn-start",
243
- },
244
- "missing_type": null,
245
- "null_chunk": null,
246
- "number_chunk": null,
247
- "string_chunk": null,
248
- "system": {
249
- "kind": "system",
250
- "text": "Technician joined the chat",
251
- "type": "participant",
252
- },
253
- "system_no_text": null,
254
- "text": {
255
- "text": "Hello, ",
256
- "type": "text-delta",
257
- },
258
- "text_empty_string": {
259
- "text": "",
260
- "type": "text-delta",
261
- },
262
- "text_missing_text_field": null,
263
- "thinking": {
264
- "text": "Considering options…",
265
- "type": "thinking-delta",
266
- },
267
- "thinking_missing_text": null,
268
- "token_usage": {
269
- "contextSize": 180000,
270
- "inputTokensSize": 1200,
271
- "outputTokensSize": 340,
272
- "totalTokensSize": 1540,
273
- "type": "token-usage",
274
- },
275
- "token_usage_empty_defaults": {
276
- "contextSize": 0,
277
- "inputTokensSize": 0,
278
- "outputTokensSize": 0,
279
- "totalTokensSize": 0,
280
- "type": "token-usage",
281
- },
282
- "undefined_chunk": null,
283
- "unknown_type": null,
284
- }
285
- `;
286
-
287
- exports[`decodeNatsChunk — seq envelope > lifts a numeric JetStream \`streamSeq\` into \`seq\`, and omits it otherwise (snapshot) 1`] = `
288
- {
289
- "absent": {
290
- "text": "hi",
291
- "type": "text-delta",
292
- },
293
- "non_numeric": {
294
- "text": "hi",
295
- "type": "text-delta",
296
- },
297
- "numeric": {
298
- "seq": 42,
299
- "text": "hi",
300
- "type": "text-delta",
301
- },
302
- "zero": {
303
- "seq": 0,
304
- "type": "turn-start",
305
- },
306
- }
307
- `;