@marinoscar/platform-web 0.0.0-stage → 0.1.0-next.3

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/CHANGELOG.md +42 -0
  2. package/LICENSE +21 -0
  3. package/README.md +96 -2
  4. package/dist/core/api-client.d.ts +112 -0
  5. package/dist/core/api-client.d.ts.map +1 -0
  6. package/dist/core/api-client.js +24 -0
  7. package/dist/core/api-client.js.map +1 -0
  8. package/dist/core/host.d.ts +74 -0
  9. package/dist/core/host.d.ts.map +1 -0
  10. package/dist/core/host.js +84 -0
  11. package/dist/core/host.js.map +1 -0
  12. package/dist/core/index.d.ts +7 -0
  13. package/dist/core/index.d.ts.map +1 -0
  14. package/dist/core/index.js +5 -0
  15. package/dist/core/index.js.map +1 -0
  16. package/dist/core/settings-page.d.ts +47 -0
  17. package/dist/core/settings-page.d.ts.map +1 -0
  18. package/dist/core/settings-page.js +5 -0
  19. package/dist/core/settings-page.js.map +1 -0
  20. package/dist/core/viewer.d.ts +14 -0
  21. package/dist/core/viewer.d.ts.map +1 -0
  22. package/dist/core/viewer.js +4 -0
  23. package/dist/core/viewer.js.map +1 -0
  24. package/dist/doctor/headless/categories.d.ts +31 -0
  25. package/dist/doctor/headless/categories.d.ts.map +1 -0
  26. package/dist/doctor/headless/categories.js +41 -0
  27. package/dist/doctor/headless/categories.js.map +1 -0
  28. package/dist/doctor/headless/client.d.ts +33 -0
  29. package/dist/doctor/headless/client.d.ts.map +1 -0
  30. package/dist/doctor/headless/client.js +31 -0
  31. package/dist/doctor/headless/client.js.map +1 -0
  32. package/dist/doctor/headless/contract.d.ts +18 -0
  33. package/dist/doctor/headless/contract.d.ts.map +1 -0
  34. package/dist/doctor/headless/contract.js +15 -0
  35. package/dist/doctor/headless/contract.js.map +1 -0
  36. package/dist/doctor/headless/index.d.ts +12 -0
  37. package/dist/doctor/headless/index.d.ts.map +1 -0
  38. package/dist/doctor/headless/index.js +8 -0
  39. package/dist/doctor/headless/index.js.map +1 -0
  40. package/dist/doctor/headless/use-doctor.d.ts +36 -0
  41. package/dist/doctor/headless/use-doctor.d.ts.map +1 -0
  42. package/dist/doctor/headless/use-doctor.js +80 -0
  43. package/dist/doctor/headless/use-doctor.js.map +1 -0
  44. package/dist/doctor/headless/use-support-bundle-download.d.ts +68 -0
  45. package/dist/doctor/headless/use-support-bundle-download.d.ts.map +1 -0
  46. package/dist/doctor/headless/use-support-bundle-download.js +135 -0
  47. package/dist/doctor/headless/use-support-bundle-download.js.map +1 -0
  48. package/dist/doctor/internal/relative-time.d.ts +2 -0
  49. package/dist/doctor/internal/relative-time.d.ts.map +1 -0
  50. package/dist/doctor/internal/relative-time.js +29 -0
  51. package/dist/doctor/internal/relative-time.js.map +1 -0
  52. package/dist/doctor/internal/status-colors.d.ts +5 -0
  53. package/dist/doctor/internal/status-colors.d.ts.map +1 -0
  54. package/dist/doctor/internal/status-colors.js +29 -0
  55. package/dist/doctor/internal/status-colors.js.map +1 -0
  56. package/dist/doctor/internal/use-is-mounted.d.ts +2 -0
  57. package/dist/doctor/internal/use-is-mounted.d.ts.map +1 -0
  58. package/dist/doctor/internal/use-is-mounted.js +15 -0
  59. package/dist/doctor/internal/use-is-mounted.js.map +1 -0
  60. package/dist/doctor/ui/check-row.d.ts +54 -0
  61. package/dist/doctor/ui/check-row.d.ts.map +1 -0
  62. package/dist/doctor/ui/check-row.js +100 -0
  63. package/dist/doctor/ui/check-row.js.map +1 -0
  64. package/dist/doctor/ui/copy.d.ts +3 -0
  65. package/dist/doctor/ui/copy.d.ts.map +1 -0
  66. package/dist/doctor/ui/copy.js +6 -0
  67. package/dist/doctor/ui/copy.js.map +1 -0
  68. package/dist/doctor/ui/doctor-page.d.ts +50 -0
  69. package/dist/doctor/ui/doctor-page.d.ts.map +1 -0
  70. package/dist/doctor/ui/doctor-page.js +152 -0
  71. package/dist/doctor/ui/doctor-page.js.map +1 -0
  72. package/dist/doctor/ui/index.d.ts +8 -0
  73. package/dist/doctor/ui/index.d.ts.map +1 -0
  74. package/dist/doctor/ui/index.js +7 -0
  75. package/dist/doctor/ui/index.js.map +1 -0
  76. package/dist/doctor/ui/settings-page.d.ts +20 -0
  77. package/dist/doctor/ui/settings-page.d.ts.map +1 -0
  78. package/dist/doctor/ui/settings-page.js +32 -0
  79. package/dist/doctor/ui/settings-page.js.map +1 -0
  80. package/dist/doctor/ui/support-bundle-button.d.ts +37 -0
  81. package/dist/doctor/ui/support-bundle-button.d.ts.map +1 -0
  82. package/dist/doctor/ui/support-bundle-button.js +39 -0
  83. package/dist/doctor/ui/support-bundle-button.js.map +1 -0
  84. package/dist/index.d.ts +11 -0
  85. package/dist/index.d.ts.map +1 -0
  86. package/dist/index.js +11 -0
  87. package/dist/index.js.map +1 -0
  88. package/dist/telemetry/headless/adapters/TelemetryWebAdapters.d.ts +106 -0
  89. package/dist/telemetry/headless/adapters/TelemetryWebAdapters.d.ts.map +1 -0
  90. package/dist/telemetry/headless/adapters/TelemetryWebAdapters.js +58 -0
  91. package/dist/telemetry/headless/adapters/TelemetryWebAdapters.js.map +1 -0
  92. package/dist/telemetry/headless/context/TelemetryConfigProvider.d.ts +43 -0
  93. package/dist/telemetry/headless/context/TelemetryConfigProvider.d.ts.map +1 -0
  94. package/dist/telemetry/headless/context/TelemetryConfigProvider.js +24 -0
  95. package/dist/telemetry/headless/context/TelemetryConfigProvider.js.map +1 -0
  96. package/dist/telemetry/headless/context/telemetryConfig.d.ts +68 -0
  97. package/dist/telemetry/headless/context/telemetryConfig.d.ts.map +1 -0
  98. package/dist/telemetry/headless/context/telemetryConfig.js +119 -0
  99. package/dist/telemetry/headless/context/telemetryConfig.js.map +1 -0
  100. package/dist/telemetry/headless/guards/RequireTelemetryEnabled.d.ts +35 -0
  101. package/dist/telemetry/headless/guards/RequireTelemetryEnabled.d.ts.map +1 -0
  102. package/dist/telemetry/headless/guards/RequireTelemetryEnabled.js +44 -0
  103. package/dist/telemetry/headless/guards/RequireTelemetryEnabled.js.map +1 -0
  104. package/dist/telemetry/headless/hooks/useTelemetryAdmin.d.ts +40 -0
  105. package/dist/telemetry/headless/hooks/useTelemetryAdmin.d.ts.map +1 -0
  106. package/dist/telemetry/headless/hooks/useTelemetryAdmin.js +111 -0
  107. package/dist/telemetry/headless/hooks/useTelemetryAdmin.js.map +1 -0
  108. package/dist/telemetry/headless/hooks/useTelemetryAssistant.d.ts +120 -0
  109. package/dist/telemetry/headless/hooks/useTelemetryAssistant.d.ts.map +1 -0
  110. package/dist/telemetry/headless/hooks/useTelemetryAssistant.js +185 -0
  111. package/dist/telemetry/headless/hooks/useTelemetryAssistant.js.map +1 -0
  112. package/dist/telemetry/headless/hooks/useTelemetryAssistantAvailable.d.ts +12 -0
  113. package/dist/telemetry/headless/hooks/useTelemetryAssistantAvailable.d.ts.map +1 -0
  114. package/dist/telemetry/headless/hooks/useTelemetryAssistantAvailable.js +36 -0
  115. package/dist/telemetry/headless/hooks/useTelemetryAssistantAvailable.js.map +1 -0
  116. package/dist/telemetry/headless/hooks/useTelemetryConnection.d.ts +46 -0
  117. package/dist/telemetry/headless/hooks/useTelemetryConnection.d.ts.map +1 -0
  118. package/dist/telemetry/headless/hooks/useTelemetryConnection.js +133 -0
  119. package/dist/telemetry/headless/hooks/useTelemetryConnection.js.map +1 -0
  120. package/dist/telemetry/headless/hooks/useTelemetryDashboard.d.ts +147 -0
  121. package/dist/telemetry/headless/hooks/useTelemetryDashboard.d.ts.map +1 -0
  122. package/dist/telemetry/headless/hooks/useTelemetryDashboard.js +231 -0
  123. package/dist/telemetry/headless/hooks/useTelemetryDashboard.js.map +1 -0
  124. package/dist/telemetry/headless/hooks/useTelemetryExplorer.d.ts +95 -0
  125. package/dist/telemetry/headless/hooks/useTelemetryExplorer.d.ts.map +1 -0
  126. package/dist/telemetry/headless/hooks/useTelemetryExplorer.js +197 -0
  127. package/dist/telemetry/headless/hooks/useTelemetryExplorer.js.map +1 -0
  128. package/dist/telemetry/headless/hooks/useTelemetryStack.d.ts +69 -0
  129. package/dist/telemetry/headless/hooks/useTelemetryStack.d.ts.map +1 -0
  130. package/dist/telemetry/headless/hooks/useTelemetryStack.js +129 -0
  131. package/dist/telemetry/headless/hooks/useTelemetryStack.js.map +1 -0
  132. package/dist/telemetry/headless/index.d.ts +34 -0
  133. package/dist/telemetry/headless/index.d.ts.map +1 -0
  134. package/dist/telemetry/headless/index.js +34 -0
  135. package/dist/telemetry/headless/index.js.map +1 -0
  136. package/dist/telemetry/headless/lib/assistantExport.d.ts +12 -0
  137. package/dist/telemetry/headless/lib/assistantExport.d.ts.map +1 -0
  138. package/dist/telemetry/headless/lib/assistantExport.js +116 -0
  139. package/dist/telemetry/headless/lib/assistantExport.js.map +1 -0
  140. package/dist/telemetry/headless/lib/dashboard/assistantPrompt.d.ts +91 -0
  141. package/dist/telemetry/headless/lib/dashboard/assistantPrompt.d.ts.map +1 -0
  142. package/dist/telemetry/headless/lib/dashboard/assistantPrompt.js +246 -0
  143. package/dist/telemetry/headless/lib/dashboard/assistantPrompt.js.map +1 -0
  144. package/dist/telemetry/headless/lib/dashboardState.d.ts +58 -0
  145. package/dist/telemetry/headless/lib/dashboardState.d.ts.map +1 -0
  146. package/dist/telemetry/headless/lib/dashboardState.js +153 -0
  147. package/dist/telemetry/headless/lib/dashboardState.js.map +1 -0
  148. package/dist/telemetry/headless/lib/explorerHandoff.d.ts +62 -0
  149. package/dist/telemetry/headless/lib/explorerHandoff.d.ts.map +1 -0
  150. package/dist/telemetry/headless/lib/explorerHandoff.js +77 -0
  151. package/dist/telemetry/headless/lib/explorerHandoff.js.map +1 -0
  152. package/dist/telemetry/headless/lib/format.d.ts +113 -0
  153. package/dist/telemetry/headless/lib/format.d.ts.map +1 -0
  154. package/dist/telemetry/headless/lib/format.js +280 -0
  155. package/dist/telemetry/headless/lib/format.js.map +1 -0
  156. package/dist/telemetry/headless/lib/metrics/metricSections.d.ts +44 -0
  157. package/dist/telemetry/headless/lib/metrics/metricSections.d.ts.map +1 -0
  158. package/dist/telemetry/headless/lib/metrics/metricSections.js +61 -0
  159. package/dist/telemetry/headless/lib/metrics/metricSections.js.map +1 -0
  160. package/dist/telemetry/headless/lib/metrics/topNPreference.d.ts +15 -0
  161. package/dist/telemetry/headless/lib/metrics/topNPreference.d.ts.map +1 -0
  162. package/dist/telemetry/headless/lib/metrics/topNPreference.js +33 -0
  163. package/dist/telemetry/headless/lib/metrics/topNPreference.js.map +1 -0
  164. package/dist/telemetry/headless/lib/queryHistory.d.ts +20 -0
  165. package/dist/telemetry/headless/lib/queryHistory.d.ts.map +1 -0
  166. package/dist/telemetry/headless/lib/queryHistory.js +53 -0
  167. package/dist/telemetry/headless/lib/queryHistory.js.map +1 -0
  168. package/dist/telemetry/headless/lib/starterQueries.d.ts +48 -0
  169. package/dist/telemetry/headless/lib/starterQueries.d.ts.map +1 -0
  170. package/dist/telemetry/headless/lib/starterQueries.js +84 -0
  171. package/dist/telemetry/headless/lib/starterQueries.js.map +1 -0
  172. package/dist/telemetry/headless/lib/traceLink.d.ts +26 -0
  173. package/dist/telemetry/headless/lib/traceLink.d.ts.map +1 -0
  174. package/dist/telemetry/headless/lib/traceLink.js +32 -0
  175. package/dist/telemetry/headless/lib/traceLink.js.map +1 -0
  176. package/dist/telemetry/headless/lib/unknownRoutes.d.ts +23 -0
  177. package/dist/telemetry/headless/lib/unknownRoutes.d.ts.map +1 -0
  178. package/dist/telemetry/headless/lib/unknownRoutes.js +35 -0
  179. package/dist/telemetry/headless/lib/unknownRoutes.js.map +1 -0
  180. package/dist/telemetry/headless/services/client.d.ts +144 -0
  181. package/dist/telemetry/headless/services/client.d.ts.map +1 -0
  182. package/dist/telemetry/headless/services/client.js +144 -0
  183. package/dist/telemetry/headless/services/client.js.map +1 -0
  184. package/dist/telemetry/headless/services/telemetry.d.ts +483 -0
  185. package/dist/telemetry/headless/services/telemetry.d.ts.map +1 -0
  186. package/dist/telemetry/headless/services/telemetry.js +190 -0
  187. package/dist/telemetry/headless/services/telemetry.js.map +1 -0
  188. package/dist/telemetry/headless/services/telemetryDashboard.d.ts +321 -0
  189. package/dist/telemetry/headless/services/telemetryDashboard.d.ts.map +1 -0
  190. package/dist/telemetry/headless/services/telemetryDashboard.js +103 -0
  191. package/dist/telemetry/headless/services/telemetryDashboard.js.map +1 -0
  192. package/dist/telemetry/internal/useIsMounted.d.ts +9 -0
  193. package/dist/telemetry/internal/useIsMounted.d.ts.map +1 -0
  194. package/dist/telemetry/internal/useIsMounted.js +19 -0
  195. package/dist/telemetry/internal/useIsMounted.js.map +1 -0
  196. package/dist/telemetry/internal/useVisiblePolling.d.ts +55 -0
  197. package/dist/telemetry/internal/useVisiblePolling.d.ts.map +1 -0
  198. package/dist/telemetry/internal/useVisiblePolling.js +96 -0
  199. package/dist/telemetry/internal/useVisiblePolling.js.map +1 -0
  200. package/dist/telemetry/internal/visuallyHidden.d.ts +12 -0
  201. package/dist/telemetry/internal/visuallyHidden.d.ts.map +1 -0
  202. package/dist/telemetry/internal/visuallyHidden.js +15 -0
  203. package/dist/telemetry/internal/visuallyHidden.js.map +1 -0
  204. package/dist/telemetry/theme/augment.d.ts +65 -0
  205. package/dist/telemetry/theme/augment.d.ts.map +1 -0
  206. package/dist/telemetry/theme/augment.js +37 -0
  207. package/dist/telemetry/theme/augment.js.map +1 -0
  208. package/dist/telemetry/theme/telemetryTokens.d.ts +121 -0
  209. package/dist/telemetry/theme/telemetryTokens.d.ts.map +1 -0
  210. package/dist/telemetry/theme/telemetryTokens.js +129 -0
  211. package/dist/telemetry/theme/telemetryTokens.js.map +1 -0
  212. package/dist/telemetry/ui/admin.d.ts +35 -0
  213. package/dist/telemetry/ui/admin.d.ts.map +1 -0
  214. package/dist/telemetry/ui/admin.js +58 -0
  215. package/dist/telemetry/ui/admin.js.map +1 -0
  216. package/dist/telemetry/ui/components/AssistantContainer.d.ts +35 -0
  217. package/dist/telemetry/ui/components/AssistantContainer.d.ts.map +1 -0
  218. package/dist/telemetry/ui/components/AssistantContainer.js +83 -0
  219. package/dist/telemetry/ui/components/AssistantContainer.js.map +1 -0
  220. package/dist/telemetry/ui/components/AssistantPanel.d.ts +22 -0
  221. package/dist/telemetry/ui/components/AssistantPanel.d.ts.map +1 -0
  222. package/dist/telemetry/ui/components/AssistantPanel.js +150 -0
  223. package/dist/telemetry/ui/components/AssistantPanel.js.map +1 -0
  224. package/dist/telemetry/ui/components/AssistantReport.d.ts +13 -0
  225. package/dist/telemetry/ui/components/AssistantReport.d.ts.map +1 -0
  226. package/dist/telemetry/ui/components/AssistantReport.js +89 -0
  227. package/dist/telemetry/ui/components/AssistantReport.js.map +1 -0
  228. package/dist/telemetry/ui/components/AssistantTimeline.d.ts +10 -0
  229. package/dist/telemetry/ui/components/AssistantTimeline.d.ts.map +1 -0
  230. package/dist/telemetry/ui/components/AssistantTimeline.js +84 -0
  231. package/dist/telemetry/ui/components/AssistantTimeline.js.map +1 -0
  232. package/dist/telemetry/ui/components/ResultsGrid.d.ts +10 -0
  233. package/dist/telemetry/ui/components/ResultsGrid.d.ts.map +1 -0
  234. package/dist/telemetry/ui/components/ResultsGrid.js +71 -0
  235. package/dist/telemetry/ui/components/ResultsGrid.js.map +1 -0
  236. package/dist/telemetry/ui/components/SchemaPanel.d.ts +9 -0
  237. package/dist/telemetry/ui/components/SchemaPanel.d.ts.map +1 -0
  238. package/dist/telemetry/ui/components/SchemaPanel.js +42 -0
  239. package/dist/telemetry/ui/components/SchemaPanel.js.map +1 -0
  240. package/dist/telemetry/ui/components/SqlEditor.d.ts +21 -0
  241. package/dist/telemetry/ui/components/SqlEditor.d.ts.map +1 -0
  242. package/dist/telemetry/ui/components/SqlEditor.js +60 -0
  243. package/dist/telemetry/ui/components/SqlEditor.js.map +1 -0
  244. package/dist/telemetry/ui/components/TelemetryConnectionSection.d.ts +14 -0
  245. package/dist/telemetry/ui/components/TelemetryConnectionSection.d.ts.map +1 -0
  246. package/dist/telemetry/ui/components/TelemetryConnectionSection.js +243 -0
  247. package/dist/telemetry/ui/components/TelemetryConnectionSection.js.map +1 -0
  248. package/dist/telemetry/ui/components/TelemetryCrossLink.d.ts +12 -0
  249. package/dist/telemetry/ui/components/TelemetryCrossLink.d.ts.map +1 -0
  250. package/dist/telemetry/ui/components/TelemetryCrossLink.js +21 -0
  251. package/dist/telemetry/ui/components/TelemetryCrossLink.js.map +1 -0
  252. package/dist/telemetry/ui/components/TelemetryServicesSection.d.ts +23 -0
  253. package/dist/telemetry/ui/components/TelemetryServicesSection.d.ts.map +1 -0
  254. package/dist/telemetry/ui/components/TelemetryServicesSection.js +138 -0
  255. package/dist/telemetry/ui/components/TelemetryServicesSection.js.map +1 -0
  256. package/dist/telemetry/ui/components/TelemetrySpinner.d.ts +3 -0
  257. package/dist/telemetry/ui/components/TelemetrySpinner.d.ts.map +1 -0
  258. package/dist/telemetry/ui/components/TelemetrySpinner.js +14 -0
  259. package/dist/telemetry/ui/components/TelemetrySpinner.js.map +1 -0
  260. package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.d.ts +17 -0
  261. package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.d.ts.map +1 -0
  262. package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.js +70 -0
  263. package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.js.map +1 -0
  264. package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.d.ts +39 -0
  265. package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.d.ts.map +1 -0
  266. package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.js +143 -0
  267. package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.js.map +1 -0
  268. package/dist/telemetry/ui/components/dashboard/DashboardPanel.d.ts +58 -0
  269. package/dist/telemetry/ui/components/dashboard/DashboardPanel.d.ts.map +1 -0
  270. package/dist/telemetry/ui/components/dashboard/DashboardPanel.js +62 -0
  271. package/dist/telemetry/ui/components/dashboard/DashboardPanel.js.map +1 -0
  272. package/dist/telemetry/ui/components/dashboard/EventsFeed.d.ts +21 -0
  273. package/dist/telemetry/ui/components/dashboard/EventsFeed.d.ts.map +1 -0
  274. package/dist/telemetry/ui/components/dashboard/EventsFeed.js +96 -0
  275. package/dist/telemetry/ui/components/dashboard/EventsFeed.js.map +1 -0
  276. package/dist/telemetry/ui/components/dashboard/KpiTiles.d.ts +13 -0
  277. package/dist/telemetry/ui/components/dashboard/KpiTiles.d.ts.map +1 -0
  278. package/dist/telemetry/ui/components/dashboard/KpiTiles.js +82 -0
  279. package/dist/telemetry/ui/components/dashboard/KpiTiles.js.map +1 -0
  280. package/dist/telemetry/ui/components/dashboard/LogSeverityChart.d.ts +8 -0
  281. package/dist/telemetry/ui/components/dashboard/LogSeverityChart.d.ts.map +1 -0
  282. package/dist/telemetry/ui/components/dashboard/LogSeverityChart.js +34 -0
  283. package/dist/telemetry/ui/components/dashboard/LogSeverityChart.js.map +1 -0
  284. package/dist/telemetry/ui/components/dashboard/TopProblems.d.ts +19 -0
  285. package/dist/telemetry/ui/components/dashboard/TopProblems.d.ts.map +1 -0
  286. package/dist/telemetry/ui/components/dashboard/TopProblems.js +61 -0
  287. package/dist/telemetry/ui/components/dashboard/TopProblems.js.map +1 -0
  288. package/dist/telemetry/ui/components/dashboard/UnknownRoutesPanel.d.ts +12 -0
  289. package/dist/telemetry/ui/components/dashboard/UnknownRoutesPanel.d.ts.map +1 -0
  290. package/dist/telemetry/ui/components/dashboard/UnknownRoutesPanel.js +36 -0
  291. package/dist/telemetry/ui/components/dashboard/UnknownRoutesPanel.js.map +1 -0
  292. package/dist/telemetry/ui/components/dashboard/VerdictBanner.d.ts +35 -0
  293. package/dist/telemetry/ui/components/dashboard/VerdictBanner.d.ts.map +1 -0
  294. package/dist/telemetry/ui/components/dashboard/VerdictBanner.js +68 -0
  295. package/dist/telemetry/ui/components/dashboard/VerdictBanner.js.map +1 -0
  296. package/dist/telemetry/ui/components/dashboard/ZoomBrush.d.ts +9 -0
  297. package/dist/telemetry/ui/components/dashboard/ZoomBrush.d.ts.map +1 -0
  298. package/dist/telemetry/ui/components/dashboard/ZoomBrush.js +96 -0
  299. package/dist/telemetry/ui/components/dashboard/ZoomBrush.js.map +1 -0
  300. package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.d.ts +75 -0
  301. package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.d.ts.map +1 -0
  302. package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.js +247 -0
  303. package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.js.map +1 -0
  304. package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.d.ts +19 -0
  305. package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.d.ts.map +1 -0
  306. package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.js +64 -0
  307. package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.js.map +1 -0
  308. package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.d.ts +74 -0
  309. package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.d.ts.map +1 -0
  310. package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.js +126 -0
  311. package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.js.map +1 -0
  312. package/dist/telemetry/ui/components/dashboard/severity.d.ts +43 -0
  313. package/dist/telemetry/ui/components/dashboard/severity.d.ts.map +1 -0
  314. package/dist/telemetry/ui/components/dashboard/severity.js +66 -0
  315. package/dist/telemetry/ui/components/dashboard/severity.js.map +1 -0
  316. package/dist/telemetry/ui/components/dashboard/timelineAxis.d.ts +11 -0
  317. package/dist/telemetry/ui/components/dashboard/timelineAxis.d.ts.map +1 -0
  318. package/dist/telemetry/ui/components/dashboard/timelineAxis.js +20 -0
  319. package/dist/telemetry/ui/components/dashboard/timelineAxis.js.map +1 -0
  320. package/dist/telemetry/ui/dashboard-page.d.ts +2 -0
  321. package/dist/telemetry/ui/dashboard-page.d.ts.map +1 -0
  322. package/dist/telemetry/ui/dashboard-page.js +6 -0
  323. package/dist/telemetry/ui/dashboard-page.js.map +1 -0
  324. package/dist/telemetry/ui/explorer-page.d.ts +2 -0
  325. package/dist/telemetry/ui/explorer-page.d.ts.map +1 -0
  326. package/dist/telemetry/ui/explorer-page.js +6 -0
  327. package/dist/telemetry/ui/explorer-page.js.map +1 -0
  328. package/dist/telemetry/ui/index.d.ts +6 -0
  329. package/dist/telemetry/ui/index.d.ts.map +1 -0
  330. package/dist/telemetry/ui/index.js +10 -0
  331. package/dist/telemetry/ui/index.js.map +1 -0
  332. package/dist/telemetry/ui/pages/TelemetryDashboardPage.d.ts +14 -0
  333. package/dist/telemetry/ui/pages/TelemetryDashboardPage.d.ts.map +1 -0
  334. package/dist/telemetry/ui/pages/TelemetryDashboardPage.js +286 -0
  335. package/dist/telemetry/ui/pages/TelemetryDashboardPage.js.map +1 -0
  336. package/dist/telemetry/ui/pages/TelemetryExplorerPage.d.ts +15 -0
  337. package/dist/telemetry/ui/pages/TelemetryExplorerPage.d.ts.map +1 -0
  338. package/dist/telemetry/ui/pages/TelemetryExplorerPage.js +197 -0
  339. package/dist/telemetry/ui/pages/TelemetryExplorerPage.js.map +1 -0
  340. package/dist/telemetry/ui/pages/TelemetrySettingsPage.d.ts +28 -0
  341. package/dist/telemetry/ui/pages/TelemetrySettingsPage.d.ts.map +1 -0
  342. package/dist/telemetry/ui/pages/TelemetrySettingsPage.js +278 -0
  343. package/dist/telemetry/ui/pages/TelemetrySettingsPage.js.map +1 -0
  344. package/dist/telemetry/ui/settings-page.d.ts +2 -0
  345. package/dist/telemetry/ui/settings-page.d.ts.map +1 -0
  346. package/dist/telemetry/ui/settings-page.js +6 -0
  347. package/dist/telemetry/ui/settings-page.js.map +1 -0
  348. package/dist/testing/index.d.ts +3 -0
  349. package/dist/testing/index.d.ts.map +1 -0
  350. package/dist/testing/index.js +4 -0
  351. package/dist/testing/index.js.map +1 -0
  352. package/dist/testing/test-platform-host.d.ts +108 -0
  353. package/dist/testing/test-platform-host.d.ts.map +1 -0
  354. package/dist/testing/test-platform-host.js +101 -0
  355. package/dist/testing/test-platform-host.js.map +1 -0
  356. package/package.json +132 -4
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Fallback titles for two platform groups whose dashboard title is not their
3
+ * id, used only while (or when) the API's group metadata does not list the
4
+ * group. The metadata always wins: an app group (EvoPath's `coach`) is titled
5
+ * from it with no entry here.
6
+ *
7
+ * @stability experimental
8
+ */
9
+ export const METRIC_SECTION_TITLES = Object.freeze({
10
+ host: 'Infrastructure',
11
+ uptime: 'Uptime & dependencies',
12
+ });
13
+ /**
14
+ * The section title the API gives `group`; else {@link METRIC_SECTION_TITLES};
15
+ * else the id itself.
16
+ *
17
+ * @param group - the metric group id.
18
+ * @param groups - the API's group metadata (`GET …/metric-groups`).
19
+ * @returns the title to show.
20
+ *
21
+ * @stability experimental
22
+ */
23
+ export function metricSectionTitle(group, groups = []) {
24
+ return groups.find((section) => section.id === group)?.title ?? METRIC_SECTION_TITLES[group] ?? group;
25
+ }
26
+ /** The DOM id of a section's anchor (the verdict banner scrolls to it). */
27
+ export function metricSectionAnchor(group) {
28
+ return `telemetry-section-${group}`;
29
+ }
30
+ /** The section's `DashboardPanel` id (tests, and the ⋮ menu focus return). */
31
+ export function metricPanelId(group) {
32
+ return `panel-metrics-${group}`;
33
+ }
34
+ const REASON_PATTERNS = [
35
+ [/^Disk \S+% full/, 'host'],
36
+ [/^Memory \S+% used/, 'host'],
37
+ [/^Database connections at/, 'database'],
38
+ [/^Oldest pending job waiting/, 'queue'],
39
+ [/^Last successful backup/, 'queue'],
40
+ [/job type\(s\) have pending work and no eligible worker node/, 'nodes'],
41
+ [/worker node\(s\) stale/, 'nodes'],
42
+ [/^TLS certificate (expires|expired)/, 'uptime'],
43
+ [/^Uptime check (failed|failing)/, 'uptime'],
44
+ [/^Collector failed to export/, 'pipeline'],
45
+ ];
46
+ /** The section a verdict reason is about, or null for the traffic and no-data rules. */
47
+ export function verdictReasonGroup(reason) {
48
+ for (const [pattern, group] of REASON_PATTERNS)
49
+ if (pattern.test(reason))
50
+ return group;
51
+ return null;
52
+ }
53
+ /** Scroll a section into view and move focus to it (its region is focusable for this). */
54
+ export function scrollToMetricSection(group) {
55
+ const target = document.getElementById(metricSectionAnchor(group));
56
+ if (!target)
57
+ return;
58
+ target.scrollIntoView?.({ behavior: 'smooth', block: 'start' });
59
+ target.focus({ preventScroll: true });
60
+ }
61
+ //# sourceMappingURL=metricSections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metricSections.js","sourceRoot":"","sources":["../../../../../src/telemetry/headless/lib/metrics/metricSections.ts"],"names":[],"mappings":"AAiBA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA4D,MAAM,CAAC,MAAM,CAAC;IAC1G,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,uBAAuB;CAChC,CAAC,CAAC;AAEH;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAA2B,EAC3B,SAAoE,EAAE;IAEtE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,KAAK,IAAI,qBAAqB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AACxG,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,mBAAmB,CAAC,KAA2B;IAC7D,OAAO,qBAAqB,KAAK,EAAE,CAAC;AACtC,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,aAAa,CAAC,KAA2B;IACvD,OAAO,iBAAiB,KAAK,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,eAAe,GAA8C;IACjE,CAAC,iBAAiB,EAAE,MAAM,CAAC;IAC3B,CAAC,mBAAmB,EAAE,MAAM,CAAC;IAC7B,CAAC,0BAA0B,EAAE,UAAU,CAAC;IACxC,CAAC,6BAA6B,EAAE,OAAO,CAAC;IACxC,CAAC,yBAAyB,EAAE,OAAO,CAAC;IACpC,CAAC,6DAA6D,EAAE,OAAO,CAAC;IACxE,CAAC,wBAAwB,EAAE,OAAO,CAAC;IACnC,CAAC,oCAAoC,EAAE,QAAQ,CAAC;IAChD,CAAC,gCAAgC,EAAE,QAAQ,CAAC;IAC5C,CAAC,6BAA6B,EAAE,UAAU,CAAC;CAC5C,CAAC;AAEF,wFAAwF;AACxF,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,eAAe;QAAE,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;IACvF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,qBAAqB,CAAC,KAA2B;IAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,CAAC,cAAc,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAChE,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * The "Top N" row limit a viewer picked for a dashboard table — issue #632.
3
+ *
4
+ * Per-viewer convenience in `localStorage`, modelled on the explorer's query
5
+ * history (`../../queryHistory.ts`): every access is wrapped in try/catch
6
+ * (private mode, blocked storage), and a missing, corrupt or no-longer-offered
7
+ * value reads as `null`, so the caller falls back to the table's default.
8
+ */
9
+ /** A row limit: a count, or every row the API returned. */
10
+ export type TopNOption = number | 'all';
11
+ export declare function topNStorageKey(tableKey: string): string;
12
+ /** The stored choice for `tableKey`, if it is still one of `options`. */
13
+ export declare function readTopN(tableKey: string, options: readonly TopNOption[]): TopNOption | null;
14
+ export declare function writeTopN(tableKey: string, value: TopNOption): void;
15
+ //# sourceMappingURL=topNPreference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"topNPreference.d.ts","sourceRoot":"","sources":["../../../../../src/telemetry/headless/lib/metrics/topNPreference.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,2DAA2D;AAC3D,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,KAAK,CAAC;AAExC,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,GAAG,IAAI,CAS5F;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAMnE"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * The "Top N" row limit a viewer picked for a dashboard table — issue #632.
3
+ *
4
+ * Per-viewer convenience in `localStorage`, modelled on the explorer's query
5
+ * history (`../../queryHistory.ts`): every access is wrapped in try/catch
6
+ * (private mode, blocked storage), and a missing, corrupt or no-longer-offered
7
+ * value reads as `null`, so the caller falls back to the table's default.
8
+ */
9
+ export function topNStorageKey(tableKey) {
10
+ return `telemetry.dashboard.${tableKey}.topN`;
11
+ }
12
+ /** The stored choice for `tableKey`, if it is still one of `options`. */
13
+ export function readTopN(tableKey, options) {
14
+ try {
15
+ const raw = window.localStorage.getItem(topNStorageKey(tableKey));
16
+ if (raw === null)
17
+ return null;
18
+ const value = raw === 'all' ? 'all' : Number(raw);
19
+ return options.includes(value) ? value : null;
20
+ }
21
+ catch {
22
+ return null;
23
+ }
24
+ }
25
+ export function writeTopN(tableKey, value) {
26
+ try {
27
+ window.localStorage.setItem(topNStorageKey(tableKey), String(value));
28
+ }
29
+ catch {
30
+ // Storage unavailable — the choice still holds for this page view.
31
+ }
32
+ }
33
+ //# sourceMappingURL=topNPreference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"topNPreference.js","sourceRoot":"","sources":["../../../../../src/telemetry/headless/lib/metrics/topNPreference.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,OAAO,uBAAuB,QAAQ,OAAO,CAAC;AAChD,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,QAAQ,CAAC,QAAgB,EAAE,OAA8B;IACvE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClE,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC9B,MAAM,KAAK,GAAe,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9D,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAAgB,EAAE,KAAiB;IAC3D,IAAI,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,mEAAmE;IACrE,CAAC;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The explorer's per-browser query history — issue #537, epic #528.
3
+ *
4
+ * The last {@link QUERY_HISTORY_LIMIT} distinct queries, newest first, in
5
+ * `localStorage`. A per-viewer convenience only: every access is wrapped in
6
+ * try/catch (private mode, blocked storage), and a missing or corrupt value
7
+ * reads as an empty history.
8
+ */
9
+ /**
10
+ * The `localStorage` key of the explorer's query history.
11
+ *
12
+ * @stability experimental
13
+ */
14
+ export declare const QUERY_HISTORY_KEY = "telemetry-explorer:history";
15
+ export declare const QUERY_HISTORY_LIMIT = 20;
16
+ export declare function readQueryHistory(): string[];
17
+ /** Record `sql` as the newest entry and return the new history. */
18
+ export declare function pushQueryHistory(sql: string): string[];
19
+ export declare function clearQueryHistory(): void;
20
+ //# sourceMappingURL=queryHistory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryHistory.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/headless/lib/queryHistory.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,+BAA+B,CAAC;AAC9D,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAW3C;AAED,mEAAmE;AACnE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CActD;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAMxC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * The explorer's per-browser query history — issue #537, epic #528.
3
+ *
4
+ * The last {@link QUERY_HISTORY_LIMIT} distinct queries, newest first, in
5
+ * `localStorage`. A per-viewer convenience only: every access is wrapped in
6
+ * try/catch (private mode, blocked storage), and a missing or corrupt value
7
+ * reads as an empty history.
8
+ */
9
+ /**
10
+ * The `localStorage` key of the explorer's query history.
11
+ *
12
+ * @stability experimental
13
+ */
14
+ export const QUERY_HISTORY_KEY = 'telemetry-explorer:history';
15
+ export const QUERY_HISTORY_LIMIT = 20;
16
+ export function readQueryHistory() {
17
+ try {
18
+ const raw = window.localStorage.getItem(QUERY_HISTORY_KEY);
19
+ if (!raw)
20
+ return [];
21
+ const parsed = JSON.parse(raw);
22
+ return Array.isArray(parsed)
23
+ ? parsed.filter((entry) => typeof entry === 'string').slice(0, QUERY_HISTORY_LIMIT)
24
+ : [];
25
+ }
26
+ catch {
27
+ return [];
28
+ }
29
+ }
30
+ /** Record `sql` as the newest entry and return the new history. */
31
+ export function pushQueryHistory(sql) {
32
+ const trimmed = sql.trim();
33
+ const current = readQueryHistory();
34
+ if (!trimmed)
35
+ return current;
36
+ const next = [trimmed, ...current.filter((entry) => entry !== trimmed)].slice(0, QUERY_HISTORY_LIMIT);
37
+ try {
38
+ window.localStorage.setItem(QUERY_HISTORY_KEY, JSON.stringify(next));
39
+ }
40
+ catch {
41
+ // Storage unavailable — the in-memory list still updates for this session.
42
+ }
43
+ return next;
44
+ }
45
+ export function clearQueryHistory() {
46
+ try {
47
+ window.localStorage.removeItem(QUERY_HISTORY_KEY);
48
+ }
49
+ catch {
50
+ // Nothing to do.
51
+ }
52
+ }
53
+ //# sourceMappingURL=queryHistory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryHistory.js","sourceRoot":"","sources":["../../../../src/telemetry/headless/lib/queryHistory.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,4BAA4B,CAAC;AAC9D,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAEtC,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC3D,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QACpB,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAC1B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC;YACpG,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IACnC,IAAI,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC;IAC7B,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAC3E,CAAC,EACD,mBAAmB,CACpB,CAAC;IACF,IAAI,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;IAC7E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;AACH,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Starter queries for the Telemetry Explorer — issue #537, epic #528.
3
+ *
4
+ * Written against GreptimeDB's OpenTelemetry tables (`opentelemetry_traces`,
5
+ * `opentelemetry_logs`). Span attribute columns are flattened with dots in
6
+ * their names, so any such column must be double-quoted (see
7
+ * {@link quoteIdentifier}).
8
+ */
9
+ /**
10
+ * One starter query of the explorer's menu.
11
+ *
12
+ * @stability experimental
13
+ */
14
+ export interface StarterQuery {
15
+ /** A stable id (`recent-errors`, ...). */
16
+ id: string;
17
+ /** The menu label. */
18
+ title: string;
19
+ /** The statement the editor is seeded with. */
20
+ sql: string;
21
+ }
22
+ export declare const TRACE_ID_PLACEHOLDER = "<trace_id>";
23
+ /**
24
+ * The explorer's starter queries, in menu order; the first seeds the editor.
25
+ *
26
+ * @stability experimental
27
+ */
28
+ export declare const STARTER_QUERIES: StarterQuery[];
29
+ /** Escape a value for a single-quoted SQL string literal. */
30
+ export declare function sqlStringLiteral(value: string): string;
31
+ /**
32
+ * The query a click on a `trace_id` value runs: every span of the trace, then
33
+ * every log line that carries it, in one result (a UNION over the shared
34
+ * columns, labelled by `kind`).
35
+ *
36
+ * @param traceId - the trace id (escaped as a string literal).
37
+ * @returns the statement.
38
+ *
39
+ * @stability experimental
40
+ */
41
+ export declare function traceQuery(traceId: string): string;
42
+ /**
43
+ * An identifier as it must be written in SQL: bare when it is a plain
44
+ * lower-case name, double-quoted (with `"` doubled) otherwise — which is every
45
+ * flattened attribute column (`span_attributes.http.route`).
46
+ */
47
+ export declare function quoteIdentifier(name: string): string;
48
+ //# sourceMappingURL=starterQueries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starterQueries.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/headless/lib/starterQueries.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,0CAA0C;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,oBAAoB,eAAe,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,YAAY,EA+BzC,CAAC;AAEF,6DAA6D;AAC7D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAalD;AAID;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Starter queries for the Telemetry Explorer — issue #537, epic #528.
3
+ *
4
+ * Written against GreptimeDB's OpenTelemetry tables (`opentelemetry_traces`,
5
+ * `opentelemetry_logs`). Span attribute columns are flattened with dots in
6
+ * their names, so any such column must be double-quoted (see
7
+ * {@link quoteIdentifier}).
8
+ */
9
+ export const TRACE_ID_PLACEHOLDER = '<trace_id>';
10
+ /**
11
+ * The explorer's starter queries, in menu order; the first seeds the editor.
12
+ *
13
+ * @stability experimental
14
+ */
15
+ export const STARTER_QUERIES = [
16
+ {
17
+ id: 'recent-errors',
18
+ title: 'Recent errors (24h)',
19
+ sql: "SELECT timestamp, service_name, span_name, span_status_message, trace_id FROM opentelemetry_traces WHERE span_status_code = 'STATUS_CODE_ERROR' AND timestamp > now() - INTERVAL '24 hours' ORDER BY timestamp DESC LIMIT 200",
20
+ },
21
+ {
22
+ id: 'slowest-routes',
23
+ title: 'Slowest routes (p95, 1h)',
24
+ sql: "SELECT span_name, count(*) AS calls, approx_percentile_cont(duration_nano / 1000000.0, 0.95) AS p95_ms, max(duration_nano) / 1000000.0 AS max_ms FROM opentelemetry_traces WHERE span_kind = 'SPAN_KIND_SERVER' AND timestamp > now() - INTERVAL '1 hour' GROUP BY span_name ORDER BY p95_ms DESC LIMIT 20",
25
+ },
26
+ {
27
+ id: 'requests-per-service',
28
+ title: 'Requests per service (24h)',
29
+ sql: "SELECT service_name, count(*) AS spans FROM opentelemetry_traces WHERE timestamp > now() - INTERVAL '24 hours' GROUP BY service_name ORDER BY spans DESC",
30
+ },
31
+ {
32
+ id: 'log-warnings',
33
+ title: 'Recent warnings and errors in logs',
34
+ sql: 'SELECT timestamp, severity_text, body, trace_id FROM opentelemetry_logs WHERE severity_number >= 13 ORDER BY timestamp DESC LIMIT 200',
35
+ },
36
+ {
37
+ id: 'trace-by-id',
38
+ title: 'Full trace by ID',
39
+ sql: `SELECT timestamp, span_name, duration_nano / 1000000.0 AS ms, span_status_code, parent_span_id, span_id FROM opentelemetry_traces WHERE trace_id = '${TRACE_ID_PLACEHOLDER}' ORDER BY timestamp`,
40
+ },
41
+ {
42
+ id: 'tables-and-sizes',
43
+ title: 'Tables and sizes',
44
+ sql: "SELECT table_name, table_rows FROM information_schema.tables WHERE table_schema = 'public' ORDER BY table_rows DESC",
45
+ },
46
+ ];
47
+ /** Escape a value for a single-quoted SQL string literal. */
48
+ export function sqlStringLiteral(value) {
49
+ return `'${value.replace(/'/g, "''")}'`;
50
+ }
51
+ /**
52
+ * The query a click on a `trace_id` value runs: every span of the trace, then
53
+ * every log line that carries it, in one result (a UNION over the shared
54
+ * columns, labelled by `kind`).
55
+ *
56
+ * @param traceId - the trace id (escaped as a string literal).
57
+ * @returns the statement.
58
+ *
59
+ * @stability experimental
60
+ */
61
+ export function traceQuery(traceId) {
62
+ const id = sqlStringLiteral(traceId);
63
+ // Only columns the OTLP logs table is known to carry (the starter queries'
64
+ // own, plus `span_id`) are read from it; `ms` is a typed NULL for log rows
65
+ // so the UNION's column types line up.
66
+ return [
67
+ "SELECT 'span' AS kind, timestamp, span_name AS name, duration_nano / 1000000.0 AS ms, span_status_code AS status, span_id",
68
+ `FROM opentelemetry_traces WHERE trace_id = ${id}`,
69
+ 'UNION ALL',
70
+ "SELECT 'log' AS kind, timestamp, body AS name, CAST(NULL AS DOUBLE) AS ms, severity_text AS status, span_id",
71
+ `FROM opentelemetry_logs WHERE trace_id = ${id}`,
72
+ 'ORDER BY timestamp',
73
+ ].join('\n');
74
+ }
75
+ const BARE_IDENTIFIER = /^[a-z_][a-z0-9_]*$/;
76
+ /**
77
+ * An identifier as it must be written in SQL: bare when it is a plain
78
+ * lower-case name, double-quoted (with `"` doubled) otherwise — which is every
79
+ * flattened attribute column (`span_attributes.http.route`).
80
+ */
81
+ export function quoteIdentifier(name) {
82
+ return BARE_IDENTIFIER.test(name) ? name : `"${name.replace(/"/g, '""')}"`;
83
+ }
84
+ //# sourceMappingURL=starterQueries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starterQueries.js","sourceRoot":"","sources":["../../../../src/telemetry/headless/lib/starterQueries.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgBH,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC;AAEjD;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAmB;IAC7C;QACE,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,qBAAqB;QAC5B,GAAG,EAAE,+NAA+N;KACrO;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,0BAA0B;QACjC,GAAG,EAAE,4SAA4S;KAClT;IACD;QACE,EAAE,EAAE,sBAAsB;QAC1B,KAAK,EAAE,4BAA4B;QACnC,GAAG,EAAE,0JAA0J;KAChK;IACD;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,oCAAoC;QAC3C,GAAG,EAAE,uIAAuI;KAC7I;IACD;QACE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,kBAAkB;QACzB,GAAG,EAAE,uJAAuJ,oBAAoB,sBAAsB;KACvM;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,KAAK,EAAE,kBAAkB;QACzB,GAAG,EAAE,qHAAqH;KAC3H;CACF,CAAC;AAEF,6DAA6D;AAC7D,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;AAC1C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,MAAM,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACrC,2EAA2E;IAC3E,2EAA2E;IAC3E,uCAAuC;IACvC,OAAO;QACL,2HAA2H;QAC3H,8CAA8C,EAAE,EAAE;QAClD,WAAW;QACX,6GAA6G;QAC7G,4CAA4C,EAAE,EAAE;QAChD,oBAAoB;KACrB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAE7C;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;AAC7E,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * "View trace" from a dashboard log event — issue #579, epic #576.
3
+ *
4
+ * An OpenTelemetry trace id is 16 bytes, written as 32 lower-case hex digits
5
+ * (W3C Trace Context). Only an id of exactly that shape gets a link.
6
+ */
7
+ export declare const TRACE_ID_PATTERN: RegExp;
8
+ export declare function isTraceId(value: unknown): value is string;
9
+ /**
10
+ * Every span of one trace, for the explorer.
11
+ *
12
+ * THE ONE STATEMENT THE BROWSER BUILDS. Every other dashboard → explorer
13
+ * handoff carries SQL the API reported running; this one is written here
14
+ * because no dashboard endpoint runs it. It is safe because:
15
+ *
16
+ * 1. the only interpolated value is `traceId`, and it is accepted only when
17
+ * it matches {@link TRACE_ID_PATTERN} — 32 characters from `[0-9a-f]`, so
18
+ * it cannot contain a quote, whitespace, a comment or anything else that
19
+ * could end the string literal; any other input throws;
20
+ * 2. it is never run by the browser: it lands in the explorer's editor and
21
+ * runs only when the reader presses Run, as any typed statement would;
22
+ * 3. the API's SQL guard, not this function, decides whether it may run
23
+ * (read-only, row and time limits) — exactly as for typed SQL.
24
+ */
25
+ export declare function traceExplorerSql(traceId: string): string;
26
+ //# sourceMappingURL=traceLink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traceLink.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/headless/lib/traceLink.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,gBAAgB,QAAmB,CAAC;AAEjD,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEzD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGxD"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * "View trace" from a dashboard log event — issue #579, epic #576.
3
+ *
4
+ * An OpenTelemetry trace id is 16 bytes, written as 32 lower-case hex digits
5
+ * (W3C Trace Context). Only an id of exactly that shape gets a link.
6
+ */
7
+ export const TRACE_ID_PATTERN = /^[0-9a-f]{32}$/;
8
+ export function isTraceId(value) {
9
+ return typeof value === 'string' && TRACE_ID_PATTERN.test(value);
10
+ }
11
+ /**
12
+ * Every span of one trace, for the explorer.
13
+ *
14
+ * THE ONE STATEMENT THE BROWSER BUILDS. Every other dashboard → explorer
15
+ * handoff carries SQL the API reported running; this one is written here
16
+ * because no dashboard endpoint runs it. It is safe because:
17
+ *
18
+ * 1. the only interpolated value is `traceId`, and it is accepted only when
19
+ * it matches {@link TRACE_ID_PATTERN} — 32 characters from `[0-9a-f]`, so
20
+ * it cannot contain a quote, whitespace, a comment or anything else that
21
+ * could end the string literal; any other input throws;
22
+ * 2. it is never run by the browser: it lands in the explorer's editor and
23
+ * runs only when the reader presses Run, as any typed statement would;
24
+ * 3. the API's SQL guard, not this function, decides whether it may run
25
+ * (read-only, row and time limits) — exactly as for typed SQL.
26
+ */
27
+ export function traceExplorerSql(traceId) {
28
+ if (!isTraceId(traceId))
29
+ throw new Error('Not an OpenTelemetry trace id');
30
+ return `SELECT * FROM opentelemetry_traces WHERE trace_id = '${traceId}' ORDER BY "timestamp" LIMIT 1000`;
31
+ }
32
+ //# sourceMappingURL=traceLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traceLink.js","sourceRoot":"","sources":["../../../../src/telemetry/headless/lib/traceLink.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEjD,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC1E,OAAO,wDAAwD,OAAO,mCAAmC,CAAC;AAC5G,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Unknown API routes on the Telemetry Dashboard — issue #650.
3
+ *
4
+ * Pure helpers for the "Unknown API routes" panel (`UnknownRoutesPanel.tsx`),
5
+ * kept apart from the component so the page can use them too.
6
+ */
7
+ import { type DashboardUnknownRoutes } from '../services/telemetryDashboard.js';
8
+ /** DOM id of the panel's region: the verdict reason about unknown routes scrolls here. */
9
+ export declare const UNKNOWN_ROUTES_ANCHOR = "telemetry-unknown-routes";
10
+ /**
11
+ * The statements the API reports it ran for `unknownRoutes`, for "Open in
12
+ * Explorer": `unknownRoutes.sql` as sent (per-route list first, then the
13
+ * totals), never rebuilt or picked out of the summary's `sql`. Empty when an
14
+ * older API omits the field, which disables the action.
15
+ */
16
+ export declare function unknownRoutesSql(block: DashboardUnknownRoutes | null | undefined): string[];
17
+ /** Whether the panel has anything to show: the block is present and counted at least one request. */
18
+ export declare function hasUnknownRoutes(block: DashboardUnknownRoutes | undefined | null): block is DashboardUnknownRoutes;
19
+ /** A verdict reason about unknown API routes (the API's wording, #650). */
20
+ export declare function isUnknownRoutesReason(reason: string): boolean;
21
+ /** Scroll the panel into view and move focus to it. */
22
+ export declare function scrollToUnknownRoutes(): void;
23
+ //# sourceMappingURL=unknownRoutes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unknownRoutes.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/headless/lib/unknownRoutes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAW,KAAK,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAEzF,0FAA0F;AAC1F,eAAO,MAAM,qBAAqB,6BAA6B,CAAC;AAEhE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,EAAE,CAE3F;AAED,qGAAqG;AACrG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,sBAAsB,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,IAAI,sBAAsB,CAElH;AAED,2EAA2E;AAC3E,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,uDAAuD;AACvD,wBAAgB,qBAAqB,IAAI,IAAI,CAK5C"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Unknown API routes on the Telemetry Dashboard — issue #650.
3
+ *
4
+ * Pure helpers for the "Unknown API routes" panel (`UnknownRoutesPanel.tsx`),
5
+ * kept apart from the component so the page can use them too.
6
+ */
7
+ import { sqlList } from '../services/telemetryDashboard.js';
8
+ /** DOM id of the panel's region: the verdict reason about unknown routes scrolls here. */
9
+ export const UNKNOWN_ROUTES_ANCHOR = 'telemetry-unknown-routes';
10
+ /**
11
+ * The statements the API reports it ran for `unknownRoutes`, for "Open in
12
+ * Explorer": `unknownRoutes.sql` as sent (per-route list first, then the
13
+ * totals), never rebuilt or picked out of the summary's `sql`. Empty when an
14
+ * older API omits the field, which disables the action.
15
+ */
16
+ export function unknownRoutesSql(block) {
17
+ return sqlList(block?.sql);
18
+ }
19
+ /** Whether the panel has anything to show: the block is present and counted at least one request. */
20
+ export function hasUnknownRoutes(block) {
21
+ return !!block && block.requests > 0;
22
+ }
23
+ /** A verdict reason about unknown API routes (the API's wording, #650). */
24
+ export function isUnknownRoutesReason(reason) {
25
+ return /\bto unknown API routes\b/.test(reason);
26
+ }
27
+ /** Scroll the panel into view and move focus to it. */
28
+ export function scrollToUnknownRoutes() {
29
+ const target = document.getElementById(UNKNOWN_ROUTES_ANCHOR);
30
+ if (!target)
31
+ return;
32
+ target.scrollIntoView?.({ behavior: 'smooth', block: 'start' });
33
+ target.focus({ preventScroll: true });
34
+ }
35
+ //# sourceMappingURL=unknownRoutes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unknownRoutes.js","sourceRoot":"","sources":["../../../../src/telemetry/headless/lib/unknownRoutes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,OAAO,EAA+B,MAAM,mCAAmC,CAAC;AAEzF,0FAA0F;AAC1F,MAAM,CAAC,MAAM,qBAAqB,GAAG,0BAA0B,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAgD;IAC/E,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,gBAAgB,CAAC,KAAgD;IAC/E,OAAO,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvC,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,OAAO,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,qBAAqB;IACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,CAAC,cAAc,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAChE,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * The telemetry API client (issues #537, #558, #567, #578, #680; packaged by
3
+ * #704).
4
+ *
5
+ * Every call goes through the app's transport (`PlatformApiClient`, the
6
+ * `@marinoscar/platform-web/core` port): the auth header, the token refresh
7
+ * and the maintenance handling stay in the app. Paths are relative to the API
8
+ * base. The routes and the permission each one enforces:
9
+ *
10
+ * - `GET /telemetry/config` (any signed-in user)
11
+ * - `GET /admin/telemetry/config` (`telemetry:read`)
12
+ * - `PUT /admin/telemetry/config` (`telemetry:write`, If-Match)
13
+ * - `GET /admin/telemetry/status` (`telemetry:read`)
14
+ * - `GET|PUT|DELETE /admin/telemetry/connection`, `POST …/connection/test`
15
+ * (`telemetry:read` / `telemetry:write`)
16
+ * - `GET /admin/telemetry/stack`, `POST …/stack/deploy`
17
+ * (`system_settings:read` / `system_settings:write`)
18
+ * - `POST /admin/telemetry/query`, `GET …/schema`, `POST …/export`
19
+ * (`telemetry:query`)
20
+ * - `POST /admin/telemetry/assistant/stream` (`telemetry:query` + `ai:use`)
21
+ * - `GET /admin/telemetry/dashboard/*` (`telemetry:query`)
22
+ *
23
+ * The browser only presents and collects. Whether a statement is read-only,
24
+ * how many rows it may return and how long it may run are decided by the API.
25
+ */
26
+ import type { PlatformApiClient } from '../../../core/index.js';
27
+ import type { TelemetryAdminConfig, TelemetryAssistantHandlers, TelemetryAssistantRequest, TelemetryConnection, TelemetryConnectionInput, TelemetryConnectionTestResult, TelemetryExportFormat, TelemetryExportResult, TelemetryPublicConfig, TelemetryQueryResult, TelemetrySchema, TelemetrySettingsUpdate, TelemetryStack, TelemetryStatus } from './telemetry.js';
28
+ import type { DashboardEvents, DashboardEventsQuery, DashboardFilters, DashboardMetricGroup, DashboardMetricGroupMeta, DashboardMetrics, DashboardMetricsQuery, DashboardQuery, DashboardSummary, DashboardTimeseries, DashboardTimeseriesPanel, DashboardTop, DashboardTopKind } from './telemetryDashboard.js';
29
+ /**
30
+ * Options a dashboard read takes.
31
+ *
32
+ * @stability experimental
33
+ */
34
+ export interface TelemetryRequestOptions {
35
+ /** Aborts the request (a superseded range, an unmount). */
36
+ signal?: AbortSignal;
37
+ }
38
+ /**
39
+ * The telemetry routes as methods. Build one with
40
+ * {@link createTelemetryClient}; inside a page, {@link useTelemetryClient}
41
+ * builds it from the platform host.
42
+ *
43
+ * @stability experimental
44
+ */
45
+ export interface TelemetryClient {
46
+ /** `GET /telemetry/config`: the feature flag every signed-in client reads. */
47
+ getTelemetryConfig(): Promise<TelemetryPublicConfig>;
48
+ /** `GET /admin/telemetry/config`: the settings plus provenance. */
49
+ getTelemetryAdminConfig(): Promise<TelemetryAdminConfig>;
50
+ /**
51
+ * `PUT /admin/telemetry/config`. `expectedVersion` travels as `If-Match`; a
52
+ * stale version answers 409.
53
+ */
54
+ updateTelemetryAdminConfig(settings: TelemetrySettingsUpdate, expectedVersion?: number): Promise<TelemetryAdminConfig>;
55
+ /** `GET /admin/telemetry/status`: a diagnosis, always 200. */
56
+ getTelemetryStatus(): Promise<TelemetryStatus>;
57
+ /** `GET /admin/telemetry/connection`. */
58
+ getTelemetryConnection(): Promise<TelemetryConnection>;
59
+ /** `PUT /admin/telemetry/connection`, `If-Match` from `expectedVersion`. */
60
+ updateTelemetryConnection(input: TelemetryConnectionInput, expectedVersion?: number): Promise<TelemetryConnection>;
61
+ /** `DELETE /admin/telemetry/connection`: the deployment default (or none) is in force again. */
62
+ resetTelemetryConnection(expectedVersion?: number): Promise<TelemetryConnection>;
63
+ /** `POST /admin/telemetry/connection/test`: a diagnosis, always 200. */
64
+ testTelemetryConnection(input: TelemetryConnectionInput): Promise<TelemetryConnectionTestResult>;
65
+ /** `GET /admin/telemetry/stack`. */
66
+ getTelemetryStack(): Promise<TelemetryStack>;
67
+ /** `POST /admin/telemetry/stack/deploy`: enqueue a (re)deploy of the telemetry services. */
68
+ deployTelemetryStack(): Promise<TelemetryStackDeployAccepted>;
69
+ /** `POST /admin/telemetry/query`. */
70
+ runTelemetryQuery(sql: string, options?: {
71
+ maxRows?: number;
72
+ signal?: AbortSignal;
73
+ }): Promise<TelemetryQueryResult>;
74
+ /** `GET /admin/telemetry/schema`. */
75
+ getTelemetrySchema(): Promise<TelemetrySchema>;
76
+ /**
77
+ * `POST /admin/telemetry/export`: fetched as a Blob through the app's
78
+ * transport, then handed to the browser as a download named by
79
+ * `Content-Disposition`. Resolves with the filename and the
80
+ * row-count/truncation headers. Rejects when the transport has no
81
+ * `postBlob`.
82
+ */
83
+ exportTelemetry(sql: string, format: TelemetryExportFormat): Promise<TelemetryExportResult>;
84
+ /**
85
+ * Stream one assistant turn. Resolves when the stream ends (or quietly on
86
+ * abort). Rejects with a `PlatformApiError` when a gate refused the request
87
+ * before the first byte (`TELEMETRY_ASSISTANT_DISABLED`, `AI_DISABLED`, ...),
88
+ * and when the transport has no `postSse`.
89
+ */
90
+ streamTelemetryAssistant(request: TelemetryAssistantRequest, handlers?: TelemetryAssistantHandlers): Promise<void>;
91
+ /** `GET …/dashboard/summary`. */
92
+ getDashboardSummary(query: DashboardQuery, options?: TelemetryRequestOptions): Promise<DashboardSummary>;
93
+ /** `GET …/dashboard/timeseries?panel=…`. */
94
+ getDashboardTimeseries<P extends DashboardTimeseriesPanel>(panel: P, query: DashboardQuery, options?: TelemetryRequestOptions): Promise<DashboardTimeseries<P>>;
95
+ /** `GET …/dashboard/top?kind=…`. */
96
+ getDashboardTop<K extends DashboardTopKind>(kind: K, query: DashboardQuery, options?: TelemetryRequestOptions): Promise<DashboardTop<K>>;
97
+ /** `GET …/dashboard/events`. */
98
+ getDashboardEvents(query: DashboardEventsQuery, options?: TelemetryRequestOptions): Promise<DashboardEvents>;
99
+ /** `GET …/dashboard/filters`. */
100
+ getDashboardFilters(query: DashboardQuery, options?: TelemetryRequestOptions): Promise<DashboardFilters>;
101
+ /** `GET …/dashboard/metrics?group=…`: one metric group's tiles, series and tables. */
102
+ getDashboardMetrics(group: DashboardMetricGroup, query: DashboardMetricsQuery, options?: TelemetryRequestOptions): Promise<DashboardMetrics>;
103
+ /**
104
+ * `GET …/dashboard/metric-groups`: every registered metric group, in
105
+ * dashboard order (the platform's and the app's own).
106
+ */
107
+ getDashboardMetricGroups(options?: TelemetryRequestOptions): Promise<DashboardMetricGroupMeta[]>;
108
+ }
109
+ /**
110
+ * What `POST /admin/telemetry/stack/deploy` answers (202).
111
+ *
112
+ * @stability experimental
113
+ */
114
+ export interface TelemetryStackDeployAccepted {
115
+ /** The queued `telemetry.stack.deploy` job. */
116
+ jobId: string;
117
+ }
118
+ /**
119
+ * The telemetry routes over the app's transport.
120
+ *
121
+ * @param api - the app's transport (`usePlatformApi()`, or any `PlatformApiClient`).
122
+ * @returns a {@link TelemetryClient}.
123
+ *
124
+ * @example
125
+ * ```ts
126
+ * const telemetry = createTelemetryClient(host.api);
127
+ * const status = await telemetry.getTelemetryStatus();
128
+ * ```
129
+ *
130
+ * @stability experimental
131
+ */
132
+ export declare function createTelemetryClient(api: PlatformApiClient): TelemetryClient;
133
+ /**
134
+ * The telemetry client over the platform host's transport, memoised on it (a
135
+ * stable transport gives a stable client, so hooks keyed on it never refetch
136
+ * on a re-render).
137
+ *
138
+ * @returns a {@link TelemetryClient}.
139
+ * @throws Error outside a `PlatformHostProvider`.
140
+ *
141
+ * @stability experimental
142
+ */
143
+ export declare function useTelemetryClient(): TelemetryClient;
144
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/headless/services/client.ts"],"names":[],"mappings":"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"}