@aceshooting/lyra-ui 4.0.0 → 4.1.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 (356) hide show
  1. package/README.md +1 -0
  2. package/custom-elements.json +49430 -32305
  3. package/dist/ai/types.contract.d.ts +2 -0
  4. package/dist/ai/types.contract.d.ts.map +1 -0
  5. package/dist/ai/types.contract.js +139 -0
  6. package/dist/ai/types.contract.js.map +1 -0
  7. package/dist/ai/types.d.ts +199 -0
  8. package/dist/ai/types.d.ts.map +1 -0
  9. package/dist/ai/types.js +2 -0
  10. package/dist/ai/types.js.map +1 -0
  11. package/dist/components/agent-run/agent-run.class.d.ts +158 -0
  12. package/dist/components/agent-run/agent-run.class.d.ts.map +1 -0
  13. package/dist/components/agent-run/agent-run.class.js +400 -0
  14. package/dist/components/agent-run/agent-run.class.js.map +1 -0
  15. package/dist/components/agent-run/agent-run.d.ts +2 -0
  16. package/dist/components/agent-run/agent-run.d.ts.map +1 -0
  17. package/dist/components/agent-run/agent-run.js +5 -0
  18. package/dist/components/agent-run/agent-run.js.map +1 -0
  19. package/dist/components/agent-run/agent-run.styles.d.ts +2 -0
  20. package/dist/components/agent-run/agent-run.styles.d.ts.map +1 -0
  21. package/dist/components/agent-run/agent-run.styles.js +143 -0
  22. package/dist/components/agent-run/agent-run.styles.js.map +1 -0
  23. package/dist/components/agent-trace/agent-trace.class.d.ts +111 -0
  24. package/dist/components/agent-trace/agent-trace.class.d.ts.map +1 -0
  25. package/dist/components/agent-trace/agent-trace.class.js +221 -0
  26. package/dist/components/agent-trace/agent-trace.class.js.map +1 -0
  27. package/dist/components/agent-trace/agent-trace.d.ts +5 -0
  28. package/dist/components/agent-trace/agent-trace.d.ts.map +1 -0
  29. package/dist/components/agent-trace/agent-trace.js +8 -0
  30. package/dist/components/agent-trace/agent-trace.js.map +1 -0
  31. package/dist/components/agent-trace/agent-trace.styles.d.ts +2 -0
  32. package/dist/components/agent-trace/agent-trace.styles.d.ts.map +1 -0
  33. package/dist/components/agent-trace/agent-trace.styles.js +61 -0
  34. package/dist/components/agent-trace/agent-trace.styles.js.map +1 -0
  35. package/dist/components/app-rail/app-rail.styles.d.ts.map +1 -1
  36. package/dist/components/app-rail/app-rail.styles.js +4 -0
  37. package/dist/components/app-rail/app-rail.styles.js.map +1 -1
  38. package/dist/components/chat-message/chat-message.class.d.ts +37 -3
  39. package/dist/components/chat-message/chat-message.class.d.ts.map +1 -1
  40. package/dist/components/chat-message/chat-message.class.js +89 -7
  41. package/dist/components/chat-message/chat-message.class.js.map +1 -1
  42. package/dist/components/chat-message/chat-message.styles.d.ts.map +1 -1
  43. package/dist/components/chat-message/chat-message.styles.js +14 -0
  44. package/dist/components/chat-message/chat-message.styles.js.map +1 -1
  45. package/dist/components/context-inspector/context-inspector.class.d.ts +114 -0
  46. package/dist/components/context-inspector/context-inspector.class.d.ts.map +1 -0
  47. package/dist/components/context-inspector/context-inspector.class.js +222 -0
  48. package/dist/components/context-inspector/context-inspector.class.js.map +1 -0
  49. package/dist/components/context-inspector/context-inspector.d.ts +7 -0
  50. package/dist/components/context-inspector/context-inspector.d.ts.map +1 -0
  51. package/dist/components/context-inspector/context-inspector.js +10 -0
  52. package/dist/components/context-inspector/context-inspector.js.map +1 -0
  53. package/dist/components/context-inspector/context-inspector.styles.d.ts +2 -0
  54. package/dist/components/context-inspector/context-inspector.styles.d.ts.map +1 -0
  55. package/dist/components/context-inspector/context-inspector.styles.js +98 -0
  56. package/dist/components/context-inspector/context-inspector.styles.js.map +1 -0
  57. package/dist/components/dashboard-grid/dashboard-grid.class.d.ts +162 -0
  58. package/dist/components/dashboard-grid/dashboard-grid.class.d.ts.map +1 -0
  59. package/dist/components/dashboard-grid/dashboard-grid.class.js +570 -0
  60. package/dist/components/dashboard-grid/dashboard-grid.class.js.map +1 -0
  61. package/dist/components/dashboard-grid/dashboard-grid.d.ts +6 -0
  62. package/dist/components/dashboard-grid/dashboard-grid.d.ts.map +1 -0
  63. package/dist/components/dashboard-grid/dashboard-grid.js +9 -0
  64. package/dist/components/dashboard-grid/dashboard-grid.js.map +1 -0
  65. package/dist/components/dashboard-grid/dashboard-grid.styles.d.ts +2 -0
  66. package/dist/components/dashboard-grid/dashboard-grid.styles.d.ts.map +1 -0
  67. package/dist/components/dashboard-grid/dashboard-grid.styles.js +86 -0
  68. package/dist/components/dashboard-grid/dashboard-grid.styles.js.map +1 -0
  69. package/dist/components/dashboard-grid/layout.d.ts +103 -0
  70. package/dist/components/dashboard-grid/layout.d.ts.map +1 -0
  71. package/dist/components/dashboard-grid/layout.js +94 -0
  72. package/dist/components/dashboard-grid/layout.js.map +1 -0
  73. package/dist/components/date-picker/date-input.class.d.ts +8 -0
  74. package/dist/components/date-picker/date-input.class.d.ts.map +1 -1
  75. package/dist/components/date-picker/date-input.class.js +10 -0
  76. package/dist/components/date-picker/date-input.class.js.map +1 -1
  77. package/dist/components/date-picker/date-input.styles.d.ts.map +1 -1
  78. package/dist/components/date-picker/date-input.styles.js +39 -2
  79. package/dist/components/date-picker/date-input.styles.js.map +1 -1
  80. package/dist/components/document-compare/document-compare.class.d.ts +131 -0
  81. package/dist/components/document-compare/document-compare.class.d.ts.map +1 -0
  82. package/dist/components/document-compare/document-compare.class.js +214 -0
  83. package/dist/components/document-compare/document-compare.class.js.map +1 -0
  84. package/dist/components/document-compare/document-compare.d.ts +2 -0
  85. package/dist/components/document-compare/document-compare.d.ts.map +1 -0
  86. package/dist/components/document-compare/document-compare.js +5 -0
  87. package/dist/components/document-compare/document-compare.js.map +1 -0
  88. package/dist/components/document-compare/document-compare.styles.d.ts +2 -0
  89. package/dist/components/document-compare/document-compare.styles.d.ts.map +1 -0
  90. package/dist/components/document-compare/document-compare.styles.js +65 -0
  91. package/dist/components/document-compare/document-compare.styles.js.map +1 -0
  92. package/dist/components/document-library/document-library.class.d.ts +154 -0
  93. package/dist/components/document-library/document-library.class.d.ts.map +1 -0
  94. package/dist/components/document-library/document-library.class.js +399 -0
  95. package/dist/components/document-library/document-library.class.js.map +1 -0
  96. package/dist/components/document-library/document-library.d.ts +9 -0
  97. package/dist/components/document-library/document-library.d.ts.map +1 -0
  98. package/dist/components/document-library/document-library.js +12 -0
  99. package/dist/components/document-library/document-library.js.map +1 -0
  100. package/dist/components/document-library/document-library.styles.d.ts +2 -0
  101. package/dist/components/document-library/document-library.styles.d.ts.map +1 -0
  102. package/dist/components/document-library/document-library.styles.js +77 -0
  103. package/dist/components/document-library/document-library.styles.js.map +1 -0
  104. package/dist/components/drilldown-panel/drilldown-panel.class.d.ts +148 -0
  105. package/dist/components/drilldown-panel/drilldown-panel.class.d.ts.map +1 -0
  106. package/dist/components/drilldown-panel/drilldown-panel.class.js +241 -0
  107. package/dist/components/drilldown-panel/drilldown-panel.class.js.map +1 -0
  108. package/dist/components/drilldown-panel/drilldown-panel.d.ts +9 -0
  109. package/dist/components/drilldown-panel/drilldown-panel.d.ts.map +1 -0
  110. package/dist/components/drilldown-panel/drilldown-panel.js +12 -0
  111. package/dist/components/drilldown-panel/drilldown-panel.js.map +1 -0
  112. package/dist/components/drilldown-panel/drilldown-panel.styles.d.ts +2 -0
  113. package/dist/components/drilldown-panel/drilldown-panel.styles.d.ts.map +1 -0
  114. package/dist/components/drilldown-panel/drilldown-panel.styles.js +49 -0
  115. package/dist/components/drilldown-panel/drilldown-panel.styles.js.map +1 -0
  116. package/dist/components/entity-dossier/entity-dossier.class.d.ts +132 -0
  117. package/dist/components/entity-dossier/entity-dossier.class.d.ts.map +1 -0
  118. package/dist/components/entity-dossier/entity-dossier.class.js +187 -0
  119. package/dist/components/entity-dossier/entity-dossier.class.js.map +1 -0
  120. package/dist/components/entity-dossier/entity-dossier.d.ts +9 -0
  121. package/dist/components/entity-dossier/entity-dossier.d.ts.map +1 -0
  122. package/dist/components/entity-dossier/entity-dossier.js +12 -0
  123. package/dist/components/entity-dossier/entity-dossier.js.map +1 -0
  124. package/dist/components/entity-dossier/entity-dossier.styles.d.ts +2 -0
  125. package/dist/components/entity-dossier/entity-dossier.styles.d.ts.map +1 -0
  126. package/dist/components/entity-dossier/entity-dossier.styles.js +30 -0
  127. package/dist/components/entity-dossier/entity-dossier.styles.js.map +1 -0
  128. package/dist/components/eval-dataset/eval-dataset.class.d.ts +145 -0
  129. package/dist/components/eval-dataset/eval-dataset.class.d.ts.map +1 -0
  130. package/dist/components/eval-dataset/eval-dataset.class.js +307 -0
  131. package/dist/components/eval-dataset/eval-dataset.class.js.map +1 -0
  132. package/dist/components/eval-dataset/eval-dataset.d.ts +7 -0
  133. package/dist/components/eval-dataset/eval-dataset.d.ts.map +1 -0
  134. package/dist/components/eval-dataset/eval-dataset.js +10 -0
  135. package/dist/components/eval-dataset/eval-dataset.js.map +1 -0
  136. package/dist/components/eval-dataset/eval-dataset.styles.d.ts +2 -0
  137. package/dist/components/eval-dataset/eval-dataset.styles.d.ts.map +1 -0
  138. package/dist/components/eval-dataset/eval-dataset.styles.js +76 -0
  139. package/dist/components/eval-dataset/eval-dataset.styles.js.map +1 -0
  140. package/dist/components/eval-result/eval-result.class.d.ts +115 -0
  141. package/dist/components/eval-result/eval-result.class.d.ts.map +1 -0
  142. package/dist/components/eval-result/eval-result.class.js +165 -0
  143. package/dist/components/eval-result/eval-result.class.js.map +1 -0
  144. package/dist/components/eval-result/eval-result.d.ts +5 -0
  145. package/dist/components/eval-result/eval-result.d.ts.map +1 -0
  146. package/dist/components/eval-result/eval-result.js +8 -0
  147. package/dist/components/eval-result/eval-result.js.map +1 -0
  148. package/dist/components/eval-result/eval-result.styles.d.ts +2 -0
  149. package/dist/components/eval-result/eval-result.styles.d.ts.map +1 -0
  150. package/dist/components/eval-result/eval-result.styles.js +47 -0
  151. package/dist/components/eval-result/eval-result.styles.js.map +1 -0
  152. package/dist/components/evaluation-run/evaluation-run.class.d.ts +168 -0
  153. package/dist/components/evaluation-run/evaluation-run.class.d.ts.map +1 -0
  154. package/dist/components/evaluation-run/evaluation-run.class.js +329 -0
  155. package/dist/components/evaluation-run/evaluation-run.class.js.map +1 -0
  156. package/dist/components/evaluation-run/evaluation-run.d.ts +2 -0
  157. package/dist/components/evaluation-run/evaluation-run.d.ts.map +1 -0
  158. package/dist/components/evaluation-run/evaluation-run.js +5 -0
  159. package/dist/components/evaluation-run/evaluation-run.js.map +1 -0
  160. package/dist/components/evaluation-run/evaluation-run.styles.d.ts +2 -0
  161. package/dist/components/evaluation-run/evaluation-run.styles.d.ts.map +1 -0
  162. package/dist/components/evaluation-run/evaluation-run.styles.js +73 -0
  163. package/dist/components/evaluation-run/evaluation-run.styles.js.map +1 -0
  164. package/dist/components/filter-bar/filter-bar.class.d.ts +200 -0
  165. package/dist/components/filter-bar/filter-bar.class.d.ts.map +1 -0
  166. package/dist/components/filter-bar/filter-bar.class.js +322 -0
  167. package/dist/components/filter-bar/filter-bar.class.js.map +1 -0
  168. package/dist/components/filter-bar/filter-bar.d.ts +10 -0
  169. package/dist/components/filter-bar/filter-bar.d.ts.map +1 -0
  170. package/dist/components/filter-bar/filter-bar.js +13 -0
  171. package/dist/components/filter-bar/filter-bar.js.map +1 -0
  172. package/dist/components/filter-bar/filter-bar.styles.d.ts +2 -0
  173. package/dist/components/filter-bar/filter-bar.styles.d.ts.map +1 -0
  174. package/dist/components/filter-bar/filter-bar.styles.js +37 -0
  175. package/dist/components/filter-bar/filter-bar.styles.js.map +1 -0
  176. package/dist/components/graph-query-builder/graph-query-builder.class.d.ts +242 -0
  177. package/dist/components/graph-query-builder/graph-query-builder.class.d.ts.map +1 -0
  178. package/dist/components/graph-query-builder/graph-query-builder.class.js +511 -0
  179. package/dist/components/graph-query-builder/graph-query-builder.class.js.map +1 -0
  180. package/dist/components/graph-query-builder/graph-query-builder.d.ts +7 -0
  181. package/dist/components/graph-query-builder/graph-query-builder.d.ts.map +1 -0
  182. package/dist/components/graph-query-builder/graph-query-builder.js +10 -0
  183. package/dist/components/graph-query-builder/graph-query-builder.js.map +1 -0
  184. package/dist/components/graph-query-builder/graph-query-builder.styles.d.ts +2 -0
  185. package/dist/components/graph-query-builder/graph-query-builder.styles.d.ts.map +1 -0
  186. package/dist/components/graph-query-builder/graph-query-builder.styles.js +170 -0
  187. package/dist/components/graph-query-builder/graph-query-builder.styles.js.map +1 -0
  188. package/dist/components/grounding-summary/grounding-summary.class.d.ts +80 -0
  189. package/dist/components/grounding-summary/grounding-summary.class.d.ts.map +1 -0
  190. package/dist/components/grounding-summary/grounding-summary.class.js +182 -0
  191. package/dist/components/grounding-summary/grounding-summary.class.js.map +1 -0
  192. package/dist/components/grounding-summary/grounding-summary.d.ts +5 -0
  193. package/dist/components/grounding-summary/grounding-summary.d.ts.map +1 -0
  194. package/dist/components/grounding-summary/grounding-summary.js +8 -0
  195. package/dist/components/grounding-summary/grounding-summary.js.map +1 -0
  196. package/dist/components/grounding-summary/grounding-summary.styles.d.ts +2 -0
  197. package/dist/components/grounding-summary/grounding-summary.styles.d.ts.map +1 -0
  198. package/dist/components/grounding-summary/grounding-summary.styles.js +88 -0
  199. package/dist/components/grounding-summary/grounding-summary.styles.js.map +1 -0
  200. package/dist/components/ingestion-queue/ingestion-queue.class.d.ts +125 -0
  201. package/dist/components/ingestion-queue/ingestion-queue.class.d.ts.map +1 -0
  202. package/dist/components/ingestion-queue/ingestion-queue.class.js +276 -0
  203. package/dist/components/ingestion-queue/ingestion-queue.class.js.map +1 -0
  204. package/dist/components/ingestion-queue/ingestion-queue.d.ts +2 -0
  205. package/dist/components/ingestion-queue/ingestion-queue.d.ts.map +1 -0
  206. package/dist/components/ingestion-queue/ingestion-queue.js +5 -0
  207. package/dist/components/ingestion-queue/ingestion-queue.js.map +1 -0
  208. package/dist/components/ingestion-queue/ingestion-queue.styles.d.ts +2 -0
  209. package/dist/components/ingestion-queue/ingestion-queue.styles.d.ts.map +1 -0
  210. package/dist/components/ingestion-queue/ingestion-queue.styles.js +138 -0
  211. package/dist/components/ingestion-queue/ingestion-queue.styles.js.map +1 -0
  212. package/dist/components/knowledge-base/knowledge-base.class.d.ts +136 -0
  213. package/dist/components/knowledge-base/knowledge-base.class.d.ts.map +1 -0
  214. package/dist/components/knowledge-base/knowledge-base.class.js +360 -0
  215. package/dist/components/knowledge-base/knowledge-base.class.js.map +1 -0
  216. package/dist/components/knowledge-base/knowledge-base.d.ts +7 -0
  217. package/dist/components/knowledge-base/knowledge-base.d.ts.map +1 -0
  218. package/dist/components/knowledge-base/knowledge-base.js +10 -0
  219. package/dist/components/knowledge-base/knowledge-base.js.map +1 -0
  220. package/dist/components/knowledge-base/knowledge-base.styles.d.ts +2 -0
  221. package/dist/components/knowledge-base/knowledge-base.styles.d.ts.map +1 -0
  222. package/dist/components/knowledge-base/knowledge-base.styles.js +94 -0
  223. package/dist/components/knowledge-base/knowledge-base.styles.js.map +1 -0
  224. package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +196 -0
  225. package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts.map +1 -0
  226. package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.class.js +477 -0
  227. package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.class.js.map +1 -0
  228. package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.d.ts +11 -0
  229. package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.d.ts.map +1 -0
  230. package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.js +14 -0
  231. package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.js.map +1 -0
  232. package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.styles.d.ts +2 -0
  233. package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.styles.d.ts.map +1 -0
  234. package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.styles.js +76 -0
  235. package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.styles.js.map +1 -0
  236. package/dist/components/memory-panel/memory-panel.class.d.ts +146 -0
  237. package/dist/components/memory-panel/memory-panel.class.d.ts.map +1 -0
  238. package/dist/components/memory-panel/memory-panel.class.js +303 -0
  239. package/dist/components/memory-panel/memory-panel.class.js.map +1 -0
  240. package/dist/components/memory-panel/memory-panel.d.ts +5 -0
  241. package/dist/components/memory-panel/memory-panel.d.ts.map +1 -0
  242. package/dist/components/memory-panel/memory-panel.js +8 -0
  243. package/dist/components/memory-panel/memory-panel.js.map +1 -0
  244. package/dist/components/memory-panel/memory-panel.styles.d.ts +2 -0
  245. package/dist/components/memory-panel/memory-panel.styles.d.ts.map +1 -0
  246. package/dist/components/memory-panel/memory-panel.styles.js +139 -0
  247. package/dist/components/memory-panel/memory-panel.styles.js.map +1 -0
  248. package/dist/components/overlay/popover.class.d.ts +39 -0
  249. package/dist/components/overlay/popover.class.d.ts.map +1 -1
  250. package/dist/components/overlay/popover.class.js +53 -3
  251. package/dist/components/overlay/popover.class.js.map +1 -1
  252. package/dist/components/overlay/tooltip.class.d.ts +43 -0
  253. package/dist/components/overlay/tooltip.class.d.ts.map +1 -1
  254. package/dist/components/overlay/tooltip.class.js +66 -4
  255. package/dist/components/overlay/tooltip.class.js.map +1 -1
  256. package/dist/components/policy-summary/policy-summary.class.d.ts +76 -0
  257. package/dist/components/policy-summary/policy-summary.class.d.ts.map +1 -0
  258. package/dist/components/policy-summary/policy-summary.class.js +125 -0
  259. package/dist/components/policy-summary/policy-summary.class.js.map +1 -0
  260. package/dist/components/policy-summary/policy-summary.d.ts +6 -0
  261. package/dist/components/policy-summary/policy-summary.d.ts.map +1 -0
  262. package/dist/components/policy-summary/policy-summary.js +9 -0
  263. package/dist/components/policy-summary/policy-summary.js.map +1 -0
  264. package/dist/components/policy-summary/policy-summary.styles.d.ts +2 -0
  265. package/dist/components/policy-summary/policy-summary.styles.d.ts.map +1 -0
  266. package/dist/components/policy-summary/policy-summary.styles.js +68 -0
  267. package/dist/components/policy-summary/policy-summary.styles.js.map +1 -0
  268. package/dist/components/query-builder/query-builder.class.d.ts +180 -0
  269. package/dist/components/query-builder/query-builder.class.d.ts.map +1 -0
  270. package/dist/components/query-builder/query-builder.class.js +415 -0
  271. package/dist/components/query-builder/query-builder.class.js.map +1 -0
  272. package/dist/components/query-builder/query-builder.d.ts +9 -0
  273. package/dist/components/query-builder/query-builder.d.ts.map +1 -0
  274. package/dist/components/query-builder/query-builder.js +12 -0
  275. package/dist/components/query-builder/query-builder.js.map +1 -0
  276. package/dist/components/query-builder/query-builder.styles.d.ts +2 -0
  277. package/dist/components/query-builder/query-builder.styles.d.ts.map +1 -0
  278. package/dist/components/query-builder/query-builder.styles.js +77 -0
  279. package/dist/components/query-builder/query-builder.styles.js.map +1 -0
  280. package/dist/components/retrieval-results/retrieval-results.class.d.ts +151 -0
  281. package/dist/components/retrieval-results/retrieval-results.class.d.ts.map +1 -0
  282. package/dist/components/retrieval-results/retrieval-results.class.js +340 -0
  283. package/dist/components/retrieval-results/retrieval-results.class.js.map +1 -0
  284. package/dist/components/retrieval-results/retrieval-results.d.ts +7 -0
  285. package/dist/components/retrieval-results/retrieval-results.d.ts.map +1 -0
  286. package/dist/components/retrieval-results/retrieval-results.js +10 -0
  287. package/dist/components/retrieval-results/retrieval-results.js.map +1 -0
  288. package/dist/components/retrieval-results/retrieval-results.styles.d.ts +2 -0
  289. package/dist/components/retrieval-results/retrieval-results.styles.d.ts.map +1 -0
  290. package/dist/components/retrieval-results/retrieval-results.styles.js +94 -0
  291. package/dist/components/retrieval-results/retrieval-results.styles.js.map +1 -0
  292. package/dist/components/retrieval-search/retrieval-search.class.d.ts +127 -0
  293. package/dist/components/retrieval-search/retrieval-search.class.d.ts.map +1 -0
  294. package/dist/components/retrieval-search/retrieval-search.class.js +266 -0
  295. package/dist/components/retrieval-search/retrieval-search.class.js.map +1 -0
  296. package/dist/components/retrieval-search/retrieval-search.d.ts +8 -0
  297. package/dist/components/retrieval-search/retrieval-search.d.ts.map +1 -0
  298. package/dist/components/retrieval-search/retrieval-search.js +11 -0
  299. package/dist/components/retrieval-search/retrieval-search.js.map +1 -0
  300. package/dist/components/retrieval-search/retrieval-search.styles.d.ts +2 -0
  301. package/dist/components/retrieval-search/retrieval-search.styles.d.ts.map +1 -0
  302. package/dist/components/retrieval-search/retrieval-search.styles.js +75 -0
  303. package/dist/components/retrieval-search/retrieval-search.styles.js.map +1 -0
  304. package/dist/components/retrieval-trace/retrieval-trace.class.d.ts +101 -0
  305. package/dist/components/retrieval-trace/retrieval-trace.class.d.ts.map +1 -0
  306. package/dist/components/retrieval-trace/retrieval-trace.class.js +215 -0
  307. package/dist/components/retrieval-trace/retrieval-trace.class.js.map +1 -0
  308. package/dist/components/retrieval-trace/retrieval-trace.d.ts +4 -0
  309. package/dist/components/retrieval-trace/retrieval-trace.d.ts.map +1 -0
  310. package/dist/components/retrieval-trace/retrieval-trace.js +7 -0
  311. package/dist/components/retrieval-trace/retrieval-trace.js.map +1 -0
  312. package/dist/components/retrieval-trace/retrieval-trace.styles.d.ts +2 -0
  313. package/dist/components/retrieval-trace/retrieval-trace.styles.d.ts.map +1 -0
  314. package/dist/components/retrieval-trace/retrieval-trace.styles.js +116 -0
  315. package/dist/components/retrieval-trace/retrieval-trace.styles.js.map +1 -0
  316. package/dist/components/thread-list/thread-list.class.d.ts +19 -1
  317. package/dist/components/thread-list/thread-list.class.d.ts.map +1 -1
  318. package/dist/components/thread-list/thread-list.class.js +9 -2
  319. package/dist/components/thread-list/thread-list.class.js.map +1 -1
  320. package/dist/components/tool-timeline/tool-timeline.class.d.ts +140 -0
  321. package/dist/components/tool-timeline/tool-timeline.class.d.ts.map +1 -0
  322. package/dist/components/tool-timeline/tool-timeline.class.js +293 -0
  323. package/dist/components/tool-timeline/tool-timeline.class.js.map +1 -0
  324. package/dist/components/tool-timeline/tool-timeline.d.ts +2 -0
  325. package/dist/components/tool-timeline/tool-timeline.d.ts.map +1 -0
  326. package/dist/components/tool-timeline/tool-timeline.js +5 -0
  327. package/dist/components/tool-timeline/tool-timeline.js.map +1 -0
  328. package/dist/components/tool-timeline/tool-timeline.styles.d.ts +2 -0
  329. package/dist/components/tool-timeline/tool-timeline.styles.d.ts.map +1 -0
  330. package/dist/components/tool-timeline/tool-timeline.styles.js +148 -0
  331. package/dist/components/tool-timeline/tool-timeline.styles.js.map +1 -0
  332. package/dist/internal/localization.d.ts +1 -1
  333. package/dist/internal/localization.d.ts.map +1 -1
  334. package/dist/internal/localization.js +224 -0
  335. package/dist/internal/localization.js.map +1 -1
  336. package/dist/internal/positioner.d.ts +28 -1
  337. package/dist/internal/positioner.d.ts.map +1 -1
  338. package/dist/internal/positioner.js +12 -1
  339. package/dist/internal/positioner.js.map +1 -1
  340. package/dist/internal/root-registration-allowlist.d.ts +2 -2
  341. package/dist/internal/root-registration-allowlist.d.ts.map +1 -1
  342. package/dist/internal/root-registration-allowlist.js +24 -0
  343. package/dist/internal/root-registration-allowlist.js.map +1 -1
  344. package/dist/internal/tokens.styles.d.ts.map +1 -1
  345. package/dist/internal/tokens.styles.js +2 -0
  346. package/dist/internal/tokens.styles.js.map +1 -1
  347. package/dist/lyra.d.ts +48 -1
  348. package/dist/lyra.d.ts.map +1 -1
  349. package/dist/lyra.js +47 -0
  350. package/dist/lyra.js.map +1 -1
  351. package/llms-full.txt +462 -9
  352. package/llms.txt +7 -0
  353. package/package.json +50 -1
  354. package/vscode-css-data.json +21 -0
  355. package/vscode-html-data.json +1103 -47
  356. package/web-types.json +1131 -47
@@ -81,7 +81,11 @@ const STATUS_TEXT_KEY = {
81
81
  * finishing), is additionally announced through an internal
82
82
  * `<lr-live-region>` (see that component's header for the throttled-
83
83
  * announcement wiring this composes) so a screen-reader user who isn't
84
- * currently focused on this message still learns about it. This differs
84
+ * currently focused on this message still learns about it *unless* the
85
+ * `failure` slot has content, in which case this internal announcement is
86
+ * skipped: the host's own `role="alert"` failure content is expected to
87
+ * announce itself, and firing both would double-announce the same failure
88
+ * with two different (and differently specific) messages. This differs
85
89
  * from `<lr-typing-indicator>`'s deliberately simpler `role="status"`
86
90
  * approach — that component only ever has one thing to announce (its own
87
91
  * mount); this one has a `status` that can flip between several values
@@ -105,7 +109,22 @@ const STATUS_TEXT_KEY = {
105
109
  * @slot badges - Small status/metric chips (e.g. token count, latency, model name) — entirely app-supplied; this component computes none of that itself.
106
110
  * @slot actions - Action controls (e.g. copy, retry), rendered at the end of the footer.
107
111
  * @slot attachments - File/image attachment chips, rendered below the message body by default; see `attachments-position`.
108
- * @event lr-retry - Fired by the built-in retry button, only rendered when `status="failed"`.
112
+ * @slot failure - Only ever rendered while `status="failed"`. Empty (the default), the footer keeps
113
+ * its built-in `[part="status-text"]`/`[part="retry-button"]` exactly as before. The moment this
114
+ * slot has assigned content, that built-in status text and retry button are suppressed — the host
115
+ * is now fully responsible for presenting its own failure UI, and the built-in `chatFailedAnnounce`
116
+ * live-region announcement is suppressed too (see `@event lr-retry` below for the effect on that
117
+ * event, and the "Accessibility of `status`" paragraph above for the built-in announcement this
118
+ * replaces). Content assigned here should carry `role="alert"` itself when it represents an
119
+ * actionable send failure — this component does not add that role on the host's behalf, since it
120
+ * has no way to know what markup the host puts in this slot. This mirrors `lr-flow-node`'s `header`
121
+ * slot, which replaces that component's own built-in heading row the same way.
122
+ * @event lr-retry - Fired by the built-in retry button, only rendered when `status="failed"` and the
123
+ * `failure` slot is empty. A host using the `failure` slot owns its own retry control and is not
124
+ * required to use this event at all — but nothing stops that control from dispatching its own
125
+ * `new CustomEvent('lr-retry', { bubbles: true, composed: true })` to stay consistent with the
126
+ * same event contract a listener further up a conversation surface already relies on for every
127
+ * other message.
109
128
  * @event lr-collapse-toggle - `detail: boolean` (the new `collapsed` state) — fired when the user activates the built-in collapse button.
110
129
  * @csspart bubble - The message bubble root. Programmatically focusable (`tabindex="-1"`) so focus has a stable place to land when the built-in retry button is removed (e.g. a `lr-retry` listener flipping `status` away from `"failed"`).
111
130
  * @csspart header - The row above the message body — avatar, badges, and the collapse toggle. Hidden entirely when none of those have anything to show.
@@ -114,6 +133,9 @@ const STATUS_TEXT_KEY = {
114
133
  * @csspart collapse-button - The built-in collapse/expand toggle (only rendered when `collapsible`).
115
134
  * @csspart body - The wrapper around the default slot (the message content). Hidden while `collapsed`.
116
135
  * @csspart attachments - The wrapper around the `attachments` slot.
136
+ * @csspart failure - The `failure` slot itself (`display: contents` — it contributes no box of its
137
+ * own, so the host's own content lays out exactly as if it were a direct child of `bubble`, with no
138
+ * `::part(failure)` override needed to get there). Only present in the DOM while `status="failed"`.
117
139
  * @csspart footer - The row below the message body — status, timestamp, retry, and actions. Hidden entirely when none of those have anything to show.
118
140
  * @csspart status-indicator - A small decorative (`aria-hidden`) dot reflecting `status`; absent while `status="sent"`.
119
141
  * @csspart status-text - The visible text twin of `status-indicator` — carries the state in text, not just color.
@@ -151,6 +173,11 @@ export class LyraChatMessage extends LyraElement {
151
173
  this.hasBadgesSlot = false;
152
174
  this.hasAttachmentsSlot = false;
153
175
  this.hasActionsSlot = false;
176
+ /** Whether the `failure` slot currently has assigned content. Only meaningful while
177
+ * `status === "failed"` -- that's the only time the slot itself is even in the render (see
178
+ * `render()`), mirroring `lr-flow-node`'s identical `hasHeaderSlot` flag for its own
179
+ * entirely-replaces-the-built-in-UI `header` slot. */
180
+ this.hasFailureSlot = false;
154
181
  this.bodyId = nextId('chat-message-body');
155
182
  this._status = 'sent';
156
183
  /** The value `status` held immediately before its current one, recorded
@@ -182,6 +209,9 @@ export class LyraChatMessage extends LyraElement {
182
209
  this.onActionsSlotChange = (e) => {
183
210
  this.hasActionsSlot = e.target.assignedElements({ flatten: true }).length > 0;
184
211
  };
212
+ this.onFailureSlotChange = (e) => {
213
+ this.hasFailureSlot = e.target.assignedElements({ flatten: true }).length > 0;
214
+ };
185
215
  this.toggleCollapsed = () => {
186
216
  this.collapsed = !this.collapsed;
187
217
  this.emit('lr-collapse-toggle', this.collapsed);
@@ -220,12 +250,38 @@ export class LyraChatMessage extends LyraElement {
220
250
  this._status = value;
221
251
  this.requestUpdate('status', old);
222
252
  }
223
- willUpdate() {
253
+ willUpdate(changed) {
224
254
  if (!this.hasUpdated) {
225
255
  this.hasAvatarSlot = this.hasSlotted('avatar');
226
256
  this.hasBadgesSlot = this.hasSlotted('badges');
227
257
  this.hasAttachmentsSlot = this.hasSlotted('attachments');
228
258
  this.hasActionsSlot = this.hasSlotted('actions');
259
+ // Mounting directly into status="failed" with failure-slot content already present in the
260
+ // initial markup -- the <slot name="failure"> element is about to exist for the very first
261
+ // time this render, so there's no prior slotchange to have fired yet. Same "detected on first
262
+ // paint, not just via slotchange" need the avatar/badges flags above already have.
263
+ if (this.status === 'failed') {
264
+ this.hasFailureSlot = this.hasSlotted('failure');
265
+ }
266
+ }
267
+ else if (changed.has('status')) {
268
+ if (this.status === 'failed') {
269
+ // Entering "failed" *after* mount -- the <slot name="failure"> element didn't exist in the
270
+ // previous render (see render()), so any slot="failure" content the host already had sitting
271
+ // in its light DOM has never had a slotchange fire for it either. Recheck directly, same
272
+ // reasoning as the mount-time check above.
273
+ this.hasFailureSlot = this.hasSlotted('failure');
274
+ }
275
+ else if (this.previousStatus === 'failed' && this.hasFailureSlot && this.isFocusWithinFailureSlot()) {
276
+ // Leaving "failed" while the host's own failure content held focus (e.g. the host's own
277
+ // retry button, whose click listener is documented to flip status away from "failed") --
278
+ // the <slot name="failure"> this content was rendering through is about to disappear from
279
+ // this render entirely. An assigned node with no <slot> left to render into is forcibly
280
+ // blurred by the browser, which silently drops focus to <body> if nothing intervenes. Move
281
+ // focus to the always-rendered bubble first, synchronously, mirroring onRetryClick's
282
+ // identical rescue for the built-in retry button.
283
+ this.bubbleEl?.focus();
284
+ }
229
285
  }
230
286
  }
231
287
  updated(changed) {
@@ -238,6 +294,17 @@ export class LyraChatMessage extends LyraElement {
238
294
  hasSlotted(name) {
239
295
  return Array.from(this.children).some((el) => el.getAttribute('slot') === name);
240
296
  }
297
+ /** Whether `document.activeElement` is (or is inside) one of this host's `slot="failure"`
298
+ * children. Slotting doesn't move an element out of the light DOM -- `document.activeElement`
299
+ * reports the actual focused node regardless of where Shadow DOM projects it for rendering --
300
+ * so this walks the host's real children, same as `hasSlotted` above, rather than anything
301
+ * shadow-root-relative. */
302
+ isFocusWithinFailureSlot() {
303
+ const active = document.activeElement;
304
+ if (!active)
305
+ return false;
306
+ return Array.from(this.children).some((el) => el.getAttribute('slot') === 'failure' && el.contains(active));
307
+ }
241
308
  get normalizedTimestamp() {
242
309
  if (this.timestamp === undefined)
243
310
  return undefined;
@@ -254,6 +321,11 @@ export class LyraChatMessage extends LyraElement {
254
321
  if (!region)
255
322
  return;
256
323
  if (this.status === 'failed') {
324
+ // The `failure` slot's own content is expected to carry `role="alert"` and announce itself --
325
+ // see the class doc's "Accessibility of `status`" paragraph. Firing this generic announcement
326
+ // on top of that would double-announce the same failure.
327
+ if (this.hasFailureSlot)
328
+ return;
257
329
  region.mode = 'assertive';
258
330
  region.announce(this.localize('chatFailedAnnounce'), { force: true });
259
331
  }
@@ -265,10 +337,14 @@ export class LyraChatMessage extends LyraElement {
265
337
  render() {
266
338
  const ts = this.normalizedTimestamp;
267
339
  const formatter = this.formatTimestamp ?? ((date) => defaultFormatTimestamp(date, this.effectiveLocale));
268
- const statusText = this.statusText;
340
+ // Once the `failure` slot is populated it takes over full responsibility for presenting the
341
+ // failed state -- suppress the built-in status text and retry button so a consumer is never
342
+ // shown both at once (see the class doc's `failure` slot entry).
343
+ const suppressBuiltInFailedUi = this.status === 'failed' && this.hasFailureSlot;
344
+ const statusText = suppressBuiltInFailedUi ? undefined : this.statusText;
269
345
  const showHeader = this.hasAvatarSlot || this.hasBadgesSlot || this.collapsible;
270
- // `statusText` is already truthy whenever `status === 'failed'`, so it
271
- // alone covers that case here too.
346
+ // `statusText` is already truthy whenever `status === 'failed'` and the built-in UI isn't
347
+ // suppressed, so it alone covers that case here too.
272
348
  const showFooter = Boolean(statusText) || Boolean(ts) || (!this.actionsOutsideBubble && this.hasActionsSlot);
273
349
  const actionsBlock = html `<span part="actions" ?hidden=${!this.hasActionsSlot}
274
350
  ><slot name="actions" @slotchange=${this.onActionsSlotChange}></slot
@@ -303,6 +379,9 @@ export class LyraChatMessage extends LyraElement {
303
379
  <slot></slot>
304
380
  </div>
305
381
  ${this.attachmentsPosition === 'before' ? nothing : attachmentsBlock}
382
+ ${this.status === 'failed'
383
+ ? html `<slot part="failure" name="failure" @slotchange=${this.onFailureSlotChange}></slot>`
384
+ : nothing}
306
385
  <div part="footer" ?hidden=${!showFooter}>
307
386
  ${statusText
308
387
  ? html `<span part="status-indicator" aria-hidden="true"></span><span part="status-text"
@@ -310,7 +389,7 @@ export class LyraChatMessage extends LyraElement {
310
389
  >`
311
390
  : nothing}
312
391
  ${ts ? html `<time part="timestamp" datetime=${ts.toISOString()}>${formatter(ts)}</time>` : nothing}
313
- ${this.status === 'failed'
392
+ ${this.status === 'failed' && !suppressBuiltInFailedUi
314
393
  ? html `<button part="retry-button" type="button" @click=${this.onRetryClick}>
315
394
  ${retryIcon()}<span>${this.localize('retry')}</span>
316
395
  </button>`
@@ -356,6 +435,9 @@ __decorate([
356
435
  __decorate([
357
436
  state()
358
437
  ], LyraChatMessage.prototype, "hasActionsSlot", void 0);
438
+ __decorate([
439
+ state()
440
+ ], LyraChatMessage.prototype, "hasFailureSlot", void 0);
359
441
  __decorate([
360
442
  query('lr-live-region')
361
443
  ], LyraChatMessage.prototype, "liveRegion", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"chat-message.class.js","sourceRoot":"","sources":["../../../src/components/chat-message/chat-message.class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-message.class.js","sourceRoot":"","sources":["../../../src/components/chat-message/chat-message.class.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat-message.styles.d.ts","sourceRoot":"","sources":["../../../src/components/chat-message/chat-message.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAoOlB,CAAC"}
1
+ {"version":3,"file":"chat-message.styles.d.ts","sourceRoot":"","sources":["../../../src/components/chat-message/chat-message.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAkPlB,CAAC"}
@@ -127,6 +127,20 @@ export const styles = css `
127
127
  gap: var(--lr-space-xs);
128
128
  }
129
129
 
130
+ /* Fully transparent to layout -- the same display:contents idiom
131
+ lr-attachment-trigger's :host and lr-combobox's [part='tags'] already
132
+ use for identical reasons. The slot itself contributes no box, so
133
+ whatever the host slots in here (expected to be a block-level
134
+ role="alert" element) becomes a direct flex item of [part='bubble'],
135
+ inheriting its gap, exactly as if it had been authored as a sibling of
136
+ [part='body']/[part='footer'] -- no ::part(failure) override needed to
137
+ get there. When empty, this produces zero boxes and zero footprint,
138
+ which is what keeps the failed state byte-identical to today's
139
+ rendering whenever the failure slot goes unused. */
140
+ [part='failure'] {
141
+ display: contents;
142
+ }
143
+
130
144
  [part='footer'] {
131
145
  display: flex;
132
146
  flex-wrap: wrap;
@@ -1 +1 @@
1
- {"version":3,"file":"chat-message.styles.js","sourceRoot":"","sources":["../../../src/components/chat-message/chat-message.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoOxB,CAAC"}
1
+ {"version":3,"file":"chat-message.styles.js","sourceRoot":"","sources":["../../../src/components/chat-message/chat-message.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkPxB,CAAC"}
@@ -0,0 +1,114 @@
1
+ import { type TemplateResult } from 'lit';
2
+ import { LyraElement } from '../../internal/lyra-element.js';
3
+ import type { Citation } from '../../ai/types.js';
4
+ import type { ContextMeterTone } from '../context-meter/context-meter.class.js';
5
+ import type { ExportFormatOption } from '../export-button/export-button.class.js';
6
+ import '../context-meter/context-meter.class.js';
7
+ import '../copy-button/copy-button.class.js';
8
+ import '../export-button/export-button.class.js';
9
+ import '../citation-badge/citation-badge.class.js';
10
+ import '../empty/empty.class.js';
11
+ /**
12
+ * One redacted character range within a `ContextInspectorSegment.text`. `start`/`end` are plain
13
+ * UTF-16 offsets, matching `Citation['span']`'s own `{ start; end }` shape (`ai/types.ts`). `text`
14
+ * is expected to already carry a redaction placeholder in that range (e.g. `[REDACTED]`) -- this
15
+ * component only visually/accessibly marks the range, it never receives, un-redacts, or renders
16
+ * the original sensitive content.
17
+ */
18
+ export interface ContextInspectorRedaction {
19
+ start: number;
20
+ end: number;
21
+ /** Shown as the marker's `title`/accessible reason. Falls back to a generic localized "Redacted" when unset. */
22
+ reason?: string;
23
+ }
24
+ /** One piece of the assembled final prompt context, e.g. a system prompt, a retrieved chunk, or one chat-history turn. */
25
+ export interface ContextInspectorSegment {
26
+ id: string;
27
+ /** Short heading, e.g. "System prompt", "Retrieved chunk 2". Feeds both this segment's own heading and its `<lr-context-meter>` segment label. */
28
+ label: string;
29
+ /** The segment's final text, exactly as sent to the model (post-redaction/post-truncation). */
30
+ text: string;
31
+ /** Estimated token count. Feeds `<lr-context-meter>`'s segment `value` directly. */
32
+ tokens: number;
33
+ tone?: ContextMeterTone;
34
+ /** Source attribution -- renders a `<lr-citation-badge>` carrying `citation.sourceId`/`citation.label`. */
35
+ citation?: Citation;
36
+ /** True when `text` was cut short of the segment's original content. */
37
+ truncated?: boolean;
38
+ /** Tokens omitted by truncation, shown in the truncation-boundary marker's text when set. */
39
+ omittedTokens?: number;
40
+ /** Character ranges within `text` that are redaction placeholders (see `ContextInspectorRedaction`). */
41
+ redactions?: ContextInspectorRedaction[];
42
+ }
43
+ /**
44
+ * `<lr-context-inspector>` — an inspection view of the exact context assembled for a model call:
45
+ * per-segment token estimates via `<lr-context-meter>`, source attribution via
46
+ * `<lr-citation-badge>`, and copy/export affordances via `<lr-copy-button>`/`<lr-export-button>`.
47
+ * Truncation-boundary and redaction-marker rendering are this component's own minimal
48
+ * presentational logic (see `ContextInspectorSegment`'s `truncated`/`omittedTokens`/`redactions`
49
+ * fields) — no existing primitive covers "show where this got cut off / redacted", so this stays a
50
+ * small, purpose-built rendering step rather than a general text-annotation system.
51
+ *
52
+ * Pure projection: never fetches, estimates tokens, or performs redaction itself — `segments` is
53
+ * expected to already carry each field's final, already-processed value (e.g. `text` already has
54
+ * any redaction placeholders substituted in; this component never sees or renders the original
55
+ * unredacted content).
56
+ *
57
+ * @customElement lr-context-inspector
58
+ * @event lr-copy - `detail: { text }`, surfaced by the embedded `lr-copy-button` copying the
59
+ * assembled context text (every segment's `label` + `text`, in order). Bubbles + composed
60
+ * already; not re-emitted, so exactly one event reaches a host listener.
61
+ * @event lr-export - `detail: { format }`, surfaced by the embedded `lr-export-button`, one row
62
+ * per segment. Cancelable — see that component's own contract for substituting a
63
+ * server-generated export.
64
+ * @event lr-export-complete - `detail: { format }`, fired after a non-cancelled export completes.
65
+ * @event lr-citation-activate - `detail: { sourceId, index }`, surfaced by a segment's embedded
66
+ * `lr-citation-badge` — the "jump to this source" signal a host wires to scrolling/highlighting
67
+ * the matching `lr-source-card`.
68
+ * @event lr-citation-open - `detail: { sourceId, index, href }`, this component's "full preview"
69
+ * signal, surfaced the same way.
70
+ * @csspart base - The `role="group"` wrapper.
71
+ * @csspart meter - The embedded `lr-context-meter`. Omitted (replaced by `empty`) when `segments` is empty.
72
+ * @csspart toolbar - The wrapper around the copy/export affordances. Omitted when `segments` is empty.
73
+ * @csspart copy-button - The embedded `lr-copy-button`.
74
+ * @csspart export-button - The embedded `lr-export-button`.
75
+ * @csspart segments - The `role="list"` wrapper around all segments. Omitted (replaced by `empty`) when `segments` is empty.
76
+ * @csspart segment - One segment's wrapper (`role="listitem"`).
77
+ * @csspart segment-header - A segment's label/token-count/citation row.
78
+ * @csspart segment-label - A segment's visible label text.
79
+ * @csspart segment-tokens - A segment's visible token-estimate text.
80
+ * @csspart citation - A segment's embedded `lr-citation-badge`, rendered only when it carries a `citation`.
81
+ * @csspart segment-text - A segment's text body, carrying any `redaction` marks and its own trailing `truncation-boundary` marker.
82
+ * @csspart redaction - One redacted range within a segment's text (a `<mark>`).
83
+ * @csspart truncation-boundary - The marker appended after a `truncated` segment's text.
84
+ * @csspart empty - The empty state, shown when `segments` is empty.
85
+ */
86
+ export declare class LyraContextInspector extends LyraElement {
87
+ static styles: import("lit").CSSResultGroup[];
88
+ /** The assembled context, one entry per piece (system prompt, retrieved chunk, history turn, ...). */
89
+ segments: ContextInspectorSegment[];
90
+ /** The full token budget `segments` are measured against — passed straight through to `<lr-context-meter>`'s own `total`. */
91
+ total: number;
92
+ /** Accessible group name, and the embedded `<lr-context-meter>`'s own visible caption, e.g. "128K context window". */
93
+ label: string;
94
+ /** Export format(s) offered by the embedded `<lr-export-button>` — a single id renders a plain button, more than one a format-choice menu. */
95
+ formats: ExportFormatOption[];
96
+ /** Download filename (no extension) passed through to `<lr-export-button>`. */
97
+ filename: string;
98
+ private get meterSegments();
99
+ /** Every segment's `label` + `text`, in order — the `<lr-copy-button>`'s `value`. */
100
+ private get assembledText();
101
+ /** One flat row per segment for `<lr-export-button>` — `redactions` is summarized as a count
102
+ * rather than carried in full, keeping every export format (including CSV) well-formed. */
103
+ private get exportRows();
104
+ private renderSegmentText;
105
+ private renderTruncationBoundary;
106
+ private renderSegment;
107
+ render(): TemplateResult;
108
+ }
109
+ declare global {
110
+ interface HTMLElementTagNameMap {
111
+ 'lr-context-inspector': LyraContextInspector;
112
+ }
113
+ }
114
+ //# sourceMappingURL=context-inspector.class.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-inspector.class.d.ts","sourceRoot":"","sources":["../../../src/components/context-inspector/context-inspector.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAuB,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AACrG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,yCAAyC,CAAC;AACjD,OAAO,qCAAqC,CAAC;AAC7C,OAAO,yCAAyC,CAAC;AACjD,OAAO,2CAA2C,CAAC;AACnD,OAAO,yBAAyB,CAAC;AAGjC;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,gHAAgH;IAChH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,0HAA0H;AAC1H,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,kJAAkJ;IAClJ,KAAK,EAAE,MAAM,CAAC;IACd,+FAA+F;IAC/F,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,2GAA2G;IAC3G,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6FAA6F;IAC7F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wGAAwG;IACxG,UAAU,CAAC,EAAE,yBAAyB,EAAE,CAAC;CAC1C;AAwCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;IACnD,MAAM,CAAC,MAAM,iCAAgC;IAE7C,sGAAsG;IACtE,QAAQ,EAAE,uBAAuB,EAAE,CAAM;IAEzE,6HAA6H;IACjG,KAAK,SAAK;IAEtC,sHAAsH;IAC1G,KAAK,SAAM;IAEvB,8IAA8I;IAC9G,OAAO,EAAE,kBAAkB,EAAE,CAAY;IAEzE,+EAA+E;IACnE,QAAQ,SAAa;IAEjC,OAAO,KAAK,aAAa,GAExB;IAED,qFAAqF;IACrF,OAAO,KAAK,aAAa,GAExB;IAED;gGAC4F;IAC5F,OAAO,KAAK,UAAU,GAWrB;IAED,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,aAAa;IAsBrB,MAAM,IAAI,cAAc,CA+BvB;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,sBAAsB,EAAE,oBAAoB,CAAC;KAC9C;CACF"}
@@ -0,0 +1,222 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { html, nothing } from 'lit';
8
+ import { property } from 'lit/decorators.js';
9
+ import { LyraElement } from '../../internal/lyra-element.js';
10
+ import { finiteCount } from '../../internal/numbers.js';
11
+ import '../context-meter/context-meter.class.js';
12
+ import '../copy-button/copy-button.class.js';
13
+ import '../export-button/export-button.class.js';
14
+ import '../citation-badge/citation-badge.class.js';
15
+ import '../empty/empty.class.js';
16
+ import { styles } from './context-inspector.styles.js';
17
+ /**
18
+ * Clamps, sorts, and merges overlapping/inverted/out-of-range ranges in `redactions` against
19
+ * `length` -- bad host data (a dangling span past the end of `text`, a reversed `start`/`end`, two
20
+ * overlapping spans) degrades to a clamped, non-overlapping range list instead of throwing or
21
+ * corrupting the rendered text.
22
+ */
23
+ function normalizeRedactions(redactions, length) {
24
+ if (!redactions || redactions.length === 0)
25
+ return [];
26
+ const clamped = redactions
27
+ .map((r) => ({
28
+ start: finiteCount(Math.min(r.start, r.end), 0, length),
29
+ end: finiteCount(Math.max(r.start, r.end), 0, length),
30
+ reason: r.reason,
31
+ }))
32
+ .filter((r) => r.end > r.start)
33
+ .sort((a, b) => a.start - b.start);
34
+ const merged = [];
35
+ for (const r of clamped) {
36
+ const prev = merged[merged.length - 1];
37
+ if (prev && r.start < prev.end) {
38
+ prev.end = Math.max(prev.end, r.end);
39
+ continue;
40
+ }
41
+ merged.push({ ...r });
42
+ }
43
+ return merged;
44
+ }
45
+ function formatCount(n, locale) {
46
+ return Math.round(finiteCount(n)).toLocaleString(locale);
47
+ }
48
+ /**
49
+ * `<lr-context-inspector>` — an inspection view of the exact context assembled for a model call:
50
+ * per-segment token estimates via `<lr-context-meter>`, source attribution via
51
+ * `<lr-citation-badge>`, and copy/export affordances via `<lr-copy-button>`/`<lr-export-button>`.
52
+ * Truncation-boundary and redaction-marker rendering are this component's own minimal
53
+ * presentational logic (see `ContextInspectorSegment`'s `truncated`/`omittedTokens`/`redactions`
54
+ * fields) — no existing primitive covers "show where this got cut off / redacted", so this stays a
55
+ * small, purpose-built rendering step rather than a general text-annotation system.
56
+ *
57
+ * Pure projection: never fetches, estimates tokens, or performs redaction itself — `segments` is
58
+ * expected to already carry each field's final, already-processed value (e.g. `text` already has
59
+ * any redaction placeholders substituted in; this component never sees or renders the original
60
+ * unredacted content).
61
+ *
62
+ * @customElement lr-context-inspector
63
+ * @event lr-copy - `detail: { text }`, surfaced by the embedded `lr-copy-button` copying the
64
+ * assembled context text (every segment's `label` + `text`, in order). Bubbles + composed
65
+ * already; not re-emitted, so exactly one event reaches a host listener.
66
+ * @event lr-export - `detail: { format }`, surfaced by the embedded `lr-export-button`, one row
67
+ * per segment. Cancelable — see that component's own contract for substituting a
68
+ * server-generated export.
69
+ * @event lr-export-complete - `detail: { format }`, fired after a non-cancelled export completes.
70
+ * @event lr-citation-activate - `detail: { sourceId, index }`, surfaced by a segment's embedded
71
+ * `lr-citation-badge` — the "jump to this source" signal a host wires to scrolling/highlighting
72
+ * the matching `lr-source-card`.
73
+ * @event lr-citation-open - `detail: { sourceId, index, href }`, this component's "full preview"
74
+ * signal, surfaced the same way.
75
+ * @csspart base - The `role="group"` wrapper.
76
+ * @csspart meter - The embedded `lr-context-meter`. Omitted (replaced by `empty`) when `segments` is empty.
77
+ * @csspart toolbar - The wrapper around the copy/export affordances. Omitted when `segments` is empty.
78
+ * @csspart copy-button - The embedded `lr-copy-button`.
79
+ * @csspart export-button - The embedded `lr-export-button`.
80
+ * @csspart segments - The `role="list"` wrapper around all segments. Omitted (replaced by `empty`) when `segments` is empty.
81
+ * @csspart segment - One segment's wrapper (`role="listitem"`).
82
+ * @csspart segment-header - A segment's label/token-count/citation row.
83
+ * @csspart segment-label - A segment's visible label text.
84
+ * @csspart segment-tokens - A segment's visible token-estimate text.
85
+ * @csspart citation - A segment's embedded `lr-citation-badge`, rendered only when it carries a `citation`.
86
+ * @csspart segment-text - A segment's text body, carrying any `redaction` marks and its own trailing `truncation-boundary` marker.
87
+ * @csspart redaction - One redacted range within a segment's text (a `<mark>`).
88
+ * @csspart truncation-boundary - The marker appended after a `truncated` segment's text.
89
+ * @csspart empty - The empty state, shown when `segments` is empty.
90
+ */
91
+ export class LyraContextInspector extends LyraElement {
92
+ constructor() {
93
+ super(...arguments);
94
+ /** The assembled context, one entry per piece (system prompt, retrieved chunk, history turn, ...). */
95
+ this.segments = [];
96
+ /** The full token budget `segments` are measured against — passed straight through to `<lr-context-meter>`'s own `total`. */
97
+ this.total = 0;
98
+ /** Accessible group name, and the embedded `<lr-context-meter>`'s own visible caption, e.g. "128K context window". */
99
+ this.label = '';
100
+ /** Export format(s) offered by the embedded `<lr-export-button>` — a single id renders a plain button, more than one a format-choice menu. */
101
+ this.formats = ['json'];
102
+ /** Download filename (no extension) passed through to `<lr-export-button>`. */
103
+ this.filename = 'context';
104
+ }
105
+ static { this.styles = [LyraElement.styles, styles]; }
106
+ get meterSegments() {
107
+ return this.segments.map((s) => ({ label: s.label, value: s.tokens, ...(s.tone ? { tone: s.tone } : {}) }));
108
+ }
109
+ /** Every segment's `label` + `text`, in order — the `<lr-copy-button>`'s `value`. */
110
+ get assembledText() {
111
+ return this.segments.map((s) => `${s.label}\n${s.text}`).join('\n\n');
112
+ }
113
+ /** One flat row per segment for `<lr-export-button>` — `redactions` is summarized as a count
114
+ * rather than carried in full, keeping every export format (including CSV) well-formed. */
115
+ get exportRows() {
116
+ return this.segments.map((s) => ({
117
+ id: s.id,
118
+ label: s.label,
119
+ tokens: s.tokens,
120
+ truncated: !!s.truncated,
121
+ omittedTokens: s.omittedTokens ?? null,
122
+ sourceId: s.citation?.sourceId ?? null,
123
+ redactionCount: s.redactions?.length ?? 0,
124
+ text: s.text,
125
+ }));
126
+ }
127
+ renderSegmentText(segment) {
128
+ const text = segment.text;
129
+ const redactions = normalizeRedactions(segment.redactions, text.length);
130
+ if (redactions.length === 0)
131
+ return html `${text}`;
132
+ const nodes = [];
133
+ let cursor = 0;
134
+ for (const r of redactions) {
135
+ if (r.start > cursor)
136
+ nodes.push(text.slice(cursor, r.start));
137
+ nodes.push(html `<mark part="redaction" title=${r.reason || this.localize('contextInspectorRedacted')}
138
+ >${text.slice(r.start, r.end)}</mark
139
+ >`);
140
+ cursor = r.end;
141
+ }
142
+ if (cursor < text.length)
143
+ nodes.push(text.slice(cursor));
144
+ return html `${nodes}`;
145
+ }
146
+ renderTruncationBoundary(segment) {
147
+ const text = segment.omittedTokens != null
148
+ ? this.localize('contextInspectorTruncatedCount', undefined, {
149
+ count: formatCount(segment.omittedTokens, this.effectiveLocale),
150
+ })
151
+ : this.localize('contextInspectorTruncated');
152
+ return html `<div part="truncation-boundary" role="note">${text}</div>`;
153
+ }
154
+ renderSegment(segment, citationIndex) {
155
+ const tokensText = this.localize('contextInspectorSegmentTokens', undefined, {
156
+ tokens: formatCount(segment.tokens, this.effectiveLocale),
157
+ });
158
+ return html `
159
+ <div part="segment" role="listitem">
160
+ <div part="segment-header">
161
+ <span part="segment-label">${segment.label}</span>
162
+ <span part="segment-tokens">${tokensText}</span>
163
+ ${segment.citation
164
+ ? html `<lr-citation-badge part="citation" source-id=${segment.citation.sourceId ?? ''} index=${citationIndex}
165
+ >${segment.citation.label ?? ''}</lr-citation-badge
166
+ >`
167
+ : nothing}
168
+ </div>
169
+ <div part="segment-text">
170
+ ${this.renderSegmentText(segment)}${segment.truncated ? this.renderTruncationBoundary(segment) : nothing}
171
+ </div>
172
+ </div>
173
+ `;
174
+ }
175
+ render() {
176
+ const groupLabel = this.getAttribute('aria-label') || this.label || this.localize('contextInspectorLabel');
177
+ if (this.segments.length === 0) {
178
+ return html `
179
+ <div part="base" role="group" aria-label=${groupLabel}>
180
+ <lr-empty part="empty" heading=${this.localize('contextInspectorEmpty')}></lr-empty>
181
+ </div>
182
+ `;
183
+ }
184
+ let citationIndex = 0;
185
+ return html `
186
+ <div part="base" role="group" aria-label=${groupLabel}>
187
+ <lr-context-meter part="meter" .segments=${this.meterSegments} .total=${this.total} label=${this.label}></lr-context-meter>
188
+ <div part="toolbar">
189
+ <lr-copy-button
190
+ part="copy-button"
191
+ .value=${this.assembledText}
192
+ aria-label=${this.localize('contextInspectorCopyLabel')}
193
+ ></lr-copy-button>
194
+ <lr-export-button part="export-button" .rows=${this.exportRows} .formats=${this.formats} filename=${this.filename}></lr-export-button>
195
+ </div>
196
+ <div part="segments" role="list">
197
+ ${this.segments.map((segment) => {
198
+ if (segment.citation)
199
+ citationIndex += 1;
200
+ return this.renderSegment(segment, citationIndex);
201
+ })}
202
+ </div>
203
+ </div>
204
+ `;
205
+ }
206
+ }
207
+ __decorate([
208
+ property({ attribute: false })
209
+ ], LyraContextInspector.prototype, "segments", void 0);
210
+ __decorate([
211
+ property({ type: Number })
212
+ ], LyraContextInspector.prototype, "total", void 0);
213
+ __decorate([
214
+ property()
215
+ ], LyraContextInspector.prototype, "label", void 0);
216
+ __decorate([
217
+ property({ attribute: false })
218
+ ], LyraContextInspector.prototype, "formats", void 0);
219
+ __decorate([
220
+ property()
221
+ ], LyraContextInspector.prototype, "filename", void 0);
222
+ //# sourceMappingURL=context-inspector.class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-inspector.class.js","sourceRoot":"","sources":["../../../src/components/context-inspector/context-inspector.class.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export * from './context-inspector.class.js';
2
+ import '../context-meter/context-meter.js';
3
+ import '../copy-button/copy-button.js';
4
+ import '../export-button/export-button.js';
5
+ import '../citation-badge/citation-badge.js';
6
+ import '../empty/empty.js';
7
+ //# sourceMappingURL=context-inspector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-inspector.d.ts","sourceRoot":"","sources":["../../../src/components/context-inspector/context-inspector.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAG7C,OAAO,mCAAmC,CAAC;AAC3C,OAAO,+BAA+B,CAAC;AACvC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,mBAAmB,CAAC"}