@syntrologie/adapt-chatbot 2.8.0-canary.62 → 2.8.0-canary.621

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 (250) hide show
  1. package/dist/AdaptiveChatBar.composer.test.d.ts +2 -0
  2. package/dist/AdaptiveChatBar.composer.test.d.ts.map +1 -0
  3. package/dist/AdaptiveChatBar.d.ts +248 -0
  4. package/dist/AdaptiveChatBar.d.ts.map +1 -0
  5. package/dist/AdaptiveChatBar.interleave.test.d.ts +9 -0
  6. package/dist/AdaptiveChatBar.interleave.test.d.ts.map +1 -0
  7. package/dist/AdaptiveChatBar.js +12 -0
  8. package/dist/AdaptiveChatBar.js.map +7 -0
  9. package/dist/AdaptiveChatBarMountable.d.ts +93 -0
  10. package/dist/AdaptiveChatBarMountable.d.ts.map +1 -0
  11. package/dist/AdaptiveChatTrail.anchor-scroll.test.d.ts +2 -0
  12. package/dist/AdaptiveChatTrail.anchor-scroll.test.d.ts.map +1 -0
  13. package/dist/AdaptiveChatTrail.d.ts +539 -0
  14. package/dist/AdaptiveChatTrail.d.ts.map +1 -0
  15. package/dist/AdaptiveChatTrail.follow-bottom.test.d.ts +2 -0
  16. package/dist/AdaptiveChatTrail.follow-bottom.test.d.ts.map +1 -0
  17. package/dist/AdaptiveChatTrail.js +12 -0
  18. package/dist/AdaptiveChatTrail.js.map +7 -0
  19. package/dist/AdaptiveChatTrail.live-region.test.d.ts +2 -0
  20. package/dist/AdaptiveChatTrail.live-region.test.d.ts.map +1 -0
  21. package/dist/AdaptiveChatTrail.test.d.ts +2 -0
  22. package/dist/AdaptiveChatTrail.test.d.ts.map +1 -0
  23. package/dist/AdaptiveChipsStrip.d.ts +1156 -0
  24. package/dist/AdaptiveChipsStrip.d.ts.map +1 -0
  25. package/dist/AdaptiveChipsStrip.js +11 -0
  26. package/dist/AdaptiveChipsStrip.js.map +7 -0
  27. package/dist/AdaptiveChipsStripMountable.d.ts +24 -0
  28. package/dist/AdaptiveChipsStripMountable.d.ts.map +1 -0
  29. package/dist/ChatAssistantLit.d.ts +64 -0
  30. package/dist/ChatAssistantLit.d.ts.map +1 -0
  31. package/dist/ChatAssistantLit.js +14 -0
  32. package/dist/ChatAssistantLit.js.map +7 -0
  33. package/dist/ChatSession.d.ts +275 -0
  34. package/dist/ChatSession.d.ts.map +1 -0
  35. package/dist/ChatTransport.d.ts +448 -0
  36. package/dist/ChatTransport.d.ts.map +1 -0
  37. package/dist/InlineRegistryWidgetMount.test.d.ts +2 -0
  38. package/dist/InlineRegistryWidgetMount.test.d.ts.map +1 -0
  39. package/dist/InlineWidgetLiveMount.test.d.ts +2 -0
  40. package/dist/InlineWidgetLiveMount.test.d.ts.map +1 -0
  41. package/dist/LeaveAMessage.leadconnector.integration.test.d.ts +2 -0
  42. package/dist/LeaveAMessage.leadconnector.integration.test.d.ts.map +1 -0
  43. package/dist/LeaveAMessageLit.d.ts +329 -0
  44. package/dist/LeaveAMessageLit.d.ts.map +1 -0
  45. package/dist/LeaveAMessageLit.test.d.ts +2 -0
  46. package/dist/LeaveAMessageLit.test.d.ts.map +1 -0
  47. package/dist/LeaveAMessageMountable.test.d.ts +2 -0
  48. package/dist/LeaveAMessageMountable.test.d.ts.map +1 -0
  49. package/dist/NavLinkMountable.d.ts +25 -0
  50. package/dist/NavLinkMountable.d.ts.map +1 -0
  51. package/dist/NavLinkMountable.test.d.ts +2 -0
  52. package/dist/NavLinkMountable.test.d.ts.map +1 -0
  53. package/dist/TextAnswerMountable.d.ts +17 -0
  54. package/dist/TextAnswerMountable.d.ts.map +1 -0
  55. package/dist/TextAnswerMountable.test.d.ts +2 -0
  56. package/dist/TextAnswerMountable.test.d.ts.map +1 -0
  57. package/dist/Turnstile.d.ts +101 -0
  58. package/dist/Turnstile.d.ts.map +1 -0
  59. package/dist/cdn.d.ts +16 -8
  60. package/dist/cdn.d.ts.map +1 -1
  61. package/dist/chunk-4V5L7IRV.js +4711 -0
  62. package/dist/chunk-4V5L7IRV.js.map +7 -0
  63. package/dist/chunk-EWPPVPJ4.js +14 -0
  64. package/dist/chunk-EWPPVPJ4.js.map +7 -0
  65. package/dist/chunk-HD2NXGYO.js +8445 -0
  66. package/dist/chunk-HD2NXGYO.js.map +7 -0
  67. package/dist/chunk-HV52LYST.js +641 -0
  68. package/dist/chunk-HV52LYST.js.map +7 -0
  69. package/dist/chunk-LY5AGXVD.js +21 -0
  70. package/dist/chunk-LY5AGXVD.js.map +7 -0
  71. package/dist/chunk-T6VEDUXD.js +694 -0
  72. package/dist/chunk-T6VEDUXD.js.map +7 -0
  73. package/dist/chunk-UFTSEIQP.js +1877 -0
  74. package/dist/chunk-UFTSEIQP.js.map +7 -0
  75. package/dist/chunk-VIRIVP7H.js +898 -0
  76. package/dist/chunk-VIRIVP7H.js.map +7 -0
  77. package/dist/chunk-YFZCMLV6.js +4078 -0
  78. package/dist/chunk-YFZCMLV6.js.map +7 -0
  79. package/dist/editor-lit.d.ts +37 -0
  80. package/dist/editor-lit.d.ts.map +1 -0
  81. package/dist/editor-lit.js +134 -0
  82. package/dist/editor-lit.js.map +7 -0
  83. package/dist/editorToken.d.ts +23 -0
  84. package/dist/editorToken.d.ts.map +1 -0
  85. package/dist/element-session.d.ts +3 -0
  86. package/dist/element-session.d.ts.map +1 -0
  87. package/dist/element-session.js +9 -0
  88. package/dist/element-session.js.map +7 -0
  89. package/dist/elements/ActionHandler.d.ts +34 -0
  90. package/dist/elements/ActionHandler.d.ts.map +1 -0
  91. package/dist/elements/ElementInstanceStore.d.ts +232 -0
  92. package/dist/elements/ElementInstanceStore.d.ts.map +1 -0
  93. package/dist/elements/ElementInstanceStore.test.d.ts +2 -0
  94. package/dist/elements/ElementInstanceStore.test.d.ts.map +1 -0
  95. package/dist/elements/ElementSessionController.d.ts +37 -0
  96. package/dist/elements/ElementSessionController.d.ts.map +1 -0
  97. package/dist/elements/ElementSessionController.test.d.ts +2 -0
  98. package/dist/elements/ElementSessionController.test.d.ts.map +1 -0
  99. package/dist/elements/ElementTypeHandler.d.ts +77 -0
  100. package/dist/elements/ElementTypeHandler.d.ts.map +1 -0
  101. package/dist/elements/ItemHandler.d.ts +60 -0
  102. package/dist/elements/ItemHandler.d.ts.map +1 -0
  103. package/dist/elements/ItemHandler.test.d.ts +2 -0
  104. package/dist/elements/ItemHandler.test.d.ts.map +1 -0
  105. package/dist/elements/TileHandler.d.ts +52 -0
  106. package/dist/elements/TileHandler.d.ts.map +1 -0
  107. package/dist/elements/TileHandler.test.d.ts +2 -0
  108. package/dist/elements/TileHandler.test.d.ts.map +1 -0
  109. package/dist/elements/__tests__/ElementInstanceStore.recall.test.d.ts +2 -0
  110. package/dist/elements/__tests__/ElementInstanceStore.recall.test.d.ts.map +1 -0
  111. package/dist/elements/blockRenderer.d.ts +46 -0
  112. package/dist/elements/blockRenderer.d.ts.map +1 -0
  113. package/dist/elements/blockRenderer.test.d.ts +13 -0
  114. package/dist/elements/blockRenderer.test.d.ts.map +1 -0
  115. package/dist/elements/blocks.d.ts +58 -0
  116. package/dist/elements/blocks.d.ts.map +1 -0
  117. package/dist/elements/createElementStore.d.ts +11 -0
  118. package/dist/elements/createElementStore.d.ts.map +1 -0
  119. package/dist/elements/envelope.d.ts +24 -0
  120. package/dist/elements/envelope.d.ts.map +1 -0
  121. package/dist/elements/fetcher.d.ts +43 -0
  122. package/dist/elements/fetcher.d.ts.map +1 -0
  123. package/dist/elements/index.d.ts +33 -0
  124. package/dist/elements/index.d.ts.map +1 -0
  125. package/dist/elements/store-singleton.d.ts +4 -0
  126. package/dist/elements/store-singleton.d.ts.map +1 -0
  127. package/dist/elements/tileLifecycleProps.d.ts +13 -0
  128. package/dist/elements/tileLifecycleProps.d.ts.map +1 -0
  129. package/dist/elements/types.d.ts +117 -0
  130. package/dist/elements/types.d.ts.map +1 -0
  131. package/dist/findSmartCanvas.d.ts +19 -0
  132. package/dist/findSmartCanvas.d.ts.map +1 -0
  133. package/dist/hostAgentController.d.ts +65 -0
  134. package/dist/hostAgentController.d.ts.map +1 -0
  135. package/dist/hostAgentController.test.d.ts +2 -0
  136. package/dist/hostAgentController.test.d.ts.map +1 -0
  137. package/dist/observer/__tests__/allowlist.test.d.ts +9 -0
  138. package/dist/observer/__tests__/allowlist.test.d.ts.map +1 -0
  139. package/dist/observer/__tests__/bus-translate.test.d.ts +16 -0
  140. package/dist/observer/__tests__/bus-translate.test.d.ts.map +1 -0
  141. package/dist/observer/__tests__/detector-observation-contract.test.d.ts +25 -0
  142. package/dist/observer/__tests__/detector-observation-contract.test.d.ts.map +1 -0
  143. package/dist/observer/__tests__/lifecycle.test.d.ts +2 -0
  144. package/dist/observer/__tests__/lifecycle.test.d.ts.map +1 -0
  145. package/dist/observer/__tests__/observer-enrich.test.d.ts +10 -0
  146. package/dist/observer/__tests__/observer-enrich.test.d.ts.map +1 -0
  147. package/dist/observer/__tests__/observer-isolation.test.d.ts +13 -0
  148. package/dist/observer/__tests__/observer-isolation.test.d.ts.map +1 -0
  149. package/dist/observer/__tests__/queue.test.d.ts +2 -0
  150. package/dist/observer/__tests__/queue.test.d.ts.map +1 -0
  151. package/dist/observer/__tests__/transport.test.d.ts +2 -0
  152. package/dist/observer/__tests__/transport.test.d.ts.map +1 -0
  153. package/dist/observer/allowlist.d.ts +32 -0
  154. package/dist/observer/allowlist.d.ts.map +1 -0
  155. package/dist/observer/bus-translate.d.ts +33 -0
  156. package/dist/observer/bus-translate.d.ts.map +1 -0
  157. package/dist/observer/index.d.ts +44 -0
  158. package/dist/observer/index.d.ts.map +1 -0
  159. package/dist/observer/queue.d.ts +63 -0
  160. package/dist/observer/queue.d.ts.map +1 -0
  161. package/dist/observer/transport.d.ts +27 -0
  162. package/dist/observer/transport.d.ts.map +1 -0
  163. package/dist/observer/wire.d.ts +54 -0
  164. package/dist/observer/wire.d.ts.map +1 -0
  165. package/dist/observer/wire.test.d.ts +2 -0
  166. package/dist/observer/wire.test.d.ts.map +1 -0
  167. package/dist/personas.d.ts +30 -0
  168. package/dist/personas.d.ts.map +1 -0
  169. package/dist/runtime-lit.d.ts +8 -0
  170. package/dist/runtime-lit.d.ts.map +1 -0
  171. package/dist/runtime.d.ts +63 -5
  172. package/dist/runtime.d.ts.map +1 -1
  173. package/dist/runtime.js +4439 -28
  174. package/dist/runtime.js.map +7 -0
  175. package/dist/schema.d.ts +3688 -11
  176. package/dist/schema.d.ts.map +1 -1
  177. package/dist/schema.js +578 -30
  178. package/dist/schema.js.map +7 -0
  179. package/dist/support-chat/__tests__/lc-fetch-stub.d.ts +52 -0
  180. package/dist/support-chat/__tests__/lc-fetch-stub.d.ts.map +1 -0
  181. package/dist/support-chat/boot.d.ts +47 -0
  182. package/dist/support-chat/boot.d.ts.map +1 -0
  183. package/dist/support-chat/boot.test.d.ts +2 -0
  184. package/dist/support-chat/boot.test.d.ts.map +1 -0
  185. package/dist/support-chat/crisp.d.ts +4 -0
  186. package/dist/support-chat/crisp.d.ts.map +1 -0
  187. package/dist/support-chat/crisp.test.d.ts +2 -0
  188. package/dist/support-chat/crisp.test.d.ts.map +1 -0
  189. package/dist/support-chat/inbox.d.ts +57 -0
  190. package/dist/support-chat/inbox.d.ts.map +1 -0
  191. package/dist/support-chat/inbox.test.d.ts +2 -0
  192. package/dist/support-chat/inbox.test.d.ts.map +1 -0
  193. package/dist/support-chat/leadconnector.d.ts +13 -0
  194. package/dist/support-chat/leadconnector.d.ts.map +1 -0
  195. package/dist/support-chat/leadconnector.test.d.ts +2 -0
  196. package/dist/support-chat/leadconnector.test.d.ts.map +1 -0
  197. package/dist/support-chat/registry.d.ts +5 -0
  198. package/dist/support-chat/registry.d.ts.map +1 -0
  199. package/dist/support-chat/registry.test.d.ts +2 -0
  200. package/dist/support-chat/registry.test.d.ts.map +1 -0
  201. package/dist/support-chat/schema-widgetid.test.d.ts +2 -0
  202. package/dist/support-chat/schema-widgetid.test.d.ts.map +1 -0
  203. package/dist/support-chat/types.d.ts +19 -0
  204. package/dist/support-chat/types.d.ts.map +1 -0
  205. package/dist/test/setup.d.ts +1 -0
  206. package/dist/test/setup.d.ts.map +1 -0
  207. package/dist/types.d.ts +89 -40
  208. package/dist/types.d.ts.map +1 -1
  209. package/package.json +49 -24
  210. package/dist/ChatAssistant.d.ts +0 -18
  211. package/dist/ChatAssistant.d.ts.map +0 -1
  212. package/dist/ChatAssistant.js +0 -178
  213. package/dist/SyntroChatbot.d.ts +0 -14
  214. package/dist/SyntroChatbot.d.ts.map +0 -1
  215. package/dist/SyntroChatbot.js +0 -56
  216. package/dist/actionParser.d.ts +0 -15
  217. package/dist/actionParser.d.ts.map +0 -1
  218. package/dist/actionParser.js +0 -52
  219. package/dist/apiClient.d.ts +0 -23
  220. package/dist/apiClient.d.ts.map +0 -1
  221. package/dist/apiClient.js +0 -51
  222. package/dist/cdn.js +0 -37
  223. package/dist/editor.d.ts +0 -17
  224. package/dist/editor.d.ts.map +0 -1
  225. package/dist/editor.js +0 -36
  226. package/dist/tools/bridge.d.ts +0 -26
  227. package/dist/tools/bridge.d.ts.map +0 -1
  228. package/dist/tools/bridge.js +0 -25
  229. package/dist/tools/expanders.d.ts +0 -17
  230. package/dist/tools/expanders.d.ts.map +0 -1
  231. package/dist/tools/expanders.js +0 -41
  232. package/dist/tools/index.d.ts +0 -14
  233. package/dist/tools/index.d.ts.map +0 -1
  234. package/dist/tools/index.js +0 -11
  235. package/dist/tools/registrations/GetContextTool.d.ts +0 -7
  236. package/dist/tools/registrations/GetContextTool.d.ts.map +0 -1
  237. package/dist/tools/registrations/GetContextTool.js +0 -18
  238. package/dist/tools/registrations/ScrollToTool.d.ts +0 -7
  239. package/dist/tools/registrations/ScrollToTool.d.ts.map +0 -1
  240. package/dist/tools/registrations/ScrollToTool.js +0 -38
  241. package/dist/tools/registrations/ShowOverlayTool.d.ts +0 -7
  242. package/dist/tools/registrations/ShowOverlayTool.d.ts.map +0 -1
  243. package/dist/tools/registrations/ShowOverlayTool.js +0 -47
  244. package/dist/tools/registrations/index.d.ts +0 -19
  245. package/dist/tools/registrations/index.d.ts.map +0 -1
  246. package/dist/tools/registrations/index.js +0 -7
  247. package/dist/types.js +0 -6
  248. package/dist/useChat.d.ts +0 -25
  249. package/dist/useChat.d.ts.map +0 -1
  250. package/dist/useChat.js +0 -106
@@ -0,0 +1,539 @@
1
+ /**
2
+ * AdaptiveChatTrail — the "bubble-up" message column that sits above the
3
+ * chat bar in the canvas lid.
4
+ *
5
+ * Messages appear immediately above the chat bar and drift upward as
6
+ * newer ones arrive. Each stack position carries an opacity + blur
7
+ * falloff so older messages read as fading from the page. Beyond a
8
+ * `visibleCount` cap (default 3) the trail collapses into an "N more ·
9
+ * expand" affordance — clicking emits `trail-expand`.
10
+ *
11
+ * Shadow DOM (default Lit open root) so chip styles, markdown reset
12
+ * rules, and animation @keyframes are scoped to this element's tree.
13
+ * Theme CSS variables (--sc-tile-text-color, --sc-content-bubble-*,
14
+ * etc.) inherit through the shadow boundary, so canvas-level theming
15
+ * still reaches the chips. The earlier light-DOM render-root override
16
+ * silently broke @keyframes lookup once the trail was hosted inside
17
+ * any shadow root (sc-mount, velvet-mobile, etc.) — keyframes injected
18
+ * into `document.head` aren't visible from another tree scope.
19
+ *
20
+ * See PRD §4.3 (chat trail) for the canonical motion + falloff spec.
21
+ */
22
+ import { LitElement } from 'lit';
23
+ export interface TrailToolCall {
24
+ id: string;
25
+ name: string;
26
+ status: 'args-streaming' | 'pending' | 'running' | 'done' | 'error';
27
+ /**
28
+ * Parsed tool-call arguments, when available. Threaded through from
29
+ * the AG-UI `ToolCall.args` so the trail can render argument-derived
30
+ * affordances WITHOUT a new transport: an activity receipt for a
31
+ * `primary_response_action` mount (derives type + label from
32
+ * `template_id` / `content.title`) and inline reply chips for a
33
+ * `suggest_replies` call (reads the `replies` array). Undefined while
34
+ * args are still streaming or for tools whose args we don't surface.
35
+ */
36
+ args?: Record<string, unknown>;
37
+ }
38
+ export interface TrailMessage {
39
+ /** Stable identity for keyed rendering (must be unique within the trail). */
40
+ id: number | string;
41
+ role: 'user' | 'assistant' | 'system';
42
+ text: string;
43
+ /** Streaming → assistant text still arriving from backend. Complete → final. Error → fatal during stream. */
44
+ status?: 'streaming' | 'complete' | 'error';
45
+ /** Tool calls attached to an assistant message (rendered as compact chips). */
46
+ toolCalls?: TrailToolCall[];
47
+ }
48
+ export type TileReceipt = {
49
+ kind: 'tile';
50
+ instanceId: string;
51
+ title: string;
52
+ dismissed: boolean;
53
+ turnId?: string;
54
+ toolCallId?: string;
55
+ /** Tiny product thumbnail for the chip's leading slot (COI-037).
56
+ * Absent → the decorative stack glyph renders instead. */
57
+ imageUrl?: string;
58
+ } | {
59
+ kind: 'alert';
60
+ instanceId: string;
61
+ title: string;
62
+ turnId?: string;
63
+ toolCallId?: string;
64
+ };
65
+ /**
66
+ * A widget the backend wants rendered INLINE IN THE CHAT TRAIL (in the
67
+ * conversation flow, like a rich message) — currently the reco carousel.
68
+ * Sourced from `ElementInstanceStore.listInlineWidgets()` (backend
69
+ * `chat-inline` slot mounts) and forwarded by AdaptiveChatBar.
70
+ *
71
+ * The trail mounts `tag` by name via `document.createElement` and assigns
72
+ * the payload as one `props` object property (`el.props = props`, the
73
+ * standard tile-widget mount contract) — it never imports the widget package (the
74
+ * element self-defines when its own bundle loads; on demos both bundles
75
+ * are present). If `tag` is not a defined custom element, the trail
76
+ * renders NOTHING for it (no broken box).
77
+ */
78
+ export interface InlineTrailWidget {
79
+ instanceId: string;
80
+ /**
81
+ * The mount identifier for the widget. For self-defining, server-mounted
82
+ * widgets this IS the custom-element tag (e.g. `syntro-product-reco-carousel`)
83
+ * and the trail creates it directly. For admin-template widgets it is the
84
+ * runtime widget-id (e.g. `adaptive-product:card`, `adaptive-faq:accordion`),
85
+ * which is NOT a valid custom-element tag — those mount through the runtime
86
+ * widget registry via {@link InlineWidgetMounter}, which resolves the id to
87
+ * its real element exactly like the deck `SyntroTileCard` path.
88
+ */
89
+ tag: string;
90
+ props: Record<string, unknown>;
91
+ /**
92
+ * `mounted_by.turn_id` of the element — the id of the user message that
93
+ * triggered the mounting turn. Lets the trail restore the widget to its
94
+ * original transcript position after a reload (see `_anchorFromTurn`).
95
+ */
96
+ turnId?: string;
97
+ /**
98
+ * `tool_call_id` of the mount call that created the element — pins the
99
+ * restored widget to the exact transcript message hosting that call
100
+ * (see `_anchorFromToolCall`); `turnId` is the coarser fallback.
101
+ */
102
+ toolCallId?: string;
103
+ }
104
+ /**
105
+ * Mounts a registry-registered widget (by its runtime widget-id) into
106
+ * `container` and returns the created element plus an unmount cleanup.
107
+ * Injected from the chat-bar mountable, bound to `runtime.widgets`. Lets the
108
+ * trail render inline tiles whose widget-id is not their custom-element tag
109
+ * (product card, comparison, FAQ accordion) — the registry owns the
110
+ * id → element resolution. Returns `null` when the id is not registered.
111
+ */
112
+ export type InlineWidgetMounter = (widgetId: string, container: HTMLElement, props: Record<string, unknown>) => {
113
+ element: HTMLElement;
114
+ cleanup: () => void;
115
+ } | null;
116
+ export declare class AdaptiveChatTrail extends LitElement {
117
+ static styles: import("lit").CSSResult;
118
+ static properties: {
119
+ messages: {
120
+ attribute: boolean;
121
+ };
122
+ visibleCount: {
123
+ type: NumberConstructor;
124
+ };
125
+ expanded: {
126
+ type: BooleanConstructor;
127
+ };
128
+ greeting: {
129
+ type: StringConstructor;
130
+ };
131
+ /** When true: trail renders fully expanded AND the
132
+ * expand/collapse affordance is hidden. Used by hosts that mount
133
+ * the chat in a full-screen surface (the mobile panel) where
134
+ * collapse makes no sense — there's nothing to collapse INTO. */
135
+ forceExpanded: {
136
+ type: BooleanConstructor;
137
+ };
138
+ /**
139
+ * BUG (found 2026-08-13, reported live as a stray horizontal rule
140
+ * floating above the transcript with nothing above it): the
141
+ * expanded/forceExpanded scroll container always paints a
142
+ * `borderTop` to mark "the panel's top edge". That reads correctly
143
+ * in `AdaptiveChatBar`, which ALWAYS renders `renderHeader(...)`
144
+ * immediately above the trail when `forceExpanded` is true (see
145
+ * `AdaptiveChatBar.ts`'s `${this.forceExpanded ? renderHeader(...)
146
+ * : nothing}`) — the border separates header from transcript.
147
+ * `LeaveAMessageLit` mounts this element directly with no header
148
+ * above it, so the same border renders as an orphaned rule sitting
149
+ * in blank card padding. Default `false` preserves the existing
150
+ * `AdaptiveChatBar` look exactly; hosts with no header above the
151
+ * trail set this `true` to suppress it. */
152
+ hideTopBorder: {
153
+ type: BooleanConstructor;
154
+ };
155
+ /**
156
+ * Short-thread mode (BUG-1789098964): never engage the turn anchor;
157
+ * every messages change pins the bottom unless the visitor scrolled up.
158
+ * The anchor contract exists so a long STREAMED answer reads top-down
159
+ * from the visitor's message. The human-handoff card shows a 160px
160
+ * thread whose replies land whole, and there the anchor pinned the
161
+ * visitor's own chip to the top while the reply sat below the fold
162
+ * (Parker, live on mainpeptides.com 2026-09-10). Hosts that render a
163
+ * short thread set this `true`; the concierge leaves it `false`.
164
+ */
165
+ followBottom: {
166
+ type: BooleanConstructor;
167
+ };
168
+ /**
169
+ * Mirrors `chatSession.inFlight` — true between `send()` and the
170
+ * assistant's first `receiveStart`/`receiveDelta`, OR while a
171
+ * stream is in progress. Drives the "thinking" indicator that
172
+ * fills the gap between the user's just-sent message and the
173
+ * first assistant token. Wired through AdaptiveChatBar (it owns
174
+ * the chatSession subscription and forwards inFlight as a prop).
175
+ */
176
+ inFlight: {
177
+ type: BooleanConstructor;
178
+ };
179
+ /**
180
+ * Live reasoning narration streamed from the model via AG-UI
181
+ * `THINKING_TEXT_MESSAGE_CONTENT`. When non-empty, the thinking
182
+ * chip renders this in place of the bouncing dots so the visitor
183
+ * sees what the model is actually doing instead of staring at
184
+ * silent loading state during a tool-call gap.
185
+ */
186
+ thinkingText: {
187
+ attribute: boolean;
188
+ };
189
+ personaName: {
190
+ attribute: boolean;
191
+ };
192
+ personaAvatarSm: {
193
+ attribute: boolean;
194
+ };
195
+ /**
196
+ * Pre-conversation suggestion chip. When the visitor opens the
197
+ * chat and `messages` is empty, the trail renders this as a
198
+ * button beneath the greeting. Clicking it dispatches a
199
+ * `trail-intro-suggestion` event with the configured prompt —
200
+ * the parent (chat-bar) forwards that to chatSession.send().
201
+ * Disappears the moment the first message lands.
202
+ */
203
+ introSuggestion: {
204
+ attribute: boolean;
205
+ };
206
+ /**
207
+ * Tappable tile-receipt chips rendered once at the end of the
208
+ * trail. Produced from the store by Task 3 (AdaptiveChatBar).
209
+ * Each chip emits `tile-receipt-activate` with its instanceId.
210
+ */
211
+ tileReceipts: {
212
+ attribute: boolean;
213
+ };
214
+ /**
215
+ * Widgets rendered INLINE in the trail (reco carousel etc.),
216
+ * anchored to a message position like receipts. Sourced from the
217
+ * store's `chat-inline` slot mounts via AdaptiveChatBar.
218
+ */
219
+ inlineWidgets: {
220
+ attribute: boolean;
221
+ };
222
+ /**
223
+ * Registry-backed mounter for inline widgets whose id is not their
224
+ * custom-element tag. Injected from the chat-bar mountable.
225
+ */
226
+ mountInlineWidget: {
227
+ attribute: boolean;
228
+ };
229
+ _messagesBelow: {
230
+ state: boolean;
231
+ };
232
+ };
233
+ messages: TrailMessage[];
234
+ tileReceipts: TileReceipt[];
235
+ inlineWidgets: InlineTrailWidget[];
236
+ mountInlineWidget: InlineWidgetMounter | undefined;
237
+ visibleCount: number;
238
+ expanded: boolean;
239
+ forceExpanded: boolean;
240
+ hideTopBorder: boolean;
241
+ followBottom: boolean;
242
+ inFlight: boolean;
243
+ thinkingText: string;
244
+ /** Persona identity (FEAT-1784917430) — name + small avatar for assistant
245
+ * turn-start chips and the thinking indicator. Empty = legacy rendering. */
246
+ personaName: string;
247
+ personaAvatarSm: string;
248
+ /** True when `m` opens an assistant run (previous visible message is not
249
+ * assistant) — the persona byline renders once per turn, not per chip. */
250
+ private _isAssistantTurnStart;
251
+ introSuggestion: {
252
+ label: string;
253
+ prompt: string;
254
+ } | undefined;
255
+ /**
256
+ * Pre-conversation phantom assistant message. Rendered only when
257
+ * `messages` is empty. NOT injected into chatSession state — the
258
+ * greeting is configuration, not conversation, so it disappears
259
+ * automatically when the first real message arrives.
260
+ */
261
+ greeting: string | undefined;
262
+ /** Follow the bottom on content growth. On by default (history
263
+ * browsing); off from a new user message until the visitor opts back in
264
+ * (pill tap or a user-gesture scroll that reaches the bottom). */
265
+ private _stickToBottom;
266
+ /** The user message the current turn is anchored to. */
267
+ private _anchorMsgId;
268
+ /** Whether a turn anchor is live (drives expand-mid-turn landing). */
269
+ private _anchorActive;
270
+ /** Keep enforcing chip-at-top on updates (late geometry, mode flips)
271
+ * until the user scrolls or opts into following. */
272
+ private _anchorHold;
273
+ /** Number of messages whose BOTTOM edge is still below the viewport —
274
+ * messages the visitor hasn't scrolled past yet. Drives the
275
+ * "⌄ N messages" pill and stays accurate as they scroll (one long
276
+ * streaming reply counts as 1 until its end has been read). Reactive. */
277
+ private _messagesBelow;
278
+ /** Timestamp of the last user scroll gesture (wheel/touch): scroll
279
+ * events outside this window are programmatic (our own pin/anchor) and
280
+ * must not re-engage following — anchoring the newest message clamps AT
281
+ * the bottom in any longer conversation. */
282
+ private _lastUserScrollIntentTs;
283
+ private static readonly _AT_BOTTOM_EPSILON_PX;
284
+ private static readonly _USER_SCROLL_INTENT_WINDOW_MS;
285
+ private get _scrollable();
286
+ private _trailContainer;
287
+ private _isAtBottom;
288
+ /** Count chips whose bottom edge hasn't entered the viewport yet. */
289
+ private _countMessagesBelow;
290
+ private _syncContentBelow;
291
+ private _markUserScrollIntent;
292
+ private _onTrailScroll;
293
+ /** Pill tap: jump to the newest content and follow for the rest of the turn. */
294
+ private _onScrollToRecent;
295
+ /** Scroll so the anchored user chip sits at the top of the trail
296
+ * viewport. Idempotent — safe to re-apply on every update while the
297
+ * hold is live (content grows BELOW the anchor, so the target is
298
+ * stable; re-applying also covers late geometry, e.g. expanding
299
+ * mid-turn from the ambient strip). */
300
+ private _applyAnchor;
301
+ private _pinToBottom;
302
+ private _onExpand;
303
+ /**
304
+ * Approve a pending client tool call. The trail emits a generic
305
+ * event so the host can decide whether to forward to chatSession
306
+ * (the common path) or override. Keeps the trail itself free of
307
+ * direct chatSession coupling — it's a pure view component.
308
+ */
309
+ private _onToolCallClick;
310
+ private _onCollapse;
311
+ /**
312
+ * Whether to render the thinking-dots chip after the last message.
313
+ * True iff a request is in flight AND the assistant hasn't started
314
+ * streaming a reply yet — once the first delta lands, the streaming
315
+ * chip's caret takes over and the thinking indicator hides so the
316
+ * visitor isn't shown both at once. Also hidden when the last
317
+ * message is an error/system message, because the request that
318
+ * "errored" is already over from the user's perspective.
319
+ */
320
+ private _shouldShowThinking;
321
+ /**
322
+ * The "assistant is busy" indicator — ONE status line, never a stack.
323
+ *
324
+ * Two facts can be live at once here: WHO is answering (`personaName`, a
325
+ * static sticky pick, fixed for the whole turn) and WHAT is happening
326
+ * (`thinkingText`, rewritten by `ChatTransport`'s narration cycle every ~4s).
327
+ * They used to render as two independently-gated sibling rows, so a
328
+ * persona-enabled workspace showed "Jordan is typing…" stacked directly
329
+ * above the phase copy — the same claim twice, in two different verbs, and
330
+ * "Jordan is typing…" above three bouncing dots before any phase arrived.
331
+ * `thinkingStatusLine()` merges them into one sentence instead, and the
332
+ * dots remain the sole fallback when neither fact is known.
333
+ *
334
+ * The row's own height must NOT change when the phase text rotates, or the
335
+ * whole trail below it jumps every 4 seconds. `thinkingTextStyles()` pins
336
+ * that with a fixed `line-height` plus `white-space: nowrap` +
337
+ * `text-overflow: ellipsis`, so a short and a long phase paint the same box.
338
+ */
339
+ private _renderThinking;
340
+ /**
341
+ * instanceId → id of the message that was newest when the receipt first
342
+ * appeared. This is what makes a receipt read like a chat bubble: it renders
343
+ * inline right after its anchor message, so newer messages push it up into
344
+ * history instead of it staying pinned below everything. Assigned once per
345
+ * instanceId (in willUpdate, the only place that sees both `messages` and
346
+ * `tileReceipts` at the moment a tile mounts) and never re-homed — a
347
+ * dismiss/bring-back keeps the chip where it was created. `null` = the tile
348
+ * mounted before the first chat message (canvas replay); those fall to the
349
+ * tail strip (see render).
350
+ */
351
+ private readonly _receiptAnchors;
352
+ /**
353
+ * instanceId → anchor message id for inline widgets — same mechanism as
354
+ * `_receiptAnchors`. The inline carousel renders right after the message
355
+ * that was newest when it mounted, so it reads like a rich reply and
356
+ * drifts up into history as later messages append.
357
+ */
358
+ private readonly _inlineAnchors;
359
+ /**
360
+ * instanceId → the cached inline widget entry (render node + props target +
361
+ * optional registry cleanup). Cached so a prop patch (same instanceId, new
362
+ * props) updates the EXISTING element instead of tearing it down and
363
+ * re-creating it — which would reset the carousel's scroll position +
364
+ * internal state. Created lazily the first time we see the widget:
365
+ * `document.createElement(tag)` for a defined tag, or a registry mount for a
366
+ * widget-id. An unresolvable widget caches `null` so the fail-safe renders
367
+ * nothing without re-checking the registry.
368
+ */
369
+ private readonly _inlineElements;
370
+ connectedCallback(): void;
371
+ disconnectedCallback(): void;
372
+ /**
373
+ * The id of the newest message the render will actually PAINT — the only
374
+ * valid anchor target. Anchoring to the raw last message is wrong-by-
375
+ * construction for tool-call turns: mid-turn the newest message is often a
376
+ * whitespace-only assistant shell (some providers emit whitespace text
377
+ * deltas around tool calls) that the empty-bubble filter drops, so an
378
+ * anchor recorded on it can never be in the painted set and the receipt
379
+ * falls to the tail strip forever — resurrecting BUG-1783015943 (seen live
380
+ * on vela desktop, BUG-1783630187). `isSuggestionHost=false` here: a
381
+ * message whose ONLY content is reply chips is too ephemeral to anchor on
382
+ * (the chips clear when the visitor answers), so walk past it too.
383
+ */
384
+ private _newestRenderableMessageId;
385
+ /**
386
+ * Server-authoritative anchor for a restored element: `turnId` is the
387
+ * persisted `mounted_by.turn_id` — the id of the user message that
388
+ * triggered the mounting turn. The element anchors to the first
389
+ * content-bearing assistant message of that turn (where it appeared live:
390
+ * intro text, then the mount, then any follow-up), falling back to the
391
+ * turn's user message when the assistant hasn't produced renderable text.
392
+ * Returns null when `turnId` is absent or not in the transcript (nudge
393
+ * mounts carry a runId) — the caller then uses the legacy
394
+ * newest-renderable anchor. Without this, a reload assigned every element
395
+ * to the newest message of the fully restored transcript, dumping all
396
+ * inline views below the last message (the arrival-timing bug).
397
+ */
398
+ /**
399
+ * Exact restore anchor: `toolCallId` is the persisted id of the tool call
400
+ * that mounted the element, and the transcript message hosting that call
401
+ * carries it in `toolCalls`. Anchor to the host message itself when it
402
+ * renders content, else walk BACK to the nearest renderable message — a
403
+ * standalone tool-call message persists with empty content and must not
404
+ * strand the element. This survives every turn shape (text→mount,
405
+ * text→text→mount, mount→text); `_anchorFromTurn` is the coarser fallback
406
+ * for elements persisted before tool_call_id existed.
407
+ */
408
+ private _anchorFromToolCall;
409
+ private _anchorFromTurn;
410
+ willUpdate(changed: Map<string, unknown>): void;
411
+ /**
412
+ * Create (once) or refresh the cached element for an inline widget.
413
+ *
414
+ * Two mount paths, both keeping the chat bundle free of any widget-package
415
+ * import:
416
+ * - Direct tag (self-defining, server-mounted widgets like the reco
417
+ * carousel whose declared `widget` IS its custom-element tag):
418
+ * `document.createElement(tag)`.
419
+ * - Widget-id (admin-template widgets like `adaptive-product:card` or
420
+ * `adaptive-faq:accordion`, whose `widget` is a runtime widget-id, NOT a
421
+ * valid custom-element tag): mount through the runtime widget registry
422
+ * via {@link mountInlineWidget}, which resolves the id to its real
423
+ * element exactly like the deck `SyntroTileCard` path. Without this,
424
+ * `createElement('adaptive-product:card')` yields an inert unknown
425
+ * element and the tile renders permanently blank (the "inline mode
426
+ * shows nothing but the reco" bug).
427
+ *
428
+ * Fail-safe: an id that resolves to neither a defined tag nor a registered
429
+ * widget caches `null` and renders nothing (no broken box).
430
+ */
431
+ private _ensureInlineElement;
432
+ updated(changed: Map<string, unknown>): void;
433
+ private _onTileReceiptClick;
434
+ private _onAlertReceiptClick;
435
+ /** Render a set of inline widgets (reco carousel etc.) as
436
+ * `[data-trail-widget]` blocks, anchored to a message position like
437
+ * receipts. Each block hosts the cached custom element for that
438
+ * instanceId — a defined tag mounts inline; an undefined tag renders
439
+ * nothing (fail-safe). Rendered at every trail site (inline per anchor,
440
+ * tail, empty-state) so placement can't diverge. */
441
+ private _renderInlineWidgetStrip;
442
+ /** A row of receipt chips, used at every trail render site (inline per
443
+ * anchor message, the tail fallback, and the empty-state branches) so the
444
+ * markup + styling can never diverge. Returns `nothing` for an empty list. */
445
+ private _renderReceiptStrip;
446
+ /** One receipt chip — a single, unified, single-line design for both kinds
447
+ * (nav "alert" + mounted "tile"). Same container/title/action style so they
448
+ * read as one chip family; the icon + action label carry the kind. No
449
+ * subtitle: the old "Brought up earlier" line was hardcoded (wrong for
450
+ * same-turn mounts) and made the chip taller — dropping it is the "shorter"
451
+ * chip. Rendered at every trail site so the kinds can't diverge. */
452
+ private _renderReceiptChip;
453
+ private _onIntroSuggestionClick;
454
+ /**
455
+ * Visitor tapped a `suggest_replies` inline chip. Emit
456
+ * `trail-suggested-reply` carrying the chip text — the parent
457
+ * (AdaptiveChatBar) re-dispatches it as `chat-message-sent`, the
458
+ * SAME channel the input row uses, so the reply rides the existing
459
+ * send path (mountable → chatSession.send → transport). No fabricated
460
+ * AG-UI events; this is exactly what typing the text and hitting
461
+ * Enter would do. The chips clear on their own once the reply lands
462
+ * and a newer assistant message becomes the latest.
463
+ */
464
+ private _onSuggestedReplyClick;
465
+ /**
466
+ * The conversation live region.
467
+ *
468
+ * Always rendered, in EVERY branch of `render()` — including the ones that
469
+ * paint no transcript at all. A live region must already be in the DOM when
470
+ * its first child arrives; one created in the same mutation as its content
471
+ * is not reliably announced by NVDA or JAWS (adversarial review I3), and the
472
+ * content that would be lost is the assistant's first reply of the session.
473
+ *
474
+ * `display: contents` means it contributes no box and no layout anywhere it
475
+ * is mounted, so it is safe to place in an empty-state hero or in the flex
476
+ * scroll container alike. In the empty states it is rendered LAST so it can
477
+ * never become the `:first-child` any layout rule targets.
478
+ */
479
+ private _renderConversationLog;
480
+ render(): import("lit-html").TemplateResult<1>;
481
+ }
482
+ /**
483
+ * Discriminated visual state for a chip. Replaces the older
484
+ * `(role, { isStreaming, isError })` triple whose interaction order
485
+ * could produce nonsense combinations (e.g. an assistant chip
486
+ * accidentally reading as a user bubble because `isStreaming` was
487
+ * checked before role). Each kind below is a real conversational
488
+ * state with a single visual identity:
489
+ *
490
+ * - `settled` — a complete message; the user-vs-assistant
491
+ * identity comes from `role`
492
+ * - `streaming` — the assistant chip currently receiving tokens;
493
+ * keeps assistant identity (the blinking caret
494
+ * inside the chip carries "in progress")
495
+ * - `pending` — the thinking chip shown between the user's
496
+ * just-sent message and the assistant's first
497
+ * token; assistant identity (the bouncing dots
498
+ * inside carry "in progress")
499
+ * - `error` — a chip whose stream failed mid-flight, OR any
500
+ * system-role message (system messages render
501
+ * with the error identity by convention)
502
+ *
503
+ * Bug history: an earlier branch-ladder design checked `isStreaming`
504
+ * before `role`, so the `pending`/thinking chip inherited the user
505
+ * bubble border. On hosts whose chat panel sits over a light surface
506
+ * that read as a "white div" pasted into the assistant slot. The
507
+ * discriminated state prevents that combination from being expressible.
508
+ */
509
+ export type ChipVisualState = {
510
+ kind: 'settled';
511
+ role: 'user' | 'assistant' | 'system';
512
+ } | {
513
+ kind: 'streaming';
514
+ } | {
515
+ kind: 'pending';
516
+ } | {
517
+ kind: 'notice';
518
+ role: 'user' | 'assistant' | 'system';
519
+ };
520
+ /**
521
+ * A misbehaving model can emit a raw SERIALIZED response payload as plain TEXT
522
+ * on a spurious trailing turn — e.g.
523
+ * `(Empty response: {'content': [{'type': 'thinking', …}], 'stop_reason': …})`.
524
+ * Backstop for model degeneration (Kimi); the prompt (S-14) also asks for one
525
+ * brief closing, but copy can't be trusted on the very turn that degenerates.
526
+ *
527
+ * Detection avoids false positives (which are WORSE than the dump — the visitor
528
+ * would see nothing): a turn is dropped only if it OPENS with the literal
529
+ * "(Empty response" marker, OR it carries ≥2 serialization tokens at once. A
530
+ * single token (a product about a "signature blend", the agent quoting one JSON
531
+ * key) never trips it; a real response dump carries all of them.
532
+ */
533
+ export declare function looksLikeSerializedModelResponse(text: string): boolean;
534
+ declare global {
535
+ interface HTMLElementTagNameMap {
536
+ 'adaptive-chat-trail': AdaptiveChatTrail;
537
+ }
538
+ }
539
+ //# sourceMappingURL=AdaptiveChatTrail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdaptiveChatTrail.d.ts","sourceRoot":"","sources":["../src/AdaptiveChatTrail.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import './AdaptiveChatTrail';
2
+ //# sourceMappingURL=AdaptiveChatTrail.follow-bottom.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdaptiveChatTrail.follow-bottom.test.d.ts","sourceRoot":"","sources":["../src/AdaptiveChatTrail.follow-bottom.test.ts"],"names":[],"mappings":"AAsBA,OAAO,qBAAqB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import {
2
+ AdaptiveChatTrail,
3
+ looksLikeSerializedModelResponse
4
+ } from "./chunk-UFTSEIQP.js";
5
+ import "./chunk-YFZCMLV6.js";
6
+ import "./chunk-4V5L7IRV.js";
7
+ import "./chunk-LY5AGXVD.js";
8
+ export {
9
+ AdaptiveChatTrail,
10
+ looksLikeSerializedModelResponse
11
+ };
12
+ //# sourceMappingURL=AdaptiveChatTrail.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ import './AdaptiveChatTrail';
2
+ //# sourceMappingURL=AdaptiveChatTrail.live-region.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdaptiveChatTrail.live-region.test.d.ts","sourceRoot":"","sources":["../src/AdaptiveChatTrail.live-region.test.ts"],"names":[],"mappings":"AAeA,OAAO,qBAAqB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import './AdaptiveChatTrail';
2
+ //# sourceMappingURL=AdaptiveChatTrail.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdaptiveChatTrail.test.d.ts","sourceRoot":"","sources":["../src/AdaptiveChatTrail.test.ts"],"names":[],"mappings":"AAgBA,OAAO,qBAAqB,CAAC"}