@kitn.ai/ui 0.16.0 → 0.17.0

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 (194) hide show
  1. package/README.md +28 -13
  2. package/dist/components/chat-thread.d.ts +2 -4
  3. package/dist/components/choice-card.d.ts +1 -0
  4. package/dist/components/dismissed-stub.d.ts +22 -0
  5. package/dist/components/message.d.ts +59 -2
  6. package/dist/components/response-compare-types.d.ts +66 -0
  7. package/dist/components/response-compare.d.ts +51 -0
  8. package/dist/components/tasks-card.d.ts +1 -0
  9. package/dist/components/toast.d.ts +48 -0
  10. package/dist/components/use-card-resolution.d.ts +10 -6
  11. package/dist/custom-elements.json +260 -11
  12. package/dist/elements/artifact.js +1 -0
  13. package/dist/elements/attachments.js +1 -0
  14. package/dist/elements/autoloader.d.ts +2 -0
  15. package/dist/elements/autoloader.js +1 -0
  16. package/dist/elements/card.js +1 -0
  17. package/dist/elements/cards.d.ts +1 -0
  18. package/dist/elements/cards.js +1 -0
  19. package/dist/elements/chain-of-thought.d.ts +0 -12
  20. package/dist/elements/chain-of-thought.js +1 -0
  21. package/dist/elements/chat-scope-picker.js +1 -0
  22. package/dist/elements/chat-workspace.js +1 -0
  23. package/dist/elements/chat.js +1 -0
  24. package/dist/elements/checkpoint.js +1 -0
  25. package/dist/elements/choice.js +1 -0
  26. package/dist/elements/chunks/Icon-D_Zmwmwh.js +1 -0
  27. package/dist/elements/chunks/action-icons-PVfIvcuG.js +1 -0
  28. package/dist/elements/chunks/attachments-Dp6vqtrc.js +1 -0
  29. package/dist/elements/chunks/bash-InADTalH.js +1 -0
  30. package/dist/elements/chunks/button-CKyYD9G4.js +1 -0
  31. package/dist/elements/chunks/card-Cjho-PYk.js +1 -0
  32. package/dist/elements/chunks/card-routing-C986KuUA.js +1 -0
  33. package/dist/elements/chunks/chat-thread-RT808iPf.js +1 -0
  34. package/dist/elements/chunks/check-CDYaMYrM.js +1 -0
  35. package/dist/elements/chunks/chevron-down-3SBiq8HF.js +1 -0
  36. package/dist/elements/chunks/chevron-right-k2UFlIVK.js +1 -0
  37. package/dist/elements/chunks/cn-Dogu6PbV.js +1 -0
  38. package/dist/elements/chunks/code-block-BYUmfFSd.js +1 -0
  39. package/dist/elements/chunks/collapsible-BiNwdOn6.js +1 -0
  40. package/dist/elements/chunks/context-18g6oi4J.js +1 -0
  41. package/dist/elements/chunks/conversation-list-D9Y0NVdo.js +1 -0
  42. package/dist/elements/chunks/core-AYMC6_lb.js +12 -0
  43. package/dist/elements/chunks/css-M7EaDHN_.js +1 -0
  44. package/dist/elements/chunks/default-input-CSAoYYMd.js +1 -0
  45. package/dist/elements/chunks/download-D8K0Je8r.js +1 -0
  46. package/dist/elements/chunks/dropdown-bUs2iTia.js +1 -0
  47. package/dist/elements/chunks/engine-javascript-vq0WuIJl.js +141 -0
  48. package/dist/elements/chunks/external-link-6mA0wxab.js +1 -0
  49. package/dist/elements/chunks/file-text-DnaYk3Dm.js +1 -0
  50. package/dist/elements/chunks/file-tree-CgtRLlxK.js +1 -0
  51. package/dist/elements/chunks/github-dark-dimmed-DUshB20C.js +1 -0
  52. package/dist/elements/chunks/github-light-JYsPkUQd.js +1 -0
  53. package/dist/elements/chunks/hover-card-CIGw62gP.js +1 -0
  54. package/dist/elements/chunks/html-CPZ3oZQ7.js +1 -0
  55. package/dist/elements/chunks/index-CTBEJeo6.js +1 -0
  56. package/dist/elements/chunks/javascript-C25yR2R2.js +1 -0
  57. package/dist/elements/chunks/json-DxJze_jm.js +1 -0
  58. package/dist/elements/chunks/link-BlGSeoPy.js +1 -0
  59. package/dist/elements/chunks/loader-DvhR4qa0.js +1 -0
  60. package/dist/elements/chunks/markdown-CMTGx9r8.js +64 -0
  61. package/dist/elements/chunks/message-CDZwXjhL.js +1 -0
  62. package/dist/elements/chunks/message-feedback-CYx81QiA.js +1 -0
  63. package/dist/elements/chunks/model-switcher-O_tUhoOT.js +1 -0
  64. package/dist/elements/chunks/overlay-DydXYMQW.js +1 -0
  65. package/dist/elements/chunks/prompt-suggestion-ldlWV5kd.js +1 -0
  66. package/dist/elements/chunks/reasoning-2PUnHlmr.js +1 -0
  67. package/dist/elements/chunks/resizable-B5WNbSeb.js +1 -0
  68. package/dist/elements/chunks/star-t9tI-P0q.js +1 -0
  69. package/dist/elements/chunks/store-C6rIooZz.js +1 -0
  70. package/dist/elements/chunks/svelte--5p79yCD.js +1 -0
  71. package/dist/elements/chunks/text-shimmer-uh9V_KUh.js +1 -0
  72. package/dist/elements/chunks/textarea-3nm6Ia9U.js +1 -0
  73. package/dist/elements/chunks/thumbs-up-BBtguGld.js +1 -0
  74. package/dist/elements/chunks/toast-store-D8cL3fWl.js +1 -0
  75. package/dist/elements/chunks/tool-GJ3vwp1U.js +1 -0
  76. package/dist/elements/chunks/tooltip-DwKAz4XR.js +1 -0
  77. package/dist/elements/chunks/triangle-alert-Ct1zt2JL.js +1 -0
  78. package/dist/elements/chunks/tsx-B8rCNbgL.js +1 -0
  79. package/dist/elements/chunks/typescript-RycA9KXf.js +1 -0
  80. package/dist/elements/chunks/use-card-resolution-D-_0Alzy.js +1 -0
  81. package/dist/elements/chunks/video-mVYiM99-.js +1 -0
  82. package/dist/elements/chunks/vue-BmIZj4XD.js +1 -0
  83. package/dist/elements/chunks/x-CzxL27Ch.js +1 -0
  84. package/dist/elements/code-block.js +1 -0
  85. package/dist/elements/compare.js +1 -0
  86. package/dist/elements/confirm-card.js +1 -0
  87. package/dist/elements/context-meter.js +1 -0
  88. package/dist/elements/conversation-list.d.ts +1 -11
  89. package/dist/elements/conversation-list.js +1 -0
  90. package/dist/elements/embed.js +1 -0
  91. package/dist/elements/empty.js +1 -0
  92. package/dist/elements/feedback-bar.js +1 -0
  93. package/dist/elements/file-tree.js +1 -0
  94. package/dist/elements/file-upload.js +1 -0
  95. package/dist/elements/form.js +1 -0
  96. package/dist/elements/image.js +1 -0
  97. package/dist/elements/link-preview.js +1 -0
  98. package/dist/elements/loader.js +1 -0
  99. package/dist/elements/markdown.js +1 -0
  100. package/dist/elements/message-skills.d.ts +0 -16
  101. package/dist/elements/message-skills.js +1 -0
  102. package/dist/elements/message.js +1 -0
  103. package/dist/elements/model-switcher.d.ts +1 -11
  104. package/dist/elements/model-switcher.js +1 -0
  105. package/dist/elements/popover.js +1 -0
  106. package/dist/elements/prompt-input.d.ts +1 -9
  107. package/dist/elements/prompt-input.js +1 -0
  108. package/dist/elements/prompt-suggestions.d.ts +0 -6
  109. package/dist/elements/prompt-suggestions.js +1 -0
  110. package/dist/elements/reasoning.js +1 -0
  111. package/dist/elements/resizable.d.ts +1 -17
  112. package/dist/elements/resizable.js +1 -0
  113. package/dist/elements/response-stream.js +14 -0
  114. package/dist/elements/scroll-button.js +1 -0
  115. package/dist/elements/source.d.ts +0 -17
  116. package/dist/elements/source.js +1 -0
  117. package/dist/elements/switch.js +1 -0
  118. package/dist/elements/tasks.js +1 -0
  119. package/dist/elements/text-shimmer.js +1 -0
  120. package/dist/elements/thinking-bar.js +1 -0
  121. package/dist/elements/toast.d.ts +1 -0
  122. package/dist/elements/toast.js +1 -0
  123. package/dist/elements/tool.js +1 -0
  124. package/dist/elements/voice-input.js +1 -0
  125. package/dist/elements.d.ts +41 -5
  126. package/dist/index.d.ts +12 -0
  127. package/dist/index.js +11832 -9790
  128. package/dist/kitn-chat.es.js +1 -1
  129. package/dist/llms/llms-full.txt +57 -12
  130. package/dist/llms/llms.txt +3 -3
  131. package/dist/mcp.es.js +157 -1
  132. package/dist/primitives/card-contract.d.ts +20 -4
  133. package/dist/primitives/card-recovery.d.ts +55 -0
  134. package/dist/primitives/message-feedback.d.ts +35 -0
  135. package/dist/primitives/toast-store.d.ts +88 -0
  136. package/dist/react/index.d.ts +83 -3
  137. package/dist/react.js +90 -80
  138. package/dist/register-JyTglR6m.js +1 -0
  139. package/dist/register-impl-C6wlSsts.js +77 -0
  140. package/dist/schemas/choice.schema.json +5 -0
  141. package/dist/schemas/tasks.schema.json +5 -0
  142. package/dist/ui/tooltip.d.ts +1 -0
  143. package/frameworks/react/index.tsx +63 -11
  144. package/llms-full.txt +57 -12
  145. package/llms.txt +3 -3
  146. package/package.json +15 -6
  147. package/src/agent-tooling/mcp/tools/debug.ts +184 -0
  148. package/src/agent-tooling/mcp/tools/scaffold.ts +133 -1
  149. package/src/components/chat-thread.tsx +27 -35
  150. package/src/components/choice-card.tsx +33 -4
  151. package/src/components/component-meta.json +250 -26
  152. package/src/components/confirm-card.tsx +15 -1
  153. package/src/components/dismissed-stub.tsx +80 -0
  154. package/src/components/form.tsx +21 -3
  155. package/src/components/message.tsx +151 -10
  156. package/src/components/response-compare-types.ts +127 -0
  157. package/src/components/response-compare.tsx +431 -0
  158. package/src/components/tasks-card.tsx +33 -3
  159. package/src/components/toast.tsx +398 -0
  160. package/src/components/use-card-resolution.ts +24 -8
  161. package/src/elements/autoloader.ts +89 -0
  162. package/src/elements/chat-types.ts +7 -0
  163. package/src/elements/chat-workspace.tsx +4 -2
  164. package/src/elements/chat.tsx +4 -2
  165. package/src/elements/compare.tsx +88 -0
  166. package/src/elements/compiled.css +1 -1
  167. package/src/elements/element-manifest.json +182 -0
  168. package/src/elements/element-meta.json +191 -68
  169. package/src/elements/element-types.d.ts +41 -5
  170. package/src/elements/framework-usage.json +25 -0
  171. package/src/elements/message.tsx +27 -45
  172. package/src/elements/register-impl.ts +3 -0
  173. package/src/elements/register.ts +9 -0
  174. package/src/elements/remote.tsx +4 -0
  175. package/src/elements/styles.css +19 -0
  176. package/src/elements/toast.tsx +74 -0
  177. package/src/index.ts +30 -0
  178. package/src/primitives/card-contract.ts +14 -5
  179. package/src/primitives/card-recovery.ts +149 -0
  180. package/src/primitives/card-routing.ts +3 -0
  181. package/src/primitives/card-schemas/choice.schema.json +5 -0
  182. package/src/primitives/card-schemas/tasks.schema.json +5 -0
  183. package/src/primitives/message-feedback.ts +123 -0
  184. package/src/primitives/toast-store.ts +235 -0
  185. package/src/ui/tooltip.tsx +8 -2
  186. package/dist/elements/chat-types.d.ts +0 -41
  187. package/dist/elements/css.d.ts +0 -1
  188. package/dist/elements/default-input.d.ts +0 -40
  189. package/dist/elements/define.d.ts +0 -42
  190. package/dist/elements/register-impl.d.ts +0 -0
  191. package/dist/elements/register.d.ts +0 -3
  192. package/dist/register-impl-wCsFPoh9.js +0 -77
  193. package/dist/register-ujhr1nBS.js +0 -1
  194. /package/dist/elements/{remote.d.ts → compare.d.ts} +0 -0
@@ -0,0 +1,182 @@
1
+ {
2
+ "tags": {
3
+ "kai-conversations": "conversation-list",
4
+ "kai-prompt-input": "prompt-input",
5
+ "kai-chat": "chat",
6
+ "kai-workspace": "chat-workspace",
7
+ "kai-thinking-bar": "thinking-bar",
8
+ "kai-model-switcher": "model-switcher",
9
+ "kai-attachments": "attachments",
10
+ "kai-message": "message",
11
+ "kai-markdown": "markdown",
12
+ "kai-code-block": "code-block",
13
+ "kai-reasoning": "reasoning",
14
+ "kai-tool": "tool",
15
+ "kai-context": "context-meter",
16
+ "kai-feedback-bar": "feedback-bar",
17
+ "kai-scope-picker": "chat-scope-picker",
18
+ "kai-suggestions": "prompt-suggestions",
19
+ "kai-file-upload": "file-upload",
20
+ "kai-voice-input": "voice-input",
21
+ "kai-loader": "loader",
22
+ "kai-text-shimmer": "text-shimmer",
23
+ "kai-image": "image",
24
+ "kai-checkpoint": "checkpoint",
25
+ "kai-skills": "message-skills",
26
+ "kai-source": "source",
27
+ "kai-sources": "source",
28
+ "kai-response-stream": "response-stream",
29
+ "kai-empty": "empty",
30
+ "kai-chain-of-thought": "chain-of-thought",
31
+ "kai-resizable": "resizable",
32
+ "kai-resizable-item": "resizable",
33
+ "kai-file-tree": "file-tree",
34
+ "kai-artifact": "artifact",
35
+ "kai-scroll-button": "scroll-button",
36
+ "kai-popover": "popover",
37
+ "kai-switch": "switch",
38
+ "kai-toast-region": "toast",
39
+ "kai-card": "card",
40
+ "kai-form": "form",
41
+ "kai-link-preview": "link-preview",
42
+ "kai-embed": "embed",
43
+ "kai-confirm": "confirm-card",
44
+ "kai-tasks": "tasks",
45
+ "kai-choice": "choice",
46
+ "kai-cards": "cards",
47
+ "kai-compare": "compare"
48
+ },
49
+ "files": {
50
+ "conversation-list": [
51
+ "kai-conversations"
52
+ ],
53
+ "prompt-input": [
54
+ "kai-prompt-input"
55
+ ],
56
+ "chat": [
57
+ "kai-chat"
58
+ ],
59
+ "chat-workspace": [
60
+ "kai-workspace"
61
+ ],
62
+ "thinking-bar": [
63
+ "kai-thinking-bar"
64
+ ],
65
+ "model-switcher": [
66
+ "kai-model-switcher"
67
+ ],
68
+ "attachments": [
69
+ "kai-attachments"
70
+ ],
71
+ "message": [
72
+ "kai-message"
73
+ ],
74
+ "markdown": [
75
+ "kai-markdown"
76
+ ],
77
+ "code-block": [
78
+ "kai-code-block"
79
+ ],
80
+ "reasoning": [
81
+ "kai-reasoning"
82
+ ],
83
+ "tool": [
84
+ "kai-tool"
85
+ ],
86
+ "context-meter": [
87
+ "kai-context"
88
+ ],
89
+ "feedback-bar": [
90
+ "kai-feedback-bar"
91
+ ],
92
+ "chat-scope-picker": [
93
+ "kai-scope-picker"
94
+ ],
95
+ "prompt-suggestions": [
96
+ "kai-suggestions"
97
+ ],
98
+ "file-upload": [
99
+ "kai-file-upload"
100
+ ],
101
+ "voice-input": [
102
+ "kai-voice-input"
103
+ ],
104
+ "loader": [
105
+ "kai-loader"
106
+ ],
107
+ "text-shimmer": [
108
+ "kai-text-shimmer"
109
+ ],
110
+ "image": [
111
+ "kai-image"
112
+ ],
113
+ "checkpoint": [
114
+ "kai-checkpoint"
115
+ ],
116
+ "message-skills": [
117
+ "kai-skills"
118
+ ],
119
+ "source": [
120
+ "kai-source",
121
+ "kai-sources"
122
+ ],
123
+ "response-stream": [
124
+ "kai-response-stream"
125
+ ],
126
+ "empty": [
127
+ "kai-empty"
128
+ ],
129
+ "chain-of-thought": [
130
+ "kai-chain-of-thought"
131
+ ],
132
+ "resizable": [
133
+ "kai-resizable",
134
+ "kai-resizable-item"
135
+ ],
136
+ "file-tree": [
137
+ "kai-file-tree"
138
+ ],
139
+ "artifact": [
140
+ "kai-artifact"
141
+ ],
142
+ "scroll-button": [
143
+ "kai-scroll-button"
144
+ ],
145
+ "popover": [
146
+ "kai-popover"
147
+ ],
148
+ "switch": [
149
+ "kai-switch"
150
+ ],
151
+ "toast": [
152
+ "kai-toast-region"
153
+ ],
154
+ "card": [
155
+ "kai-card"
156
+ ],
157
+ "form": [
158
+ "kai-form"
159
+ ],
160
+ "link-preview": [
161
+ "kai-link-preview"
162
+ ],
163
+ "embed": [
164
+ "kai-embed"
165
+ ],
166
+ "confirm-card": [
167
+ "kai-confirm"
168
+ ],
169
+ "tasks": [
170
+ "kai-tasks"
171
+ ],
172
+ "choice": [
173
+ "kai-choice"
174
+ ],
175
+ "cards": [
176
+ "kai-cards"
177
+ ],
178
+ "compare": [
179
+ "kai-compare"
180
+ ]
181
+ }
182
+ }
@@ -359,11 +359,11 @@
359
359
  "props": [
360
360
  {
361
361
  "name": "cards",
362
- "type": "undefined | { type: string; id: string; data: unknown; title?: undefined | string; resolution?: undefined | { kind: \"action\"; action: string; payload?: unknown; at?: undefined | string } | { kind: \"submit\"; data: unknown; at?: undefined | string } }[]",
362
+ "type": "undefined | { type: string; id: string; data: unknown; title?: undefined | string; resolution?: undefined | { kind: \"action\"; action: string; payload?: unknown; at?: undefined | string } | { kind: \"submit\"; data: unknown; at?: undefined | string } | { kind: \"dismissed\"; at?: undefined | string } | { kind: \"expired\"; reason?: undefined | string; at?: undefined | string } }[]",
363
363
  "optional": true,
364
364
  "scalar": false,
365
365
  "description": "The stream of card envelopes to render. Set as a JS PROPERTY: `el.cards = [...]`.",
366
- "displayType": "undefined | { type: string; id: string; data: unknown; title?: undefined | string; resolution?: undefined | { kind: \"action\"; action: string; payload?: unknown; at?: undefined | string } | { kind: \"submit\"; data: unknown; at?: undefined | string } }[]"
366
+ "displayType": "undefined | { type: string; id: string; data: unknown; title?: undefined | string; resolution?: undefined | { kind: \"action\"; action: string; payload?: unknown; at?: undefined | string } | { kind: \"submit\"; data: unknown; at?: undefined | string } | { kind: \"dismissed\"; at?: undefined | string } | { kind: \"expired\"; reason?: undefined | string; at?: undefined | string } }[]"
367
367
  },
368
368
  {
369
369
  "name": "types",
@@ -375,11 +375,11 @@
375
375
  },
376
376
  {
377
377
  "name": "policy",
378
- "type": "undefined | { onSubmit?: undefined | (cardId: string, data: unknown) => void; onAction?: undefined | (cardId: string, action: string, payload?: unknown) => void; onSendPrompt?: undefined | (text: string, opts: { mode: \"compose\" | \"send\"; context?: unknown; }) => void; onOpen?: undefined | (url: string, target: \"tab\" | \"artifact\") => void; onState?: undefined | (cardId: string, patch: unknown) => void; onDismiss?: undefined | (cardId: string) => void; onError?: undefined | (cardId: string, message: string) => void; maxSendPromptMode?: undefined | \"compose\" | \"send\" }",
378
+ "type": "undefined | { onSubmit?: undefined | (cardId: string, data: unknown) => void; onAction?: undefined | (cardId: string, action: string, payload?: unknown) => void; onSendPrompt?: undefined | (text: string, opts: { mode: \"compose\" | \"send\"; context?: unknown; }) => void; onOpen?: undefined | (url: string, target: \"tab\" | \"artifact\") => void; onState?: undefined | (cardId: string, patch: unknown) => void; onDismiss?: undefined | (cardId: string) => void; onReopen?: undefined | (cardId: string) => void; onError?: undefined | (cardId: string, message: string) => void; maxSendPromptMode?: undefined | \"compose\" | \"send\" }",
379
379
  "optional": true,
380
380
  "scalar": false,
381
381
  "description": "Optional CardPolicy handling child events. Property: `el.policy`.",
382
- "displayType": "undefined | { onSubmit?: undefined | (cardId: string, data: unknown) => void; onAction?: undefined | (cardId: string, action: string, payload?: unknown) => void; onSendPrompt?: undefined | (text: string, opts: { mode: \"compose\" | \"send\"; context?: unknown; }) => void; onOpen?: undefined | (url: string, target: \"tab\" | \"artifact\") => void; onState?: undefined | (cardId: string, patch: unknown) => void; onDismiss?: undefined | (cardId: string) => void; onError?: undefined | (cardId: string, message: string) => void; maxSendPromptMode?: undefined | \"compose\" | \"send\" }"
382
+ "displayType": "undefined | { onSubmit?: undefined | (cardId: string, data: unknown) => void; onAction?: undefined | (cardId: string, action: string, payload?: unknown) => void; onSendPrompt?: undefined | (text: string, opts: { mode: \"compose\" | \"send\"; context?: unknown; }) => void; onOpen?: undefined | (url: string, target: \"tab\" | \"artifact\") => void; onState?: undefined | (cardId: string, patch: unknown) => void; onDismiss?: undefined | (cardId: string) => void; onReopen?: undefined | (cardId: string) => void; onError?: undefined | (cardId: string, message: string) => void; maxSendPromptMode?: undefined | \"compose\" | \"send\" }"
383
383
  }
384
384
  ],
385
385
  "events": [],
@@ -446,14 +446,14 @@
446
446
  "props": [
447
447
  {
448
448
  "name": "messages",
449
- "type": "{ id: string; role: \"user\" | \"assistant\"; content: string; reasoning?: undefined | { text: string; label?: undefined | string }; tools?: undefined | { type: string; state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\"; input?: undefined | Record<string, unknown>; output?: undefined | Record<string, unknown>; toolCallId?: undefined | string; errorText?: undefined | string }[]; attachments?: undefined | { id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[]; actions?: undefined | (\"copy\" | \"like\" | \"dislike\" | \"regenerate\" | \"edit\" | { id: string; label: string; icon?: undefined | string; tooltip?: undefined | string })[]; avatar?: undefined | { src?: undefined | string; fallback?: undefined | string; alt?: undefined | string } }[]",
449
+ "type": "{ id: string; role: \"user\" | \"assistant\"; content: string; reasoning?: undefined | { text: string; label?: undefined | string }; tools?: undefined | { type: string; state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\"; input?: undefined | Record<string, unknown>; output?: undefined | Record<string, unknown>; toolCallId?: undefined | string; errorText?: undefined | string }[]; attachments?: undefined | { id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[]; actions?: undefined | (\"copy\" | \"like\" | \"dislike\" | \"regenerate\" | \"edit\" | { id: string; label: string; icon?: undefined | string; tooltip?: undefined | string })[]; avatar?: undefined | { src?: undefined | string; fallback?: undefined | string; alt?: undefined | string }; feedback?: undefined | \"like\" | \"dislike\" }[]",
450
450
  "optional": false,
451
451
  "scalar": false,
452
452
  "description": "The full message thread to render, newest last. Each entry carries its role, content, and optional reasoning/tools/attachments/actions. Set as a JS property (`el.messages = [...]`).",
453
453
  "typeName": "ChatMessage[]",
454
- "typeShape": "{ id: string; role: \"user\" | \"assistant\"; content: string; reasoning?: undefined | { text: string; label?: undefined | string }; tools?: undefined | { type: string; state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\"; input?: undefined | Record<string, unknown>; output?: undefined | Record<string, unknown>; toolCallId?: undefined | string; errorText?: undefined | string }[]; attachments?: undefined | { id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[]; actions?: undefined | (\"copy\" | \"like\" | \"dislike\" | \"regenerate\" | \"edit\" | { id: string; label: string; icon?: undefined | string; tooltip?: undefined | string })[]; avatar?: undefined | { src?: undefined | string; fallback?: undefined | string; alt?: undefined | string } }[]",
454
+ "typeShape": "{ id: string; role: \"user\" | \"assistant\"; content: string; reasoning?: undefined | { text: string; label?: undefined | string }; tools?: undefined | { type: string; state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\"; input?: undefined | Record<string, unknown>; output?: undefined | Record<string, unknown>; toolCallId?: undefined | string; errorText?: undefined | string }[]; attachments?: undefined | { id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[]; actions?: undefined | (\"copy\" | \"like\" | \"dislike\" | \"regenerate\" | \"edit\" | { id: string; label: string; icon?: undefined | string; tooltip?: undefined | string })[]; avatar?: undefined | { src?: undefined | string; fallback?: undefined | string; alt?: undefined | string }; feedback?: undefined | \"like\" | \"dislike\" }[]",
455
455
  "default": "[]",
456
- "displayType": "{ id: string; role: \"user\" | \"assistant\"; content: string; reasoning?: undefined | { text: string; label?: undefined | string }; tools?: undefined | { type: string; state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\"; input?: undefined | Record<string, unknown>; output?: undefined | Record<string, unknown>; toolCallId?: undefined | string; errorText?: undefined | string }[]; attachments?: undefined | { id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[]; actions?: undefined | (\"copy\" | \"like\" | \"dislike\" | \"regenerate\" | \"edit\" | { id: string; label: string; icon?: undefined | string; tooltip?: undefined | string })[]; avatar?: undefined | { src?: undefined | string; fallback?: undefined | string; alt?: undefined | string } }[]"
456
+ "displayType": "{ id: string; role: \"user\" | \"assistant\"; content: string; reasoning?: undefined | { text: string; label?: undefined | string }; tools?: undefined | { type: string; state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\"; input?: undefined | Record<string, unknown>; output?: undefined | Record<string, unknown>; toolCallId?: undefined | string; errorText?: undefined | string }[]; attachments?: undefined | { id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[]; actions?: undefined | (\"copy\" | \"like\" | \"dislike\" | \"regenerate\" | \"edit\" | { id: string; label: string; icon?: undefined | string; tooltip?: undefined | string })[]; avatar?: undefined | { src?: undefined | string; fallback?: undefined | string; alt?: undefined | string }; feedback?: undefined | \"like\" | \"dislike\" }[]"
457
457
  },
458
458
  {
459
459
  "name": "value",
@@ -647,9 +647,9 @@
647
647
  "events": [
648
648
  {
649
649
  "name": "kai-message-action",
650
- "detail": "{ messageId: string; action: string }",
651
- "description": "An action button on a message was clicked. `action` is the built-in name or custom id.",
652
- "displayDetail": "{ messageId: string; action: string }"
650
+ "detail": "{ messageId: string; action: string; state?: undefined | \"on\" | \"off\" }",
651
+ "description": "An action button on a message was clicked. `action` is the built-in name or custom id. `state` is present only for the toggleable feedback votes: `'on'` when a like/dislike is set, `'off'` when re-tapped to clear.",
652
+ "displayDetail": "{ messageId: string; action: string; state?: undefined | \"on\" | \"off\" }"
653
653
  },
654
654
  {
655
655
  "name": "kai-model-change",
@@ -885,6 +885,98 @@
885
885
  "--color-code-foreground"
886
886
  ]
887
887
  },
888
+ {
889
+ "tag": "kai-compare",
890
+ "className": "KaiCompareElement",
891
+ "displayName": "Compare",
892
+ "props": [
893
+ {
894
+ "name": "data",
895
+ "type": "undefined | Record<string, unknown>",
896
+ "optional": true,
897
+ "scalar": false,
898
+ "description": "The compare definition (prompt + the two candidates). Set as a JS PROPERTY: `el.data = { prompt, candidates: [A, B], collapse? }`. Import `ResponseCompareData` from `@kitn.ai/ui` for the full shape.",
899
+ "displayType": "undefined | Record<string, unknown>"
900
+ },
901
+ {
902
+ "name": "compareId",
903
+ "type": "undefined | string",
904
+ "optional": true,
905
+ "scalar": true,
906
+ "description": "Stable id correlating every emitted event. Attribute: `compare-id`.",
907
+ "displayType": "undefined | string"
908
+ },
909
+ {
910
+ "name": "selection",
911
+ "type": "undefined | Record<string, unknown>",
912
+ "optional": true,
913
+ "scalar": false,
914
+ "description": "Re-hydrate / control the user's pick. Set as a JS PROPERTY: `el.selection = { chosenId, rejectedIds }`. Renders the collapsed winner.",
915
+ "displayType": "undefined | Record<string, unknown>"
916
+ },
917
+ {
918
+ "name": "layout",
919
+ "type": "undefined | \"auto\" | \"columns\" | \"tabs\"",
920
+ "optional": true,
921
+ "scalar": true,
922
+ "description": "Layout: `'auto'` (default — columns when wide, tabs when narrow, by CONTAINER width) | `'columns'` (side-by-side) | `'tabs'` (pills to switch). Attribute: `layout`.",
923
+ "default": "'auto'",
924
+ "displayType": "undefined | \"auto\" | \"columns\" | \"tabs\""
925
+ },
926
+ {
927
+ "name": "proseSize",
928
+ "type": "undefined | \"xs\" | \"sm\" | \"base\" | \"lg\"",
929
+ "optional": true,
930
+ "scalar": true,
931
+ "description": "Prose/text size for the rendered candidates. Attribute: `prose-size`.",
932
+ "displayType": "undefined | \"xs\" | \"sm\" | \"base\" | \"lg\""
933
+ },
934
+ {
935
+ "name": "codeTheme",
936
+ "type": "undefined | string",
937
+ "optional": true,
938
+ "scalar": true,
939
+ "description": "Shiki theme for code blocks in the candidates. Attribute: `code-theme`.",
940
+ "displayType": "undefined | string"
941
+ },
942
+ {
943
+ "name": "codeHighlight",
944
+ "type": "undefined | false | true",
945
+ "optional": true,
946
+ "scalar": true,
947
+ "description": "Whether code blocks are syntax-highlighted. Attribute: `code-highlight`.",
948
+ "displayType": "undefined | false | true"
949
+ }
950
+ ],
951
+ "events": [
952
+ {
953
+ "name": "kai-compare-select",
954
+ "detail": "{ chosenId: string; rejectedIds: string[]; at?: undefined | number }",
955
+ "description": "The user committed a pick. `detail` = `{ chosenId, rejectedIds, at }`.",
956
+ "displayDetail": "{ chosenId: string; rejectedIds: string[]; at?: undefined | number }"
957
+ },
958
+ {
959
+ "name": "kai-error",
960
+ "detail": "{ compareId: string; message: string }",
961
+ "description": "The definition was unusable.",
962
+ "displayDetail": "{ compareId: string; message: string }"
963
+ },
964
+ {
965
+ "name": "kai-ready",
966
+ "detail": "{ compareId: string }",
967
+ "description": "Both candidates have settled and the pick is live.",
968
+ "displayDetail": "{ compareId: string }"
969
+ }
970
+ ],
971
+ "composedFrom": [
972
+ {
973
+ "name": "ResponseCompare",
974
+ "group": "Components",
975
+ "storyId": "solid-advanced-elements-responsecompare--docs"
976
+ }
977
+ ],
978
+ "tokens": []
979
+ },
888
980
  {
889
981
  "tag": "kai-confirm",
890
982
  "className": "KaiConfirmElement",
@@ -1641,11 +1733,11 @@
1641
1733
  "props": [
1642
1734
  {
1643
1735
  "name": "message",
1644
- "type": "undefined | { id: string; role: \"user\" | \"assistant\"; content: string; reasoning?: undefined | { text: string; label?: undefined | string }; tools?: undefined | { type: string; state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\"; input?: undefined | Record<string, unknown>; output?: undefined | Record<string, unknown>; toolCallId?: undefined | string; errorText?: undefined | string }[]; attachments?: undefined | { id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[]; actions?: undefined | (\"copy\" | \"like\" | \"dislike\" | \"regenerate\" | \"edit\" | { id: string; label: string; icon?: undefined | string; tooltip?: undefined | string })[]; avatar?: undefined | { src?: undefined | string; fallback?: undefined | string; alt?: undefined | string } }",
1736
+ "type": "undefined | { id: string; role: \"user\" | \"assistant\"; content: string; reasoning?: undefined | { text: string; label?: undefined | string }; tools?: undefined | { type: string; state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\"; input?: undefined | Record<string, unknown>; output?: undefined | Record<string, unknown>; toolCallId?: undefined | string; errorText?: undefined | string }[]; attachments?: undefined | { id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[]; actions?: undefined | (\"copy\" | \"like\" | \"dislike\" | \"regenerate\" | \"edit\" | { id: string; label: string; icon?: undefined | string; tooltip?: undefined | string })[]; avatar?: undefined | { src?: undefined | string; fallback?: undefined | string; alt?: undefined | string }; feedback?: undefined | \"like\" | \"dislike\" }",
1645
1737
  "optional": true,
1646
1738
  "scalar": false,
1647
1739
  "description": "The full message object. Set as a JS property.",
1648
- "displayType": "undefined | { id: string; role: \"user\" | \"assistant\"; content: string; reasoning?: undefined | { text: string; label?: undefined | string }; tools?: undefined | { type: string; state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\"; input?: undefined | Record<string, unknown>; output?: undefined | Record<string, unknown>; toolCallId?: undefined | string; errorText?: undefined | string }[]; attachments?: undefined | { id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[]; actions?: undefined | (\"copy\" | \"like\" | \"dislike\" | \"regenerate\" | \"edit\" | { id: string; label: string; icon?: undefined | string; tooltip?: undefined | string })[]; avatar?: undefined | { src?: undefined | string; fallback?: undefined | string; alt?: undefined | string } }"
1740
+ "displayType": "undefined | { id: string; role: \"user\" | \"assistant\"; content: string; reasoning?: undefined | { text: string; label?: undefined | string }; tools?: undefined | { type: string; state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\"; input?: undefined | Record<string, unknown>; output?: undefined | Record<string, unknown>; toolCallId?: undefined | string; errorText?: undefined | string }[]; attachments?: undefined | { id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[]; actions?: undefined | (\"copy\" | \"like\" | \"dislike\" | \"regenerate\" | \"edit\" | { id: string; label: string; icon?: undefined | string; tooltip?: undefined | string })[]; avatar?: undefined | { src?: undefined | string; fallback?: undefined | string; alt?: undefined | string }; feedback?: undefined | \"like\" | \"dislike\" }"
1649
1741
  },
1650
1742
  {
1651
1743
  "name": "role",
@@ -1728,9 +1820,9 @@
1728
1820
  "events": [
1729
1821
  {
1730
1822
  "name": "kai-message-action",
1731
- "detail": "{ messageId: string; action: string }",
1732
- "description": "An action button was clicked. `action` is the built-in name or custom id.",
1733
- "displayDetail": "{ messageId: string; action: string }"
1823
+ "detail": "{ messageId: string; action: string; state?: undefined | \"on\" | \"off\" }",
1824
+ "description": "An action button was clicked. `action` is the built-in name or custom id. `state` is present only for the toggleable feedback votes: `'on'` when a like/dislike is set, `'off'` when re-tapped to clear.",
1825
+ "displayDetail": "{ messageId: string; action: string; state?: undefined | \"on\" | \"off\" }"
1734
1826
  }
1735
1827
  ],
1736
1828
  "composedFrom": [
@@ -1745,54 +1837,9 @@
1745
1837
  "storyId": "solid-advanced-elements-messageavatar--docs"
1746
1838
  },
1747
1839
  {
1748
- "name": "MessageContent",
1749
- "group": "Components",
1750
- "storyId": "solid-advanced-elements-messagecontent--docs"
1751
- },
1752
- {
1753
- "name": "MessageActionBar",
1754
- "group": "Components",
1755
- "storyId": "solid-advanced-elements-messageactionbar--docs"
1756
- },
1757
- {
1758
- "name": "Reasoning",
1840
+ "name": "MessageBody",
1759
1841
  "group": "Components",
1760
- "storyId": "solid-advanced-elements-reasoning--docs"
1761
- },
1762
- {
1763
- "name": "ReasoningTrigger",
1764
- "group": "Components",
1765
- "storyId": "solid-advanced-elements-reasoningtrigger--docs"
1766
- },
1767
- {
1768
- "name": "ReasoningContent",
1769
- "group": "Components",
1770
- "storyId": "solid-advanced-elements-reasoningcontent--docs"
1771
- },
1772
- {
1773
- "name": "Tool",
1774
- "group": "Components",
1775
- "storyId": "solid-advanced-elements-tool--docs"
1776
- },
1777
- {
1778
- "name": "Attachments",
1779
- "group": "Components",
1780
- "storyId": "solid-advanced-elements-attachments--docs"
1781
- },
1782
- {
1783
- "name": "Attachment",
1784
- "group": "Components",
1785
- "storyId": "solid-advanced-elements-attachment--docs"
1786
- },
1787
- {
1788
- "name": "AttachmentPreview",
1789
- "group": "Components",
1790
- "storyId": "solid-advanced-elements-attachmentpreview--docs"
1791
- },
1792
- {
1793
- "name": "AttachmentInfo",
1794
- "group": "Components",
1795
- "storyId": "solid-advanced-elements-attachmentinfo--docs"
1842
+ "storyId": "solid-advanced-elements-messagebody--docs"
1796
1843
  }
1797
1844
  ],
1798
1845
  "tokens": []
@@ -2879,6 +2926,82 @@
2879
2926
  ],
2880
2927
  "tokens": []
2881
2928
  },
2929
+ {
2930
+ "tag": "kai-toast-region",
2931
+ "className": "KaiToastRegionElement",
2932
+ "displayName": "ToastRegion",
2933
+ "props": [
2934
+ {
2935
+ "name": "toasts",
2936
+ "type": "{ id: string; message: string; variant?: undefined | \"neutral\" | \"success\"; action?: undefined | { label: string; onAction: () => void | false }; duration?: undefined | number; dismissible?: undefined | false | true; target?: undefined | HTMLElement }[]",
2937
+ "optional": false,
2938
+ "scalar": false,
2939
+ "description": "The toasts to render. Newest is shown on top. Set as a JS property (array); pass a new array reference to update.",
2940
+ "typeName": "ToastItem[]",
2941
+ "typeShape": "{ id: string; message: string; variant?: undefined | \"neutral\" | \"success\"; action?: undefined | { label: string; onAction: () => void | false }; duration?: undefined | number; dismissible?: undefined | false | true; target?: undefined | HTMLElement }[]",
2942
+ "default": "[]",
2943
+ "typeImport": "ToastItem",
2944
+ "displayType": "{ id: string; message: string; variant?: undefined | \"neutral\" | \"success\"; action?: undefined | { label: string; onAction: () => void | false }; duration?: undefined | number; dismissible?: undefined | false | true; target?: undefined | HTMLElement }[]"
2945
+ },
2946
+ {
2947
+ "name": "position",
2948
+ "type": "undefined | \"top-center\" | \"top-right\" | \"top-left\" | \"bottom-center\" | \"bottom-right\" | \"bottom-left\"",
2949
+ "optional": true,
2950
+ "scalar": true,
2951
+ "description": "Stack anchor: `'top-center'` (default), `'top-right'`, `'bottom-center'`, …",
2952
+ "default": "'top-center'",
2953
+ "displayType": "undefined | \"top-center\" | \"top-right\" | \"top-left\" | \"bottom-center\" | \"bottom-right\" | \"bottom-left\""
2954
+ },
2955
+ {
2956
+ "name": "max",
2957
+ "type": "undefined | number",
2958
+ "optional": true,
2959
+ "scalar": true,
2960
+ "description": "Max simultaneously-visible toasts; the rest queue. Defaults to `3`.",
2961
+ "default": "3",
2962
+ "displayType": "undefined | number"
2963
+ },
2964
+ {
2965
+ "name": "stack",
2966
+ "type": "undefined | \"expanded\" | \"collapsed\"",
2967
+ "optional": true,
2968
+ "scalar": true,
2969
+ "description": "Stacking: 'expanded' (default, full column) | 'collapsed' (Sonner-style pile that expands on hover/focus). Attribute: stack.",
2970
+ "default": "'expanded'",
2971
+ "displayType": "undefined | \"expanded\" | \"collapsed\""
2972
+ },
2973
+ {
2974
+ "name": "target",
2975
+ "type": "undefined | HTMLElement",
2976
+ "optional": true,
2977
+ "scalar": false,
2978
+ "description": "Container element to anchor this region to (JS property). Set by the store for a scoped region; unset = the global viewport region.",
2979
+ "displayType": "undefined | HTMLElement"
2980
+ }
2981
+ ],
2982
+ "events": [
2983
+ {
2984
+ "name": "kai-action",
2985
+ "detail": "{ id: string; label: string }",
2986
+ "description": "A toast's action button was pressed.",
2987
+ "displayDetail": "{ id: string; label: string }"
2988
+ },
2989
+ {
2990
+ "name": "kai-dismiss",
2991
+ "detail": "{ id: string; reason: \"action\" | \"timeout\" | \"close\" }",
2992
+ "description": "A toast left the stack. `reason` is `'timeout' | 'close' | 'action'`.",
2993
+ "displayDetail": "{ id: string; reason: \"action\" | \"timeout\" | \"close\" }"
2994
+ }
2995
+ ],
2996
+ "composedFrom": [
2997
+ {
2998
+ "name": "ToastRegion",
2999
+ "group": "Components",
3000
+ "storyId": "solid-advanced-elements-toastregion--docs"
3001
+ }
3002
+ ],
3003
+ "tokens": []
3004
+ },
2882
3005
  {
2883
3006
  "tag": "kai-tool",
2884
3007
  "className": "KaiToolElement",
@@ -3002,14 +3125,14 @@
3002
3125
  },
3003
3126
  {
3004
3127
  "name": "messages",
3005
- "type": "{ id: string; role: \"user\" | \"assistant\"; content: string; reasoning?: undefined | { text: string; label?: undefined | string }; tools?: undefined | { type: string; state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\"; input?: undefined | Record<string, unknown>; output?: undefined | Record<string, unknown>; toolCallId?: undefined | string; errorText?: undefined | string }[]; attachments?: undefined | { id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[]; actions?: undefined | (\"copy\" | \"like\" | \"dislike\" | \"regenerate\" | \"edit\" | { id: string; label: string; icon?: undefined | string; tooltip?: undefined | string })[]; avatar?: undefined | { src?: undefined | string; fallback?: undefined | string; alt?: undefined | string } }[]",
3128
+ "type": "{ id: string; role: \"user\" | \"assistant\"; content: string; reasoning?: undefined | { text: string; label?: undefined | string }; tools?: undefined | { type: string; state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\"; input?: undefined | Record<string, unknown>; output?: undefined | Record<string, unknown>; toolCallId?: undefined | string; errorText?: undefined | string }[]; attachments?: undefined | { id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[]; actions?: undefined | (\"copy\" | \"like\" | \"dislike\" | \"regenerate\" | \"edit\" | { id: string; label: string; icon?: undefined | string; tooltip?: undefined | string })[]; avatar?: undefined | { src?: undefined | string; fallback?: undefined | string; alt?: undefined | string }; feedback?: undefined | \"like\" | \"dislike\" }[]",
3006
3129
  "optional": false,
3007
3130
  "scalar": false,
3008
3131
  "description": "The active conversation's message thread, newest last. Set as a JS property.",
3009
3132
  "typeName": "ChatMessage[]",
3010
- "typeShape": "{ id: string; role: \"user\" | \"assistant\"; content: string; reasoning?: undefined | { text: string; label?: undefined | string }; tools?: undefined | { type: string; state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\"; input?: undefined | Record<string, unknown>; output?: undefined | Record<string, unknown>; toolCallId?: undefined | string; errorText?: undefined | string }[]; attachments?: undefined | { id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[]; actions?: undefined | (\"copy\" | \"like\" | \"dislike\" | \"regenerate\" | \"edit\" | { id: string; label: string; icon?: undefined | string; tooltip?: undefined | string })[]; avatar?: undefined | { src?: undefined | string; fallback?: undefined | string; alt?: undefined | string } }[]",
3133
+ "typeShape": "{ id: string; role: \"user\" | \"assistant\"; content: string; reasoning?: undefined | { text: string; label?: undefined | string }; tools?: undefined | { type: string; state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\"; input?: undefined | Record<string, unknown>; output?: undefined | Record<string, unknown>; toolCallId?: undefined | string; errorText?: undefined | string }[]; attachments?: undefined | { id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[]; actions?: undefined | (\"copy\" | \"like\" | \"dislike\" | \"regenerate\" | \"edit\" | { id: string; label: string; icon?: undefined | string; tooltip?: undefined | string })[]; avatar?: undefined | { src?: undefined | string; fallback?: undefined | string; alt?: undefined | string }; feedback?: undefined | \"like\" | \"dislike\" }[]",
3011
3134
  "default": "[]",
3012
- "displayType": "{ id: string; role: \"user\" | \"assistant\"; content: string; reasoning?: undefined | { text: string; label?: undefined | string }; tools?: undefined | { type: string; state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\"; input?: undefined | Record<string, unknown>; output?: undefined | Record<string, unknown>; toolCallId?: undefined | string; errorText?: undefined | string }[]; attachments?: undefined | { id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[]; actions?: undefined | (\"copy\" | \"like\" | \"dislike\" | \"regenerate\" | \"edit\" | { id: string; label: string; icon?: undefined | string; tooltip?: undefined | string })[]; avatar?: undefined | { src?: undefined | string; fallback?: undefined | string; alt?: undefined | string } }[]"
3135
+ "displayType": "{ id: string; role: \"user\" | \"assistant\"; content: string; reasoning?: undefined | { text: string; label?: undefined | string }; tools?: undefined | { type: string; state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\"; input?: undefined | Record<string, unknown>; output?: undefined | Record<string, unknown>; toolCallId?: undefined | string; errorText?: undefined | string }[]; attachments?: undefined | { id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[]; actions?: undefined | (\"copy\" | \"like\" | \"dislike\" | \"regenerate\" | \"edit\" | { id: string; label: string; icon?: undefined | string; tooltip?: undefined | string })[]; avatar?: undefined | { src?: undefined | string; fallback?: undefined | string; alt?: undefined | string }; feedback?: undefined | \"like\" | \"dislike\" }[]"
3013
3136
  },
3014
3137
  {
3015
3138
  "name": "value",
@@ -3218,9 +3341,9 @@
3218
3341
  },
3219
3342
  {
3220
3343
  "name": "kai-message-action",
3221
- "detail": "{ messageId: string; action: string }",
3222
- "description": "An action button on a message was clicked.",
3223
- "displayDetail": "{ messageId: string; action: string }"
3344
+ "detail": "{ messageId: string; action: string; state?: undefined | \"on\" | \"off\" }",
3345
+ "description": "An action button on a message was clicked. `state` is present only for the toggleable feedback votes: `'on'` when a like/dislike is set, `'off'` when re-tapped to clear.",
3346
+ "displayDetail": "{ messageId: string; action: string; state?: undefined | \"on\" | \"off\" }"
3224
3347
  },
3225
3348
  {
3226
3349
  "name": "kai-model-change",