@flanksource/clicky-ui 0.3.54 → 0.3.56

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 (999) hide show
  1. package/NOTICE.md +6 -0
  2. package/dist/ai.cjs +6 -0
  3. package/dist/ai.js +3 -1
  4. package/dist/chat.cjs +2 -0
  5. package/dist/chat.d.ts +1 -0
  6. package/dist/chat.d.ts.map +1 -1
  7. package/dist/chat.js +2 -1
  8. package/dist/comments/CommentCard.cjs +37 -7
  9. package/dist/comments/CommentCard.cjs.map +1 -1
  10. package/dist/comments/CommentCard.d.ts +11 -1
  11. package/dist/comments/CommentCard.d.ts.map +1 -1
  12. package/dist/comments/CommentCard.js +37 -7
  13. package/dist/comments/CommentCard.js.map +1 -1
  14. package/dist/comments/CommentCardParts.cjs +9 -4
  15. package/dist/comments/CommentCardParts.cjs.map +1 -1
  16. package/dist/comments/CommentCardParts.d.ts.map +1 -1
  17. package/dist/comments/CommentCardParts.js +9 -4
  18. package/dist/comments/CommentCardParts.js.map +1 -1
  19. package/dist/comments/CommentComposer.cjs +8 -8
  20. package/dist/comments/CommentComposer.cjs.map +1 -1
  21. package/dist/comments/CommentComposer.d.ts.map +1 -1
  22. package/dist/comments/CommentComposer.js +8 -8
  23. package/dist/comments/CommentComposer.js.map +1 -1
  24. package/dist/comments/CommentProvider.cjs +5 -1
  25. package/dist/comments/CommentProvider.cjs.map +1 -1
  26. package/dist/comments/CommentProvider.d.ts +1 -1
  27. package/dist/comments/CommentProvider.d.ts.map +1 -1
  28. package/dist/comments/CommentProvider.js +5 -1
  29. package/dist/comments/CommentProvider.js.map +1 -1
  30. package/dist/comments/CommentSidePanel.cjs +17 -11
  31. package/dist/comments/CommentSidePanel.cjs.map +1 -1
  32. package/dist/comments/CommentSidePanel.d.ts +6 -0
  33. package/dist/comments/CommentSidePanel.d.ts.map +1 -1
  34. package/dist/comments/CommentSidePanel.js +17 -11
  35. package/dist/comments/CommentSidePanel.js.map +1 -1
  36. package/dist/comments/CommentThread.cjs +4 -1
  37. package/dist/comments/CommentThread.cjs.map +1 -1
  38. package/dist/comments/CommentThread.d.ts +4 -1
  39. package/dist/comments/CommentThread.d.ts.map +1 -1
  40. package/dist/comments/CommentThread.js +4 -1
  41. package/dist/comments/CommentThread.js.map +1 -1
  42. package/dist/comments/CommentThreadList.cjs +6 -3
  43. package/dist/comments/CommentThreadList.cjs.map +1 -1
  44. package/dist/comments/CommentThreadList.d.ts +7 -2
  45. package/dist/comments/CommentThreadList.d.ts.map +1 -1
  46. package/dist/comments/CommentThreadList.js +6 -3
  47. package/dist/comments/CommentThreadList.js.map +1 -1
  48. package/dist/comments/MentionTextarea.cjs +1 -1
  49. package/dist/comments/MentionTextarea.cjs.map +1 -1
  50. package/dist/comments/MentionTextarea.d.ts.map +1 -1
  51. package/dist/comments/MentionTextarea.js +1 -1
  52. package/dist/comments/MentionTextarea.js.map +1 -1
  53. package/dist/comments/comment-assign.cjs +68 -0
  54. package/dist/comments/comment-assign.cjs.map +1 -0
  55. package/dist/comments/comment-assign.d.ts +31 -0
  56. package/dist/comments/comment-assign.d.ts.map +1 -0
  57. package/dist/comments/comment-assign.js +67 -0
  58. package/dist/comments/comment-assign.js.map +1 -0
  59. package/dist/comments/comment-types.cjs.map +1 -1
  60. package/dist/comments/comment-types.d.ts +39 -0
  61. package/dist/comments/comment-types.d.ts.map +1 -1
  62. package/dist/comments/comment-types.js.map +1 -1
  63. package/dist/comments/comment-utils.cjs +2 -0
  64. package/dist/comments/comment-utils.cjs.map +1 -1
  65. package/dist/comments/comment-utils.d.ts +2 -0
  66. package/dist/comments/comment-utils.d.ts.map +1 -1
  67. package/dist/comments/comment-utils.js +2 -0
  68. package/dist/comments/comment-utils.js.map +1 -1
  69. package/dist/comments.cjs +3 -0
  70. package/dist/comments.d.ts +1 -0
  71. package/dist/comments.d.ts.map +1 -1
  72. package/dist/comments.js +2 -1
  73. package/dist/components/ComboboxMenu.cjs +23 -13
  74. package/dist/components/ComboboxMenu.cjs.map +1 -1
  75. package/dist/components/ComboboxMenu.d.ts.map +1 -1
  76. package/dist/components/ComboboxMenu.js +23 -13
  77. package/dist/components/ComboboxMenu.js.map +1 -1
  78. package/dist/components/FilterBar.cjs +29 -6
  79. package/dist/components/FilterBar.cjs.map +1 -1
  80. package/dist/components/FilterBar.d.ts +3 -1
  81. package/dist/components/FilterBar.d.ts.map +1 -1
  82. package/dist/components/FilterBar.js +29 -6
  83. package/dist/components/FilterBar.js.map +1 -1
  84. package/dist/components/ItemActions.cjs +1 -1
  85. package/dist/components/ItemActions.cjs.map +1 -1
  86. package/dist/components/ItemActions.js +1 -1
  87. package/dist/components/ItemActions.js.map +1 -1
  88. package/dist/components/ListMenu.cjs +33 -3
  89. package/dist/components/ListMenu.cjs.map +1 -1
  90. package/dist/components/ListMenu.d.ts +4 -1
  91. package/dist/components/ListMenu.d.ts.map +1 -1
  92. package/dist/components/ListMenu.js +33 -3
  93. package/dist/components/ListMenu.js.map +1 -1
  94. package/dist/components/ListMenuItems.cjs +80 -0
  95. package/dist/components/ListMenuItems.cjs.map +1 -0
  96. package/dist/components/ListMenuItems.d.ts +8 -0
  97. package/dist/components/ListMenuItems.d.ts.map +1 -0
  98. package/dist/components/ListMenuItems.js +80 -0
  99. package/dist/components/ListMenuItems.js.map +1 -0
  100. package/dist/components/LocalPathPicker.cjs +182 -0
  101. package/dist/components/LocalPathPicker.cjs.map +1 -0
  102. package/dist/components/LocalPathPicker.d.ts +11 -0
  103. package/dist/components/LocalPathPicker.d.ts.map +1 -0
  104. package/dist/components/LocalPathPicker.js +182 -0
  105. package/dist/components/LocalPathPicker.js.map +1 -0
  106. package/dist/components/LocalPathTree.cjs +89 -0
  107. package/dist/components/LocalPathTree.cjs.map +1 -0
  108. package/dist/components/LocalPathTree.d.ts +9 -0
  109. package/dist/components/LocalPathTree.d.ts.map +1 -0
  110. package/dist/components/LocalPathTree.js +89 -0
  111. package/dist/components/LocalPathTree.js.map +1 -0
  112. package/dist/components/RangeSlider.cjs +10 -30
  113. package/dist/components/RangeSlider.cjs.map +1 -1
  114. package/dist/components/RangeSlider.d.ts.map +1 -1
  115. package/dist/components/RangeSlider.js +4 -24
  116. package/dist/components/RangeSlider.js.map +1 -1
  117. package/dist/components/Slider.cjs +79 -0
  118. package/dist/components/Slider.cjs.map +1 -0
  119. package/dist/components/Slider.d.ts +23 -0
  120. package/dist/components/Slider.d.ts.map +1 -0
  121. package/dist/components/Slider.js +79 -0
  122. package/dist/components/Slider.js.map +1 -0
  123. package/dist/components/combobox-types.d.ts +4 -1
  124. package/dist/components/combobox-types.d.ts.map +1 -1
  125. package/dist/components/filter-bar-field-utils.cjs +3 -5
  126. package/dist/components/filter-bar-field-utils.cjs.map +1 -1
  127. package/dist/components/filter-bar-field-utils.d.ts.map +1 -1
  128. package/dist/components/filter-bar-field-utils.js +3 -5
  129. package/dist/components/filter-bar-field-utils.js.map +1 -1
  130. package/dist/components/filter-bar-tree-model.cjs +22 -0
  131. package/dist/components/filter-bar-tree-model.cjs.map +1 -0
  132. package/dist/components/filter-bar-tree-model.d.ts +33 -0
  133. package/dist/components/filter-bar-tree-model.d.ts.map +1 -0
  134. package/dist/components/filter-bar-tree-model.js +21 -0
  135. package/dist/components/filter-bar-tree-model.js.map +1 -0
  136. package/dist/components/filter-bar-tree.cjs +84 -0
  137. package/dist/components/filter-bar-tree.cjs.map +1 -0
  138. package/dist/components/filter-bar-tree.d.ts +7 -0
  139. package/dist/components/filter-bar-tree.d.ts.map +1 -0
  140. package/dist/components/filter-bar-tree.js +84 -0
  141. package/dist/components/filter-bar-tree.js.map +1 -0
  142. package/dist/components/json-schema-form-debug-glyph-map.cjs +2 -0
  143. package/dist/components/json-schema-form-debug-glyph-map.cjs.map +1 -1
  144. package/dist/components/json-schema-form-debug-glyph-map.d.ts.map +1 -1
  145. package/dist/components/json-schema-form-debug-glyph-map.js +2 -0
  146. package/dist/components/json-schema-form-debug-glyph-map.js.map +1 -1
  147. package/dist/components/json-schema-form-help-links.cjs +18 -0
  148. package/dist/components/json-schema-form-help-links.cjs.map +1 -0
  149. package/dist/components/json-schema-form-help-links.d.ts +5 -0
  150. package/dist/components/json-schema-form-help-links.d.ts.map +1 -0
  151. package/dist/components/json-schema-form-help-links.js +18 -0
  152. package/dist/components/json-schema-form-help-links.js.map +1 -0
  153. package/dist/components/json-schema-form-help-model.cjs +7 -0
  154. package/dist/components/json-schema-form-help-model.cjs.map +1 -0
  155. package/dist/components/json-schema-form-help-model.d.ts +3 -0
  156. package/dist/components/json-schema-form-help-model.d.ts.map +1 -0
  157. package/dist/components/json-schema-form-help-model.js +7 -0
  158. package/dist/components/json-schema-form-help-model.js.map +1 -0
  159. package/dist/components/json-schema-form-json.cjs +48 -0
  160. package/dist/components/json-schema-form-json.cjs.map +1 -0
  161. package/dist/components/json-schema-form-json.d.ts +7 -0
  162. package/dist/components/json-schema-form-json.d.ts.map +1 -0
  163. package/dist/components/json-schema-form-json.js +48 -0
  164. package/dist/components/json-schema-form-json.js.map +1 -0
  165. package/dist/components/json-schema-form-layout.cjs +7 -5
  166. package/dist/components/json-schema-form-layout.cjs.map +1 -1
  167. package/dist/components/json-schema-form-layout.d.ts +2 -2
  168. package/dist/components/json-schema-form-layout.d.ts.map +1 -1
  169. package/dist/components/json-schema-form-layout.js +7 -5
  170. package/dist/components/json-schema-form-layout.js.map +1 -1
  171. package/dist/components/json-schema-form-object.cjs +2 -13
  172. package/dist/components/json-schema-form-object.cjs.map +1 -1
  173. package/dist/components/json-schema-form-object.d.ts.map +1 -1
  174. package/dist/components/json-schema-form-object.js +2 -13
  175. package/dist/components/json-schema-form-object.js.map +1 -1
  176. package/dist/components/json-schema-form-refs.cjs +1 -1
  177. package/dist/components/json-schema-form-refs.cjs.map +1 -1
  178. package/dist/components/json-schema-form-refs.d.ts.map +1 -1
  179. package/dist/components/json-schema-form-refs.js +1 -1
  180. package/dist/components/json-schema-form-refs.js.map +1 -1
  181. package/dist/components/json-schema-form-render.cjs +20 -6
  182. package/dist/components/json-schema-form-render.cjs.map +1 -1
  183. package/dist/components/json-schema-form-render.d.ts.map +1 -1
  184. package/dist/components/json-schema-form-render.js +20 -6
  185. package/dist/components/json-schema-form-render.js.map +1 -1
  186. package/dist/components/json-schema-form-resolve.cjs +22 -2
  187. package/dist/components/json-schema-form-resolve.cjs.map +1 -1
  188. package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
  189. package/dist/components/json-schema-form-resolve.js +22 -2
  190. package/dist/components/json-schema-form-resolve.js.map +1 -1
  191. package/dist/components/json-schema-form-types.d.ts +5 -1
  192. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  193. package/dist/components/json-schema-form-union-model.cjs +46 -0
  194. package/dist/components/json-schema-form-union-model.cjs.map +1 -0
  195. package/dist/components/json-schema-form-union-model.d.ts +6 -0
  196. package/dist/components/json-schema-form-union-model.d.ts.map +1 -0
  197. package/dist/components/json-schema-form-union-model.js +43 -0
  198. package/dist/components/json-schema-form-union-model.js.map +1 -0
  199. package/dist/components/json-schema-form-union.cjs +52 -0
  200. package/dist/components/json-schema-form-union.cjs.map +1 -0
  201. package/dist/components/json-schema-form-union.d.ts +7 -0
  202. package/dist/components/json-schema-form-union.d.ts.map +1 -0
  203. package/dist/components/json-schema-form-union.js +52 -0
  204. package/dist/components/json-schema-form-union.js.map +1 -0
  205. package/dist/components/list-menu-virtual.cjs +5 -0
  206. package/dist/components/list-menu-virtual.cjs.map +1 -0
  207. package/dist/components/list-menu-virtual.d.ts +12 -0
  208. package/dist/components/list-menu-virtual.d.ts.map +1 -0
  209. package/dist/components/list-menu-virtual.js +6 -0
  210. package/dist/components/list-menu-virtual.js.map +1 -0
  211. package/dist/components/local-path.cjs +12 -0
  212. package/dist/components/local-path.cjs.map +1 -0
  213. package/dist/components/local-path.d.ts +14 -0
  214. package/dist/components/local-path.d.ts.map +1 -0
  215. package/dist/components/local-path.js +12 -0
  216. package/dist/components/local-path.js.map +1 -0
  217. package/dist/components/slider-shared.cjs +32 -0
  218. package/dist/components/slider-shared.cjs.map +1 -0
  219. package/dist/components/slider-shared.d.ts +18 -0
  220. package/dist/components/slider-shared.d.ts.map +1 -0
  221. package/dist/components/slider-shared.js +27 -0
  222. package/dist/components/slider-shared.js.map +1 -0
  223. package/dist/components.cjs +8 -0
  224. package/dist/components.d.ts +6 -1
  225. package/dist/components.d.ts.map +1 -1
  226. package/dist/components.js +5 -1
  227. package/dist/connections/ConnectionsPage.cjs +51 -19
  228. package/dist/connections/ConnectionsPage.cjs.map +1 -1
  229. package/dist/connections/ConnectionsPage.d.ts +9 -1
  230. package/dist/connections/ConnectionsPage.d.ts.map +1 -1
  231. package/dist/connections/ConnectionsPage.js +52 -20
  232. package/dist/connections/ConnectionsPage.js.map +1 -1
  233. package/dist/connections/connectionDashboard.cjs +13 -8
  234. package/dist/connections/connectionDashboard.cjs.map +1 -1
  235. package/dist/connections/connectionDashboard.d.ts +8 -3
  236. package/dist/connections/connectionDashboard.d.ts.map +1 -1
  237. package/dist/connections/connectionDashboard.js +14 -9
  238. package/dist/connections/connectionDashboard.js.map +1 -1
  239. package/dist/connections/connectionDashboardModel.cjs.map +1 -1
  240. package/dist/connections/connectionDashboardModel.d.ts +4 -0
  241. package/dist/connections/connectionDashboardModel.d.ts.map +1 -1
  242. package/dist/connections/connectionDashboardModel.js.map +1 -1
  243. package/dist/connections/connectionDashboardRow.cjs +75 -55
  244. package/dist/connections/connectionDashboardRow.cjs.map +1 -1
  245. package/dist/connections/connectionDashboardRow.d.ts +3 -2
  246. package/dist/connections/connectionDashboardRow.d.ts.map +1 -1
  247. package/dist/connections/connectionDashboardRow.js +75 -55
  248. package/dist/connections/connectionDashboardRow.js.map +1 -1
  249. package/dist/connections/connectionNamespaceField.cjs +17 -0
  250. package/dist/connections/connectionNamespaceField.cjs.map +1 -0
  251. package/dist/connections/connectionNamespaceField.d.ts +10 -0
  252. package/dist/connections/connectionNamespaceField.d.ts.map +1 -0
  253. package/dist/connections/connectionNamespaceField.js +17 -0
  254. package/dist/connections/connectionNamespaceField.js.map +1 -0
  255. package/dist/connections/connectionSchemaFormExtensions.cjs +98 -0
  256. package/dist/connections/connectionSchemaFormExtensions.cjs.map +1 -0
  257. package/dist/connections/connectionSchemaFormExtensions.d.ts +41 -0
  258. package/dist/connections/connectionSchemaFormExtensions.d.ts.map +1 -0
  259. package/dist/connections/connectionSchemaFormExtensions.js +96 -0
  260. package/dist/connections/connectionSchemaFormExtensions.js.map +1 -0
  261. package/dist/connections/connectionsPageModel.cjs +11 -0
  262. package/dist/connections/connectionsPageModel.cjs.map +1 -1
  263. package/dist/connections/connectionsPageModel.d.ts +5 -0
  264. package/dist/connections/connectionsPageModel.d.ts.map +1 -1
  265. package/dist/connections/connectionsPageModel.js +11 -1
  266. package/dist/connections/connectionsPageModel.js.map +1 -1
  267. package/dist/connections.cjs +5 -0
  268. package/dist/connections.d.ts +2 -1
  269. package/dist/connections.d.ts.map +1 -1
  270. package/dist/connections.js +3 -2
  271. package/dist/data/AvatarBadge.cjs +3 -3
  272. package/dist/data/AvatarBadge.cjs.map +1 -1
  273. package/dist/data/AvatarBadge.js +3 -3
  274. package/dist/data/AvatarBadge.js.map +1 -1
  275. package/dist/data/CodeDiff.cjs +2 -0
  276. package/dist/data/CodeDiff.cjs.map +1 -1
  277. package/dist/data/CodeDiff.js +2 -0
  278. package/dist/data/CodeDiff.js.map +1 -1
  279. package/dist/data/DataTable.cjs +3 -2
  280. package/dist/data/DataTable.cjs.map +1 -1
  281. package/dist/data/DataTable.d.ts.map +1 -1
  282. package/dist/data/DataTable.js +3 -2
  283. package/dist/data/DataTable.js.map +1 -1
  284. package/dist/data/Gauge.cjs +1 -1
  285. package/dist/data/Gauge.cjs.map +1 -1
  286. package/dist/data/Gauge.js +1 -1
  287. package/dist/data/Gauge.js.map +1 -1
  288. package/dist/data/HighlightedTokens.cjs +2 -10
  289. package/dist/data/HighlightedTokens.cjs.map +1 -1
  290. package/dist/data/HighlightedTokens.d.ts.map +1 -1
  291. package/dist/data/HighlightedTokens.js +1 -9
  292. package/dist/data/HighlightedTokens.js.map +1 -1
  293. package/dist/data/Markdown.cjs +38 -11
  294. package/dist/data/Markdown.cjs.map +1 -1
  295. package/dist/data/Markdown.d.ts +9 -1
  296. package/dist/data/Markdown.d.ts.map +1 -1
  297. package/dist/data/Markdown.js +39 -12
  298. package/dist/data/Markdown.js.map +1 -1
  299. package/dist/data/MultiGaugeBar.cjs +157 -0
  300. package/dist/data/MultiGaugeBar.cjs.map +1 -0
  301. package/dist/data/MultiGaugeBar.d.ts +29 -0
  302. package/dist/data/MultiGaugeBar.d.ts.map +1 -0
  303. package/dist/data/MultiGaugeBar.js +157 -0
  304. package/dist/data/MultiGaugeBar.js.map +1 -0
  305. package/dist/data/OpenInFilesLink.cjs +27 -0
  306. package/dist/data/OpenInFilesLink.cjs.map +1 -0
  307. package/dist/data/OpenInFilesLink.d.ts +15 -0
  308. package/dist/data/OpenInFilesLink.d.ts.map +1 -0
  309. package/dist/data/OpenInFilesLink.js +27 -0
  310. package/dist/data/OpenInFilesLink.js.map +1 -0
  311. package/dist/data/ProgressBar.cjs +5 -3
  312. package/dist/data/ProgressBar.cjs.map +1 -1
  313. package/dist/data/ProgressBar.d.ts +5 -1
  314. package/dist/data/ProgressBar.d.ts.map +1 -1
  315. package/dist/data/ProgressBar.js +5 -3
  316. package/dist/data/ProgressBar.js.map +1 -1
  317. package/dist/data/ProgressBars.cjs +13 -5
  318. package/dist/data/ProgressBars.cjs.map +1 -1
  319. package/dist/data/ProgressBars.d.ts +6 -1
  320. package/dist/data/ProgressBars.d.ts.map +1 -1
  321. package/dist/data/ProgressBars.js +13 -5
  322. package/dist/data/ProgressBars.js.map +1 -1
  323. package/dist/data/Properties.cjs +3 -3
  324. package/dist/data/Properties.cjs.map +1 -1
  325. package/dist/data/Properties.js +3 -3
  326. package/dist/data/Properties.js.map +1 -1
  327. package/dist/data/TaskProgress.cjs +14 -6
  328. package/dist/data/TaskProgress.cjs.map +1 -1
  329. package/dist/data/TaskProgress.d.ts +3 -1
  330. package/dist/data/TaskProgress.d.ts.map +1 -1
  331. package/dist/data/TaskProgress.js +14 -6
  332. package/dist/data/TaskProgress.js.map +1 -1
  333. package/dist/data/TaskPrompts.cjs +96 -0
  334. package/dist/data/TaskPrompts.cjs.map +1 -0
  335. package/dist/data/TaskPrompts.d.ts +6 -0
  336. package/dist/data/TaskPrompts.d.ts.map +1 -0
  337. package/dist/data/TaskPrompts.js +96 -0
  338. package/dist/data/TaskPrompts.js.map +1 -0
  339. package/dist/data/TaskSnapshot.cjs.map +1 -1
  340. package/dist/data/TaskSnapshot.d.ts +3 -0
  341. package/dist/data/TaskSnapshot.d.ts.map +1 -1
  342. package/dist/data/TaskSnapshot.js.map +1 -1
  343. package/dist/data/TimeseriesCoreBars.cjs +7 -3
  344. package/dist/data/TimeseriesCoreBars.cjs.map +1 -1
  345. package/dist/data/TimeseriesCoreBars.d.ts.map +1 -1
  346. package/dist/data/TimeseriesCoreBars.js +8 -4
  347. package/dist/data/TimeseriesCoreBars.js.map +1 -1
  348. package/dist/data/TimeseriesGauge.cjs +12 -5
  349. package/dist/data/TimeseriesGauge.cjs.map +1 -1
  350. package/dist/data/TimeseriesGauge.d.ts.map +1 -1
  351. package/dist/data/TimeseriesGauge.js +13 -6
  352. package/dist/data/TimeseriesGauge.js.map +1 -1
  353. package/dist/data/TimeseriesPanel.cjs +10 -9
  354. package/dist/data/TimeseriesPanel.cjs.map +1 -1
  355. package/dist/data/TimeseriesPanel.d.ts +1 -1
  356. package/dist/data/TimeseriesPanel.d.ts.map +1 -1
  357. package/dist/data/TimeseriesPanel.js +11 -10
  358. package/dist/data/TimeseriesPanel.js.map +1 -1
  359. package/dist/data/TimeseriesPanel.model.cjs +62 -10
  360. package/dist/data/TimeseriesPanel.model.cjs.map +1 -1
  361. package/dist/data/TimeseriesPanel.model.d.ts +40 -1
  362. package/dist/data/TimeseriesPanel.model.d.ts.map +1 -1
  363. package/dist/data/TimeseriesPanel.model.js +62 -11
  364. package/dist/data/TimeseriesPanel.model.js.map +1 -1
  365. package/dist/data/WorkloadCard.cjs +7 -3
  366. package/dist/data/WorkloadCard.cjs.map +1 -1
  367. package/dist/data/WorkloadCard.d.ts +3 -1
  368. package/dist/data/WorkloadCard.d.ts.map +1 -1
  369. package/dist/data/WorkloadCard.js +7 -3
  370. package/dist/data/WorkloadCard.js.map +1 -1
  371. package/dist/data/WorkloadCard.model.cjs.map +1 -1
  372. package/dist/data/WorkloadCard.model.d.ts +2 -0
  373. package/dist/data/WorkloadCard.model.d.ts.map +1 -1
  374. package/dist/data/WorkloadCard.model.js.map +1 -1
  375. package/dist/data/ai/ChatWindow.placement.cjs +2 -1
  376. package/dist/data/ai/ChatWindow.placement.cjs.map +1 -1
  377. package/dist/data/ai/ChatWindow.placement.d.ts +1 -1
  378. package/dist/data/ai/ChatWindow.placement.d.ts.map +1 -1
  379. package/dist/data/ai/ChatWindow.placement.js +2 -1
  380. package/dist/data/ai/ChatWindow.placement.js.map +1 -1
  381. package/dist/data/ai/SpecRuntimeBar.cjs +2 -2
  382. package/dist/data/ai/SpecRuntimeBar.cjs.map +1 -1
  383. package/dist/data/ai/SpecRuntimeBar.d.ts +4 -1
  384. package/dist/data/ai/SpecRuntimeBar.d.ts.map +1 -1
  385. package/dist/data/ai/SpecRuntimeBar.js +2 -2
  386. package/dist/data/ai/SpecRuntimeBar.js.map +1 -1
  387. package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs +1 -1
  388. package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs.map +1 -1
  389. package/dist/data/ai/SpecRuntimeEditor/PromptSection.js +1 -1
  390. package/dist/data/ai/SpecRuntimeEditor/PromptSection.js.map +1 -1
  391. package/dist/data/ai/SpecRuntimeEditor.model.cjs +2 -2
  392. package/dist/data/ai/SpecRuntimeEditor.model.cjs.map +1 -1
  393. package/dist/data/ai/SpecRuntimeEditor.model.d.ts +2 -2
  394. package/dist/data/ai/SpecRuntimeEditor.model.d.ts.map +1 -1
  395. package/dist/data/ai/SpecRuntimeEditor.model.js +2 -2
  396. package/dist/data/ai/SpecRuntimeEditor.model.js.map +1 -1
  397. package/dist/data/ai/ThreadPicker.cjs +2 -2
  398. package/dist/data/ai/ThreadPicker.cjs.map +1 -1
  399. package/dist/data/ai/ThreadPicker.js +2 -2
  400. package/dist/data/ai/ThreadPicker.js.map +1 -1
  401. package/dist/data/ai/index.d.ts +2 -0
  402. package/dist/data/ai/index.d.ts.map +1 -1
  403. package/dist/data/ai/use-prompt-run-stream.cjs +126 -0
  404. package/dist/data/ai/use-prompt-run-stream.cjs.map +1 -0
  405. package/dist/data/ai/use-prompt-run-stream.d.ts +52 -0
  406. package/dist/data/ai/use-prompt-run-stream.d.ts.map +1 -0
  407. package/dist/data/ai/use-prompt-run-stream.js +126 -0
  408. package/dist/data/ai/use-prompt-run-stream.js.map +1 -0
  409. package/dist/data/cache-browser/CacheBrowser.cjs +1 -0
  410. package/dist/data/cache-browser/CacheBrowser.cjs.map +1 -1
  411. package/dist/data/cache-browser/CacheBrowser.d.ts.map +1 -1
  412. package/dist/data/cache-browser/CacheBrowser.js +1 -0
  413. package/dist/data/cache-browser/CacheBrowser.js.map +1 -1
  414. package/dist/data/charts/BarChart.cjs +194 -0
  415. package/dist/data/charts/BarChart.cjs.map +1 -0
  416. package/dist/data/charts/BarChart.d.ts +19 -0
  417. package/dist/data/charts/BarChart.d.ts.map +1 -0
  418. package/dist/data/charts/BarChart.js +194 -0
  419. package/dist/data/charts/BarChart.js.map +1 -0
  420. package/dist/data/charts/ChartLegend.cjs +54 -0
  421. package/dist/data/charts/ChartLegend.cjs.map +1 -0
  422. package/dist/data/charts/ChartLegend.d.ts +17 -0
  423. package/dist/data/charts/ChartLegend.d.ts.map +1 -0
  424. package/dist/data/charts/ChartLegend.js +54 -0
  425. package/dist/data/charts/ChartLegend.js.map +1 -0
  426. package/dist/data/charts/Sparkline.cjs +56 -0
  427. package/dist/data/charts/Sparkline.cjs.map +1 -0
  428. package/dist/data/charts/Sparkline.d.ts +15 -0
  429. package/dist/data/charts/Sparkline.d.ts.map +1 -0
  430. package/dist/data/charts/Sparkline.js +56 -0
  431. package/dist/data/charts/Sparkline.js.map +1 -0
  432. package/dist/data/charts/StackedBarChart.cjs +241 -0
  433. package/dist/data/charts/StackedBarChart.cjs.map +1 -0
  434. package/dist/data/charts/StackedBarChart.d.ts +20 -0
  435. package/dist/data/charts/StackedBarChart.d.ts.map +1 -0
  436. package/dist/data/charts/StackedBarChart.js +241 -0
  437. package/dist/data/charts/StackedBarChart.js.map +1 -0
  438. package/dist/data/charts/TrendChart.cjs +157 -0
  439. package/dist/data/charts/TrendChart.cjs.map +1 -0
  440. package/dist/data/charts/TrendChart.d.ts +20 -0
  441. package/dist/data/charts/TrendChart.d.ts.map +1 -0
  442. package/dist/data/charts/TrendChart.js +157 -0
  443. package/dist/data/charts/TrendChart.js.map +1 -0
  444. package/dist/data/charts/chart-marks.cjs +115 -0
  445. package/dist/data/charts/chart-marks.cjs.map +1 -0
  446. package/dist/data/charts/chart-marks.d.ts +39 -0
  447. package/dist/data/charts/chart-marks.d.ts.map +1 -0
  448. package/dist/data/charts/chart-marks.js +112 -0
  449. package/dist/data/charts/chart-marks.js.map +1 -0
  450. package/dist/data/charts/chart-palette.cjs +74 -0
  451. package/dist/data/charts/chart-palette.cjs.map +1 -0
  452. package/dist/data/charts/chart-palette.d.ts +58 -0
  453. package/dist/data/charts/chart-palette.d.ts.map +1 -0
  454. package/dist/data/charts/chart-palette.js +72 -0
  455. package/dist/data/charts/chart-palette.js.map +1 -0
  456. package/dist/data/charts/chart-scale.cjs +115 -0
  457. package/dist/data/charts/chart-scale.cjs.map +1 -0
  458. package/dist/data/charts/chart-scale.d.ts +41 -0
  459. package/dist/data/charts/chart-scale.d.ts.map +1 -0
  460. package/dist/data/charts/chart-scale.js +104 -0
  461. package/dist/data/charts/chart-scale.js.map +1 -0
  462. package/dist/data/charts/chart.test-utils.d.ts +7 -0
  463. package/dist/data/charts/chart.test-utils.d.ts.map +1 -0
  464. package/dist/data/charts/index.d.ts +7 -0
  465. package/dist/data/charts/index.d.ts.map +1 -0
  466. package/dist/data/chat/MessageActions.cjs +1 -1
  467. package/dist/data/chat/MessageActions.cjs.map +1 -1
  468. package/dist/data/chat/MessageActions.js +1 -1
  469. package/dist/data/chat/MessageActions.js.map +1 -1
  470. package/dist/data/diagnostics/DiagnosticsDetailPanel.cjs +1 -1
  471. package/dist/data/diagnostics/DiagnosticsDetailPanel.js +1 -1
  472. package/dist/data/diagnostics/DiagnosticsTree.cjs +1 -1
  473. package/dist/data/diagnostics/DiagnosticsTree.cjs.map +1 -1
  474. package/dist/data/diagnostics/DiagnosticsTree.js +1 -1
  475. package/dist/data/diagnostics/DiagnosticsTree.js.map +1 -1
  476. package/dist/data/diagnostics/FrameSourceWindow.cjs +9 -2
  477. package/dist/data/diagnostics/FrameSourceWindow.cjs.map +1 -1
  478. package/dist/data/diagnostics/FrameSourceWindow.d.ts +1 -1
  479. package/dist/data/diagnostics/FrameSourceWindow.d.ts.map +1 -1
  480. package/dist/data/diagnostics/FrameSourceWindow.js +9 -2
  481. package/dist/data/diagnostics/FrameSourceWindow.js.map +1 -1
  482. package/dist/data/diagnostics/ProblemActions.cjs +37 -0
  483. package/dist/data/diagnostics/ProblemActions.cjs.map +1 -0
  484. package/dist/data/diagnostics/ProblemActions.d.ts +6 -0
  485. package/dist/data/diagnostics/ProblemActions.d.ts.map +1 -0
  486. package/dist/data/diagnostics/ProblemActions.js +37 -0
  487. package/dist/data/diagnostics/ProblemActions.js.map +1 -0
  488. package/dist/data/diagnostics/ProblemFacet.cjs +33 -0
  489. package/dist/data/diagnostics/ProblemFacet.cjs.map +1 -0
  490. package/dist/data/diagnostics/ProblemFacet.d.ts +9 -0
  491. package/dist/data/diagnostics/ProblemFacet.d.ts.map +1 -0
  492. package/dist/data/diagnostics/ProblemFacet.js +33 -0
  493. package/dist/data/diagnostics/ProblemFacet.js.map +1 -0
  494. package/dist/data/diagnostics/ProblemRow.cjs +62 -0
  495. package/dist/data/diagnostics/ProblemRow.cjs.map +1 -0
  496. package/dist/data/diagnostics/ProblemRow.d.ts +14 -0
  497. package/dist/data/diagnostics/ProblemRow.d.ts.map +1 -0
  498. package/dist/data/diagnostics/ProblemRow.js +62 -0
  499. package/dist/data/diagnostics/ProblemRow.js.map +1 -0
  500. package/dist/data/diagnostics/ProblemViewOptions.cjs +18 -0
  501. package/dist/data/diagnostics/ProblemViewOptions.cjs.map +1 -0
  502. package/dist/data/diagnostics/ProblemViewOptions.d.ts +6 -0
  503. package/dist/data/diagnostics/ProblemViewOptions.d.ts.map +1 -0
  504. package/dist/data/diagnostics/ProblemViewOptions.js +18 -0
  505. package/dist/data/diagnostics/ProblemViewOptions.js.map +1 -0
  506. package/dist/data/diagnostics/StackFrameRow.cjs +1 -1
  507. package/dist/data/diagnostics/StackFrameRow.cjs.map +1 -1
  508. package/dist/data/diagnostics/StackFrameRow.js +1 -1
  509. package/dist/data/diagnostics/StackFrameRow.js.map +1 -1
  510. package/dist/data/diagnostics/diagnostic-identity.cjs +14 -0
  511. package/dist/data/diagnostics/diagnostic-identity.cjs.map +1 -0
  512. package/dist/data/diagnostics/diagnostic-identity.d.ts +3 -0
  513. package/dist/data/diagnostics/diagnostic-identity.d.ts.map +1 -0
  514. package/dist/data/diagnostics/diagnostic-identity.js +14 -0
  515. package/dist/data/diagnostics/diagnostic-identity.js.map +1 -0
  516. package/dist/data/diagnostics/use-problem-expansion.cjs +16 -0
  517. package/dist/data/diagnostics/use-problem-expansion.cjs.map +1 -0
  518. package/dist/data/diagnostics/use-problem-expansion.d.ts +3 -0
  519. package/dist/data/diagnostics/use-problem-expansion.d.ts.map +1 -0
  520. package/dist/data/diagnostics/use-problem-expansion.js +16 -0
  521. package/dist/data/diagnostics/use-problem-expansion.js.map +1 -0
  522. package/dist/data/git/GitChangeList.cjs +9 -6
  523. package/dist/data/git/GitChangeList.cjs.map +1 -1
  524. package/dist/data/git/GitChangeList.d.ts +6 -0
  525. package/dist/data/git/GitChangeList.d.ts.map +1 -1
  526. package/dist/data/git/GitChangeList.js +9 -6
  527. package/dist/data/git/GitChangeList.js.map +1 -1
  528. package/dist/data/git/pickers/GitPickersDemo.d.ts.map +1 -1
  529. package/dist/data/git/pickers/ReferencePicker.cjs +1 -0
  530. package/dist/data/git/pickers/ReferencePicker.cjs.map +1 -1
  531. package/dist/data/git/pickers/ReferencePicker.js +1 -0
  532. package/dist/data/git/pickers/ReferencePicker.js.map +1 -1
  533. package/dist/data/lint/LintDetail.cjs +230 -189
  534. package/dist/data/lint/LintDetail.cjs.map +1 -1
  535. package/dist/data/lint/LintDetail.d.ts +25 -3
  536. package/dist/data/lint/LintDetail.d.ts.map +1 -1
  537. package/dist/data/lint/LintDetail.js +231 -192
  538. package/dist/data/lint/LintDetail.js.map +1 -1
  539. package/dist/data/lint/LintFilterBar.cjs +78 -83
  540. package/dist/data/lint/LintFilterBar.cjs.map +1 -1
  541. package/dist/data/lint/LintFilterBar.d.ts +23 -6
  542. package/dist/data/lint/LintFilterBar.d.ts.map +1 -1
  543. package/dist/data/lint/LintFilterBar.js +78 -85
  544. package/dist/data/lint/LintFilterBar.js.map +1 -1
  545. package/dist/data/lint/LintIgnoreMenu.cjs +59 -0
  546. package/dist/data/lint/LintIgnoreMenu.cjs.map +1 -0
  547. package/dist/data/lint/LintIgnoreMenu.d.ts +20 -0
  548. package/dist/data/lint/LintIgnoreMenu.d.ts.map +1 -0
  549. package/dist/data/lint/LintIgnoreMenu.js +58 -0
  550. package/dist/data/lint/LintIgnoreMenu.js.map +1 -0
  551. package/dist/data/lint/LintResults.cjs +59 -14
  552. package/dist/data/lint/LintResults.cjs.map +1 -1
  553. package/dist/data/lint/LintResults.d.ts +25 -1
  554. package/dist/data/lint/LintResults.d.ts.map +1 -1
  555. package/dist/data/lint/LintResults.fixtures.d.ts +19 -0
  556. package/dist/data/lint/LintResults.fixtures.d.ts.map +1 -1
  557. package/dist/data/lint/LintResults.js +60 -15
  558. package/dist/data/lint/LintResults.js.map +1 -1
  559. package/dist/data/lint/LintTable.cjs +156 -0
  560. package/dist/data/lint/LintTable.cjs.map +1 -0
  561. package/dist/data/lint/LintTable.d.ts +13 -0
  562. package/dist/data/lint/LintTable.d.ts.map +1 -0
  563. package/dist/data/lint/LintTable.js +156 -0
  564. package/dist/data/lint/LintTable.js.map +1 -0
  565. package/dist/data/lint/LintTreeNode.cjs +42 -19
  566. package/dist/data/lint/LintTreeNode.cjs.map +1 -1
  567. package/dist/data/lint/LintTreeNode.d.ts +7 -2
  568. package/dist/data/lint/LintTreeNode.d.ts.map +1 -1
  569. package/dist/data/lint/LintTreeNode.js +44 -21
  570. package/dist/data/lint/LintTreeNode.js.map +1 -1
  571. package/dist/data/lint/ViolationSnippet.cjs +113 -0
  572. package/dist/data/lint/ViolationSnippet.cjs.map +1 -0
  573. package/dist/data/lint/ViolationSnippet.d.ts +20 -0
  574. package/dist/data/lint/ViolationSnippet.d.ts.map +1 -0
  575. package/dist/data/lint/ViolationSnippet.js +112 -0
  576. package/dist/data/lint/ViolationSnippet.js.map +1 -0
  577. package/dist/data/lint/actions.cjs +44 -16
  578. package/dist/data/lint/actions.cjs.map +1 -1
  579. package/dist/data/lint/actions.d.ts +7 -3
  580. package/dist/data/lint/actions.d.ts.map +1 -1
  581. package/dist/data/lint/actions.js +44 -16
  582. package/dist/data/lint/actions.js.map +1 -1
  583. package/dist/data/lint/grouping.cjs +105 -8
  584. package/dist/data/lint/grouping.cjs.map +1 -1
  585. package/dist/data/lint/grouping.d.ts +21 -1
  586. package/dist/data/lint/grouping.d.ts.map +1 -1
  587. package/dist/data/lint/grouping.js +105 -10
  588. package/dist/data/lint/grouping.js.map +1 -1
  589. package/dist/data/lint/ignore-menu-items.cjs +18 -0
  590. package/dist/data/lint/ignore-menu-items.cjs.map +1 -0
  591. package/dist/data/lint/ignore-menu-items.d.ts +6 -0
  592. package/dist/data/lint/ignore-menu-items.d.ts.map +1 -0
  593. package/dist/data/lint/ignore-menu-items.js +17 -0
  594. package/dist/data/lint/ignore-menu-items.js.map +1 -0
  595. package/dist/data/lint/index.d.ts +7 -5
  596. package/dist/data/lint/index.d.ts.map +1 -1
  597. package/dist/data/lint/stats.cjs +19 -4
  598. package/dist/data/lint/stats.cjs.map +1 -1
  599. package/dist/data/lint/stats.d.ts +13 -3
  600. package/dist/data/lint/stats.d.ts.map +1 -1
  601. package/dist/data/lint/stats.js +17 -5
  602. package/dist/data/lint/stats.js.map +1 -1
  603. package/dist/data/lint/types.cjs +8 -0
  604. package/dist/data/lint/types.cjs.map +1 -1
  605. package/dist/data/lint/types.d.ts +47 -0
  606. package/dist/data/lint/types.d.ts.map +1 -1
  607. package/dist/data/lint/types.js +8 -1
  608. package/dist/data/lint/types.js.map +1 -1
  609. package/dist/data/lint/violation-menu-items.cjs +31 -0
  610. package/dist/data/lint/violation-menu-items.cjs.map +1 -0
  611. package/dist/data/lint/violation-menu-items.d.ts +12 -0
  612. package/dist/data/lint/violation-menu-items.d.ts.map +1 -0
  613. package/dist/data/lint/violation-menu-items.js +31 -0
  614. package/dist/data/lint/violation-menu-items.js.map +1 -0
  615. package/dist/data/markdown-source-blocks.cjs +38 -0
  616. package/dist/data/markdown-source-blocks.cjs.map +1 -0
  617. package/dist/data/markdown-source-blocks.d.ts +32 -0
  618. package/dist/data/markdown-source-blocks.d.ts.map +1 -0
  619. package/dist/data/markdown-source-blocks.js +35 -0
  620. package/dist/data/markdown-source-blocks.js.map +1 -0
  621. package/dist/data/test-runner/FilterFacet.cjs +52 -0
  622. package/dist/data/test-runner/FilterFacet.cjs.map +1 -0
  623. package/dist/data/test-runner/FilterFacet.d.ts +13 -0
  624. package/dist/data/test-runner/FilterFacet.d.ts.map +1 -0
  625. package/dist/data/test-runner/FilterFacet.js +52 -0
  626. package/dist/data/test-runner/FilterFacet.js.map +1 -0
  627. package/dist/data/test-runner/MatrixMarks.cjs +42 -40
  628. package/dist/data/test-runner/MatrixMarks.cjs.map +1 -1
  629. package/dist/data/test-runner/MatrixMarks.d.ts +20 -4
  630. package/dist/data/test-runner/MatrixMarks.d.ts.map +1 -1
  631. package/dist/data/test-runner/MatrixMarks.js +43 -42
  632. package/dist/data/test-runner/MatrixMarks.js.map +1 -1
  633. package/dist/data/test-runner/TestAttemptDetail.cjs +1 -1
  634. package/dist/data/test-runner/TestAttemptDetail.js +1 -1
  635. package/dist/data/test-runner/TestDetailPanel.cjs +11 -0
  636. package/dist/data/test-runner/TestDetailPanel.cjs.map +1 -1
  637. package/dist/data/test-runner/TestDetailPanel.d.ts.map +1 -1
  638. package/dist/data/test-runner/TestDetailPanel.js +11 -0
  639. package/dist/data/test-runner/TestDetailPanel.js.map +1 -1
  640. package/dist/data/test-runner/TestFilterBar.cjs +3 -44
  641. package/dist/data/test-runner/TestFilterBar.cjs.map +1 -1
  642. package/dist/data/test-runner/TestFilterBar.d.ts.map +1 -1
  643. package/dist/data/test-runner/TestFilterBar.js +3 -44
  644. package/dist/data/test-runner/TestFilterBar.js.map +1 -1
  645. package/dist/data/test-runner/TestRunner.cjs +3 -1
  646. package/dist/data/test-runner/TestRunner.cjs.map +1 -1
  647. package/dist/data/test-runner/TestRunner.d.ts +7 -1
  648. package/dist/data/test-runner/TestRunner.d.ts.map +1 -1
  649. package/dist/data/test-runner/TestRunner.js +3 -1
  650. package/dist/data/test-runner/TestRunner.js.map +1 -1
  651. package/dist/data/test-runner/context.cjs.map +1 -1
  652. package/dist/data/test-runner/context.d.ts +3 -0
  653. package/dist/data/test-runner/context.d.ts.map +1 -1
  654. package/dist/data/test-runner/context.js.map +1 -1
  655. package/dist/data/test-runner/index.d.ts +2 -2
  656. package/dist/data/test-runner/index.d.ts.map +1 -1
  657. package/dist/data/test-runner/matrix-marks.cjs +2 -11
  658. package/dist/data/test-runner/matrix-marks.cjs.map +1 -1
  659. package/dist/data/test-runner/matrix-marks.d.ts +2 -4
  660. package/dist/data/test-runner/matrix-marks.d.ts.map +1 -1
  661. package/dist/data/test-runner/matrix-marks.js +3 -11
  662. package/dist/data/test-runner/matrix-marks.js.map +1 -1
  663. package/dist/data/test-runner/types.d.ts +2 -0
  664. package/dist/data/test-runner/types.d.ts.map +1 -1
  665. package/dist/data/timeseries-query.cjs +98 -2
  666. package/dist/data/timeseries-query.cjs.map +1 -1
  667. package/dist/data/timeseries-query.d.ts +31 -5
  668. package/dist/data/timeseries-query.d.ts.map +1 -1
  669. package/dist/data/timeseries-query.js +98 -3
  670. package/dist/data/timeseries-query.js.map +1 -1
  671. package/dist/data/timeseries-stream-provider.cjs +38 -0
  672. package/dist/data/timeseries-stream-provider.cjs.map +1 -0
  673. package/dist/data/timeseries-stream-provider.d.ts +26 -0
  674. package/dist/data/timeseries-stream-provider.d.ts.map +1 -0
  675. package/dist/data/timeseries-stream-provider.js +38 -0
  676. package/dist/data/timeseries-stream-provider.js.map +1 -0
  677. package/dist/data/timeseries-stream.cjs +304 -0
  678. package/dist/data/timeseries-stream.cjs.map +1 -0
  679. package/dist/data/timeseries-stream.d.ts +81 -0
  680. package/dist/data/timeseries-stream.d.ts.map +1 -0
  681. package/dist/data/timeseries-stream.fixtures.d.ts +36 -0
  682. package/dist/data/timeseries-stream.fixtures.d.ts.map +1 -0
  683. package/dist/data/timeseries-stream.js +296 -0
  684. package/dist/data/timeseries-stream.js.map +1 -0
  685. package/dist/data/token-style.cjs +13 -0
  686. package/dist/data/token-style.cjs.map +1 -0
  687. package/dist/data/token-style.d.ts +4 -0
  688. package/dist/data/token-style.d.ts.map +1 -0
  689. package/dist/data/token-style.js +13 -0
  690. package/dist/data/token-style.js.map +1 -0
  691. package/dist/data/traces/ProcessTraceDetail.cjs +1 -1
  692. package/dist/data/traces/ProcessTraceDetail.js +1 -1
  693. package/dist/data/traces/index.d.ts +1 -1
  694. package/dist/data/traces/index.d.ts.map +1 -1
  695. package/dist/data/use-data-table-virtual.d.ts +1 -1
  696. package/dist/data/version-info.cjs +3 -3
  697. package/dist/data/version-info.js +3 -3
  698. package/dist/data/workload-panel/MemoryStack.cjs +49 -0
  699. package/dist/data/workload-panel/MemoryStack.cjs.map +1 -0
  700. package/dist/data/workload-panel/MemoryStack.d.ts +11 -0
  701. package/dist/data/workload-panel/MemoryStack.d.ts.map +1 -0
  702. package/dist/data/workload-panel/MemoryStack.js +48 -0
  703. package/dist/data/workload-panel/MemoryStack.js.map +1 -0
  704. package/dist/data/workload-panel/Metrics.cjs +197 -0
  705. package/dist/data/workload-panel/Metrics.cjs.map +1 -0
  706. package/dist/data/workload-panel/Metrics.d.ts +11 -0
  707. package/dist/data/workload-panel/Metrics.d.ts.map +1 -0
  708. package/dist/data/workload-panel/Metrics.js +196 -0
  709. package/dist/data/workload-panel/Metrics.js.map +1 -0
  710. package/dist/data/workload-panel/WorkloadPanel.cjs +66 -0
  711. package/dist/data/workload-panel/WorkloadPanel.cjs.map +1 -0
  712. package/dist/data/workload-panel/WorkloadPanel.d.ts +3 -0
  713. package/dist/data/workload-panel/WorkloadPanel.d.ts.map +1 -0
  714. package/dist/data/workload-panel/WorkloadPanel.js +66 -0
  715. package/dist/data/workload-panel/WorkloadPanel.js.map +1 -0
  716. package/dist/data/workload-panel/fixtures.d.ts +60 -0
  717. package/dist/data/workload-panel/fixtures.d.ts.map +1 -0
  718. package/dist/data/workload-panel/model.cjs +137 -0
  719. package/dist/data/workload-panel/model.cjs.map +1 -0
  720. package/dist/data/workload-panel/model.d.ts +53 -0
  721. package/dist/data/workload-panel/model.d.ts.map +1 -0
  722. package/dist/data/workload-panel/model.js +133 -0
  723. package/dist/data/workload-panel/model.js.map +1 -0
  724. package/dist/data/workload-panel/types.d.ts +56 -0
  725. package/dist/data/workload-panel/types.d.ts.map +1 -0
  726. package/dist/data.cjs +58 -7
  727. package/dist/data.d.ts +9 -1
  728. package/dist/data.d.ts.map +1 -1
  729. package/dist/data.js +29 -12
  730. package/dist/file-findings/AnnotatedCode.cjs +243 -0
  731. package/dist/file-findings/AnnotatedCode.cjs.map +1 -0
  732. package/dist/file-findings/AnnotatedCode.d.ts +30 -0
  733. package/dist/file-findings/AnnotatedCode.d.ts.map +1 -0
  734. package/dist/file-findings/AnnotatedCode.js +243 -0
  735. package/dist/file-findings/AnnotatedCode.js.map +1 -0
  736. package/dist/file-findings/FileFindingsView.cjs +213 -0
  737. package/dist/file-findings/FileFindingsView.cjs.map +1 -0
  738. package/dist/file-findings/FileFindingsView.d.ts +35 -0
  739. package/dist/file-findings/FileFindingsView.d.ts.map +1 -0
  740. package/dist/file-findings/FileFindingsView.js +213 -0
  741. package/dist/file-findings/FileFindingsView.js.map +1 -0
  742. package/dist/file-findings/LazyAnnotatedCode.cjs +22 -0
  743. package/dist/file-findings/LazyAnnotatedCode.cjs.map +1 -0
  744. package/dist/file-findings/LazyAnnotatedCode.d.ts +5 -0
  745. package/dist/file-findings/LazyAnnotatedCode.d.ts.map +1 -0
  746. package/dist/file-findings/LazyAnnotatedCode.js +22 -0
  747. package/dist/file-findings/LazyAnnotatedCode.js.map +1 -0
  748. package/dist/file-findings/adapters.cjs +155 -0
  749. package/dist/file-findings/adapters.cjs.map +1 -0
  750. package/dist/file-findings/adapters.d.ts +24 -0
  751. package/dist/file-findings/adapters.d.ts.map +1 -0
  752. package/dist/file-findings/adapters.js +153 -0
  753. package/dist/file-findings/adapters.js.map +1 -0
  754. package/dist/file-findings/file-review/CommentDraft.cjs +97 -0
  755. package/dist/file-findings/file-review/CommentDraft.cjs.map +1 -0
  756. package/dist/file-findings/file-review/CommentDraft.d.ts +25 -0
  757. package/dist/file-findings/file-review/CommentDraft.d.ts.map +1 -0
  758. package/dist/file-findings/file-review/CommentDraft.js +97 -0
  759. package/dist/file-findings/file-review/CommentDraft.js.map +1 -0
  760. package/dist/file-findings/file-review/FileReview.cjs +863 -0
  761. package/dist/file-findings/file-review/FileReview.cjs.map +1 -0
  762. package/dist/file-findings/file-review/FileReview.d.ts +79 -0
  763. package/dist/file-findings/file-review/FileReview.d.ts.map +1 -0
  764. package/dist/file-findings/file-review/FileReview.fixtures.d.ts +25 -0
  765. package/dist/file-findings/file-review/FileReview.fixtures.d.ts.map +1 -0
  766. package/dist/file-findings/file-review/FileReview.js +863 -0
  767. package/dist/file-findings/file-review/FileReview.js.map +1 -0
  768. package/dist/file-findings/file-review/InlineAuthors.cjs +77 -0
  769. package/dist/file-findings/file-review/InlineAuthors.cjs.map +1 -0
  770. package/dist/file-findings/file-review/InlineAuthors.d.ts +9 -0
  771. package/dist/file-findings/file-review/InlineAuthors.d.ts.map +1 -0
  772. package/dist/file-findings/file-review/InlineAuthors.js +77 -0
  773. package/dist/file-findings/file-review/InlineAuthors.js.map +1 -0
  774. package/dist/file-findings/file-review/InlineThread.cjs +77 -0
  775. package/dist/file-findings/file-review/InlineThread.cjs.map +1 -0
  776. package/dist/file-findings/file-review/InlineThread.d.ts +27 -0
  777. package/dist/file-findings/file-review/InlineThread.d.ts.map +1 -0
  778. package/dist/file-findings/file-review/InlineThread.js +77 -0
  779. package/dist/file-findings/file-review/InlineThread.js.map +1 -0
  780. package/dist/file-findings/file-review/ProblemsList.cjs +164 -0
  781. package/dist/file-findings/file-review/ProblemsList.cjs.map +1 -0
  782. package/dist/file-findings/file-review/ProblemsList.d.ts +15 -0
  783. package/dist/file-findings/file-review/ProblemsList.d.ts.map +1 -0
  784. package/dist/file-findings/file-review/ProblemsList.js +164 -0
  785. package/dist/file-findings/file-review/ProblemsList.js.map +1 -0
  786. package/dist/file-findings/file-review/SourceView.cjs +179 -0
  787. package/dist/file-findings/file-review/SourceView.cjs.map +1 -0
  788. package/dist/file-findings/file-review/SourceView.d.ts +29 -0
  789. package/dist/file-findings/file-review/SourceView.d.ts.map +1 -0
  790. package/dist/file-findings/file-review/SourceView.js +179 -0
  791. package/dist/file-findings/file-review/SourceView.js.map +1 -0
  792. package/dist/file-findings/file-review/blame.cjs +35 -0
  793. package/dist/file-findings/file-review/blame.cjs.map +1 -0
  794. package/dist/file-findings/file-review/blame.d.ts +28 -0
  795. package/dist/file-findings/file-review/blame.d.ts.map +1 -0
  796. package/dist/file-findings/file-review/blame.js +33 -0
  797. package/dist/file-findings/file-review/blame.js.map +1 -0
  798. package/dist/file-findings/file-review/geometry.cjs +101 -0
  799. package/dist/file-findings/file-review/geometry.cjs.map +1 -0
  800. package/dist/file-findings/file-review/geometry.d.ts +45 -0
  801. package/dist/file-findings/file-review/geometry.d.ts.map +1 -0
  802. package/dist/file-findings/file-review/geometry.js +98 -0
  803. package/dist/file-findings/file-review/geometry.js.map +1 -0
  804. package/dist/file-findings/file-review/hooks.cjs +101 -0
  805. package/dist/file-findings/file-review/hooks.cjs.map +1 -0
  806. package/dist/file-findings/file-review/hooks.d.ts +22 -0
  807. package/dist/file-findings/file-review/hooks.d.ts.map +1 -0
  808. package/dist/file-findings/file-review/hooks.js +99 -0
  809. package/dist/file-findings/file-review/hooks.js.map +1 -0
  810. package/dist/file-findings/file-review/marks.cjs +52 -0
  811. package/dist/file-findings/file-review/marks.cjs.map +1 -0
  812. package/dist/file-findings/file-review/marks.d.ts +23 -0
  813. package/dist/file-findings/file-review/marks.d.ts.map +1 -0
  814. package/dist/file-findings/file-review/marks.js +47 -0
  815. package/dist/file-findings/file-review/marks.js.map +1 -0
  816. package/dist/file-findings/file-review/problem-filters.cjs +14 -0
  817. package/dist/file-findings/file-review/problem-filters.cjs.map +1 -0
  818. package/dist/file-findings/file-review/problem-filters.d.ts +10 -0
  819. package/dist/file-findings/file-review/problem-filters.d.ts.map +1 -0
  820. package/dist/file-findings/file-review/problem-filters.js +13 -0
  821. package/dist/file-findings/file-review/problem-filters.js.map +1 -0
  822. package/dist/file-findings/file-review/quote-anchor.cjs +234 -0
  823. package/dist/file-findings/file-review/quote-anchor.cjs.map +1 -0
  824. package/dist/file-findings/file-review/quote-anchor.d.ts +54 -0
  825. package/dist/file-findings/file-review/quote-anchor.d.ts.map +1 -0
  826. package/dist/file-findings/file-review/quote-anchor.js +226 -0
  827. package/dist/file-findings/file-review/quote-anchor.js.map +1 -0
  828. package/dist/file-findings/file-review/source-anchor.cjs +104 -0
  829. package/dist/file-findings/file-review/source-anchor.cjs.map +1 -0
  830. package/dist/file-findings/file-review/source-anchor.d.ts +27 -0
  831. package/dist/file-findings/file-review/source-anchor.d.ts.map +1 -0
  832. package/dist/file-findings/file-review/source-anchor.js +99 -0
  833. package/dist/file-findings/file-review/source-anchor.js.map +1 -0
  834. package/dist/file-findings/file-review/source-marks.cjs +71 -0
  835. package/dist/file-findings/file-review/source-marks.cjs.map +1 -0
  836. package/dist/file-findings/file-review/source-marks.d.ts +27 -0
  837. package/dist/file-findings/file-review/source-marks.d.ts.map +1 -0
  838. package/dist/file-findings/file-review/source-marks.js +68 -0
  839. package/dist/file-findings/file-review/source-marks.js.map +1 -0
  840. package/dist/file-findings/findings-comments.cjs +136 -0
  841. package/dist/file-findings/findings-comments.cjs.map +1 -0
  842. package/dist/file-findings/findings-comments.d.ts +28 -0
  843. package/dist/file-findings/findings-comments.d.ts.map +1 -0
  844. package/dist/file-findings/findings-comments.js +131 -0
  845. package/dist/file-findings/findings-comments.js.map +1 -0
  846. package/dist/file-findings/findings-languages.cjs +53 -0
  847. package/dist/file-findings/findings-languages.cjs.map +1 -0
  848. package/dist/file-findings/findings-languages.d.ts +11 -0
  849. package/dist/file-findings/findings-languages.d.ts.map +1 -0
  850. package/dist/file-findings/findings-languages.js +53 -0
  851. package/dist/file-findings/findings-languages.js.map +1 -0
  852. package/dist/file-findings/mdx-source.cjs +48 -0
  853. package/dist/file-findings/mdx-source.cjs.map +1 -0
  854. package/dist/file-findings/mdx-source.d.ts +7 -0
  855. package/dist/file-findings/mdx-source.d.ts.map +1 -0
  856. package/dist/file-findings/mdx-source.js +48 -0
  857. package/dist/file-findings/mdx-source.js.map +1 -0
  858. package/dist/file-findings/monaco-language.cjs +73 -0
  859. package/dist/file-findings/monaco-language.cjs.map +1 -0
  860. package/dist/file-findings/monaco-language.d.ts +11 -0
  861. package/dist/file-findings/monaco-language.d.ts.map +1 -0
  862. package/dist/file-findings/monaco-language.js +72 -0
  863. package/dist/file-findings/monaco-language.js.map +1 -0
  864. package/dist/file-findings/severity-counts.cjs +20 -0
  865. package/dist/file-findings/severity-counts.cjs.map +1 -0
  866. package/dist/file-findings/severity-counts.d.ts +5 -0
  867. package/dist/file-findings/severity-counts.d.ts.map +1 -0
  868. package/dist/file-findings/severity-counts.js +19 -0
  869. package/dist/file-findings/severity-counts.js.map +1 -0
  870. package/dist/file-findings/types.cjs +12 -0
  871. package/dist/file-findings/types.cjs.map +1 -0
  872. package/dist/file-findings/types.d.ts +43 -0
  873. package/dist/file-findings/types.d.ts.map +1 -0
  874. package/dist/file-findings/types.js +11 -0
  875. package/dist/file-findings/types.js.map +1 -0
  876. package/dist/file-findings.cjs +47 -0
  877. package/dist/file-findings.d.ts +15 -0
  878. package/dist/file-findings.d.ts.map +1 -0
  879. package/dist/file-findings.js +15 -0
  880. package/dist/hooks/event-hub.cjs +22 -8
  881. package/dist/hooks/event-hub.cjs.map +1 -1
  882. package/dist/hooks/event-hub.d.ts.map +1 -1
  883. package/dist/hooks/event-hub.js +22 -8
  884. package/dist/hooks/event-hub.js.map +1 -1
  885. package/dist/icons/components/UiBrowser.cjs +51 -0
  886. package/dist/icons/components/UiBrowser.cjs.map +1 -0
  887. package/dist/icons/components/UiBrowser.d.ts +15 -0
  888. package/dist/icons/components/UiBrowser.d.ts.map +1 -0
  889. package/dist/icons/components/UiBrowser.js +48 -0
  890. package/dist/icons/components/UiBrowser.js.map +1 -0
  891. package/dist/icons/components/UiCreditCard.cjs +51 -0
  892. package/dist/icons/components/UiCreditCard.cjs.map +1 -0
  893. package/dist/icons/components/UiCreditCard.d.ts +15 -0
  894. package/dist/icons/components/UiCreditCard.d.ts.map +1 -0
  895. package/dist/icons/components/UiCreditCard.js +48 -0
  896. package/dist/icons/components/UiCreditCard.js.map +1 -0
  897. package/dist/icons/components/UiShoppingCart.cjs +51 -0
  898. package/dist/icons/components/UiShoppingCart.cjs.map +1 -0
  899. package/dist/icons/components/UiShoppingCart.d.ts +15 -0
  900. package/dist/icons/components/UiShoppingCart.d.ts.map +1 -0
  901. package/dist/icons/components/UiShoppingCart.js +48 -0
  902. package/dist/icons/components/UiShoppingCart.js.map +1 -0
  903. package/dist/icons/index.d.ts +6 -0
  904. package/dist/icons/index.d.ts.map +1 -1
  905. package/dist/icons/registry.cjs +6 -0
  906. package/dist/icons/registry.cjs.map +1 -1
  907. package/dist/icons/registry.d.ts.map +1 -1
  908. package/dist/icons/registry.js +6 -0
  909. package/dist/icons/registry.js.map +1 -1
  910. package/dist/icons.cjs +9 -0
  911. package/dist/icons.js +4 -1
  912. package/dist/index.cjs +76 -8
  913. package/dist/index.d.ts +1 -0
  914. package/dist/index.d.ts.map +1 -1
  915. package/dist/index.js +37 -14
  916. package/dist/layout/AppShell.cjs +37 -21
  917. package/dist/layout/AppShell.cjs.map +1 -1
  918. package/dist/layout/AppShell.d.ts +13 -2
  919. package/dist/layout/AppShell.d.ts.map +1 -1
  920. package/dist/layout/AppShell.js +37 -21
  921. package/dist/layout/AppShell.js.map +1 -1
  922. package/dist/layout/AppShell.nav.cjs +7 -6
  923. package/dist/layout/AppShell.nav.cjs.map +1 -1
  924. package/dist/layout/AppShell.nav.d.ts.map +1 -1
  925. package/dist/layout/AppShell.nav.js +7 -6
  926. package/dist/layout/AppShell.nav.js.map +1 -1
  927. package/dist/layout/SplitPane.cjs +16 -6
  928. package/dist/layout/SplitPane.cjs.map +1 -1
  929. package/dist/layout/SplitPane.d.ts +12 -2
  930. package/dist/layout/SplitPane.d.ts.map +1 -1
  931. package/dist/layout/SplitPane.js +16 -6
  932. package/dist/layout/SplitPane.js.map +1 -1
  933. package/dist/layout/Workspace.cjs +37 -33
  934. package/dist/layout/Workspace.cjs.map +1 -1
  935. package/dist/layout/Workspace.d.ts.map +1 -1
  936. package/dist/layout/Workspace.js +37 -33
  937. package/dist/layout/Workspace.js.map +1 -1
  938. package/dist/layout/Workspace.regions.cjs +3 -3
  939. package/dist/layout/Workspace.regions.cjs.map +1 -1
  940. package/dist/layout/Workspace.regions.js +3 -3
  941. package/dist/layout/Workspace.regions.js.map +1 -1
  942. package/dist/lib/breakpoints.cjs +102 -0
  943. package/dist/lib/breakpoints.cjs.map +1 -0
  944. package/dist/lib/breakpoints.d.ts +36 -0
  945. package/dist/lib/breakpoints.d.ts.map +1 -0
  946. package/dist/lib/breakpoints.js +99 -0
  947. package/dist/lib/breakpoints.js.map +1 -0
  948. package/dist/lib/combobox.cjs +2 -1
  949. package/dist/lib/combobox.cjs.map +1 -1
  950. package/dist/lib/combobox.d.ts +1 -1
  951. package/dist/lib/combobox.d.ts.map +1 -1
  952. package/dist/lib/combobox.js +2 -1
  953. package/dist/lib/combobox.js.map +1 -1
  954. package/dist/lib/path-tree.cjs +21 -0
  955. package/dist/lib/path-tree.cjs.map +1 -1
  956. package/dist/lib/path-tree.d.ts +15 -0
  957. package/dist/lib/path-tree.d.ts.map +1 -1
  958. package/dist/lib/path-tree.js +21 -1
  959. package/dist/lib/path-tree.js.map +1 -1
  960. package/dist/overlay/Modal.cjs +2 -1
  961. package/dist/overlay/Modal.cjs.map +1 -1
  962. package/dist/overlay/Modal.d.ts.map +1 -1
  963. package/dist/overlay/Modal.js +2 -1
  964. package/dist/overlay/Modal.js.map +1 -1
  965. package/dist/overlay/dropdownMenuContext.d.ts +1 -1
  966. package/dist/profiles/editor/profileEditor.cjs +1 -1
  967. package/dist/profiles/editor/profileEditor.cjs.map +1 -1
  968. package/dist/profiles/editor/profileEditor.js +1 -1
  969. package/dist/profiles/editor/profileEditor.js.map +1 -1
  970. package/dist/profiles/editor/profileEditorSections.cjs +2 -2
  971. package/dist/profiles/editor/profileEditorSections.cjs.map +1 -1
  972. package/dist/profiles/editor/profileEditorSections.js +2 -2
  973. package/dist/profiles/editor/profileEditorSections.js.map +1 -1
  974. package/dist/profiles/query/prometheusResults.cjs +24 -36
  975. package/dist/profiles/query/prometheusResults.cjs.map +1 -1
  976. package/dist/profiles/query/prometheusResults.d.ts.map +1 -1
  977. package/dist/profiles/query/prometheusResults.js +24 -36
  978. package/dist/profiles/query/prometheusResults.js.map +1 -1
  979. package/dist/rpc/CommandForm.cjs +1 -1
  980. package/dist/rpc/CommandForm.cjs.map +1 -1
  981. package/dist/rpc/CommandForm.js +1 -1
  982. package/dist/rpc/CommandForm.js.map +1 -1
  983. package/dist/rpc/classify.cjs +1 -1
  984. package/dist/rpc/classify.cjs.map +1 -1
  985. package/dist/rpc/classify.d.ts.map +1 -1
  986. package/dist/rpc/classify.js +1 -1
  987. package/dist/rpc/classify.js.map +1 -1
  988. package/dist/rpc/useOperations.d.ts +24 -24
  989. package/dist/rpc.cjs +0 -2
  990. package/dist/rpc.d.ts +0 -1
  991. package/dist/rpc.d.ts.map +1 -1
  992. package/dist/rpc.js +1 -2
  993. package/dist/styles.css +1 -1
  994. package/dist/utils.cjs +6 -0
  995. package/dist/utils.d.ts +2 -1
  996. package/dist/utils.d.ts.map +1 -1
  997. package/dist/utils.js +3 -2
  998. package/package.json +9 -3
  999. package/schemas/json-schema-form.schema.json +9 -1
@@ -1,10 +1,12 @@
1
- export { LintResults, type LintResultsProps } from './LintResults.js';
2
- export { LintFilterBar, type LintFilterBarProps } from './LintFilterBar.js';
1
+ export { LintResults, type LintResultsProps, type LintView } from './LintResults.js';
2
+ export { LintTable, type LintTableProps } from './LintTable.js';
3
+ export { LintFilterBar, LintFilterFacets, LintGroupingPicker, type LintFilterBarProps } from './LintFilterBar.js';
3
4
  export { LintDetailPanel, type LintDetailPanelProps } from './LintDetail.js';
4
5
  export { LintTreeNode } from './LintTreeNode.js';
6
+ export { ViolationSnippet, VIOLATION_CONTEXT_LINES, type LintSourceLoader } from './ViolationSnippet.js';
5
7
  export { LINT_GROUPING_OPTIONS } from './grouping-options.js';
6
8
  export { buildLintTree, findLintNode } from './grouping.js';
7
- export { collectLintLinters, countLintByLinter, countLintBySeverity, isLinterErrored, lintNodeCount, lintNodeSeverity, totalLintViolations, } from './stats.js';
8
- export { collectFolderLintStats, folderPattern, lintFileActions, lintFolderActions, lintNodeActions, violationIgnoreAction, } from './actions.js';
9
- export { DEFAULT_LINT_GROUPING, LINT_GROUPINGS, emptyLintFilters, type LintAction, type LintFilters, type LintGrouping, type LintIgnoreRequest, type LintNode, type LintNodeKind, type LinterResult, type Violation, } from './types.js';
9
+ export { collectLintLinters, countLintByLinter, countLintBySeverity, isLinterErrored, isLinterInFlight, lintNodeCount, lintNodeSeverity, totalLintViolations, } from './stats.js';
10
+ export { collectFolderLintStats, folderPattern, lintFileActions, lintFolderActions, lintNodeActions, violationIgnoreActions, } from './actions.js';
11
+ export { DEFAULT_LINT_GROUPING, LINT_GROUPINGS, emptyLintFilters, type LintAction, type LintFilters, type LintGrouping, type LintIgnoreRequest, type LintNode, type LintNodeKind, type LinterResult, type LinterStatus, type LintResultProvenance, type Violation, type ViolationLocation, } from './types.js';
10
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data/lint/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,qBAAqB,GACtB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,SAAS,GACf,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data/lint/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC/G,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtG,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,sBAAsB,GACvB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,SAAS,EACd,KAAK,iBAAiB,GACvB,MAAM,SAAS,CAAC"}
@@ -5,6 +5,10 @@ var SEVERITY_RANK = {
5
5
  warning: 2,
6
6
  error: 3
7
7
  };
8
+ /** Orders severities: info < warning < error. */
9
+ function severityRank(severity) {
10
+ return SEVERITY_RANK[severity];
11
+ }
8
12
  /** A violation without a severity is an error, as on the wire. */
9
13
  function severityOf(violation) {
10
14
  return violation.severity ?? "error";
@@ -17,18 +21,22 @@ function worstSeverity(violations) {
17
21
  }
18
22
  return worst;
19
23
  }
20
- /** Whether the linter itself failed to run (as opposed to reporting findings). */
24
+ /** Whether the linter is still queued or running: it has no verdict yet. */
25
+ function isLinterInFlight(result) {
26
+ return result.status !== void 0;
27
+ }
28
+ /** Whether the linter itself failed to run (as opposed to reporting findings or still being in flight). */
21
29
  function isLinterErrored(result) {
22
- return !result.skipped && (Boolean(result.error) || Boolean(result.timed_out));
30
+ return !result.skipped && !isLinterInFlight(result) && (Boolean(result.error) || Boolean(result.timed_out));
23
31
  }
24
32
  /** Why a linter failed: its error text, or "timed out" when it only carries the flag. */
25
33
  function linterErrorMessage(result) {
26
34
  return result.error || "timed out";
27
35
  }
28
- /** Linters that reported violations or failed to run, sorted by name. */
36
+ /** Linters that reported violations, failed to run or are still in flight, sorted by name. */
29
37
  function collectLintLinters(results) {
30
38
  const names = /* @__PURE__ */ new Set();
31
- for (const r of results) if ((r.violations ?? []).length > 0 || isLinterErrored(r)) names.add(r.linter);
39
+ for (const r of results) if ((r.violations ?? []).length > 0 || isLinterErrored(r) || isLinterInFlight(r)) names.add(r.linter);
32
40
  return Array.from(names).sort();
33
41
  }
34
42
  function countLintBySeverity(results, linterFilter) {
@@ -54,6 +62,10 @@ function countLintByLinter(results, severityFilter) {
54
62
  function totalLintViolations(results) {
55
63
  return results.reduce((n, r) => n + (r.violations ?? []).length, 0);
56
64
  }
65
+ /** The tool a linter node runs: a nested `<parent>/<tool>` result is just the tool part. */
66
+ function linterToolName(node) {
67
+ return node.nestedUnder && node.linterName ? node.linterName.slice(node.nestedUnder.length + 1) : node.linterName;
68
+ }
57
69
  /** Violations at or beneath a node; error leaves count as zero (they are not findings). */
58
70
  function lintNodeCount(node) {
59
71
  if (node.violations) return node.violations.length;
@@ -75,10 +87,13 @@ exports.collectLintLinters = collectLintLinters;
75
87
  exports.countLintByLinter = countLintByLinter;
76
88
  exports.countLintBySeverity = countLintBySeverity;
77
89
  exports.isLinterErrored = isLinterErrored;
90
+ exports.isLinterInFlight = isLinterInFlight;
78
91
  exports.lintNodeCount = lintNodeCount;
79
92
  exports.lintNodeSeverity = lintNodeSeverity;
80
93
  exports.linterErrorMessage = linterErrorMessage;
94
+ exports.linterToolName = linterToolName;
81
95
  exports.severityOf = severityOf;
96
+ exports.severityRank = severityRank;
82
97
  exports.totalLintViolations = totalLintViolations;
83
98
  exports.worstSeverity = worstSeverity;
84
99
 
@@ -1 +1 @@
1
- {"version":3,"file":"stats.cjs","names":["matchesFilterState"],"sources":["../../../src/data/lint/stats.ts"],"sourcesContent":["// Counting and severity roll-ups over raw results and over built tree nodes.\n\nimport { matchesFilterState, type FilterState } from \"../test-runner/filterState\";\nimport type { LintNode, LintSeverity, LinterResult, Violation } from \"./types\";\n\nconst SEVERITY_RANK: Record<LintSeverity, number> = { info: 1, warning: 2, error: 3 };\n\n/** A violation without a severity is an error, as on the wire. */\nexport function severityOf(violation: Violation): LintSeverity {\n return violation.severity ?? \"error\";\n}\n\nexport function worstSeverity(violations: readonly Violation[] | undefined): LintSeverity {\n let worst: LintSeverity = \"info\";\n for (const v of violations ?? []) {\n const sev = severityOf(v);\n if (SEVERITY_RANK[sev] > SEVERITY_RANK[worst]) worst = sev;\n }\n return worst;\n}\n\n/** Whether the linter itself failed to run (as opposed to reporting findings). */\nexport function isLinterErrored(result: LinterResult): boolean {\n return !result.skipped && (Boolean(result.error) || Boolean(result.timed_out));\n}\n\n/** Why a linter failed: its error text, or \"timed out\" when it only carries the flag. */\nexport function linterErrorMessage(result: LinterResult): string {\n return result.error || \"timed out\";\n}\n\n/** Linters that reported violations or failed to run, sorted by name. */\nexport function collectLintLinters(results: readonly LinterResult[]): string[] {\n const names = new Set<string>();\n for (const r of results) {\n if ((r.violations ?? []).length > 0 || isLinterErrored(r)) names.add(r.linter);\n }\n return Array.from(names).sort();\n}\n\nexport function countLintBySeverity(\n results: readonly LinterResult[],\n linterFilter: FilterState<string>,\n): Record<LintSeverity, number> {\n const counts: Record<LintSeverity, number> = { error: 0, warning: 0, info: 0 };\n for (const r of results) {\n if (!matchesFilterState(r.linter, linterFilter)) continue;\n for (const v of r.violations ?? []) counts[severityOf(v)] += 1;\n }\n return counts;\n}\n\nexport function countLintByLinter(\n results: readonly LinterResult[],\n severityFilter: FilterState<LintSeverity>,\n): Record<string, number> {\n const counts: Record<string, number> = {};\n for (const r of results) {\n for (const v of r.violations ?? []) {\n if (!matchesFilterState(severityOf(v), severityFilter)) continue;\n counts[r.linter] = (counts[r.linter] ?? 0) + 1;\n }\n }\n return counts;\n}\n\nexport function totalLintViolations(results: readonly LinterResult[]): number {\n return results.reduce((n, r) => n + (r.violations ?? []).length, 0);\n}\n\n/** Violations at or beneath a node; error leaves count as zero (they are not findings). */\nexport function lintNodeCount(node: LintNode): number {\n if (node.violations) return node.violations.length;\n return (\n (node.noFileViolations?.length ?? 0) +\n (node.children ?? []).reduce((n, child) => n + lintNodeCount(child), 0)\n );\n}\n\n/** The worst severity at or beneath a node. A linter-error leaf is an error. */\nexport function lintNodeSeverity(node: LintNode): LintSeverity {\n if (node.kind === \"linter-error\") return \"error\";\n let worst: LintSeverity = \"info\";\n const consider = (sev: LintSeverity) => {\n if (SEVERITY_RANK[sev] > SEVERITY_RANK[worst]) worst = sev;\n };\n if (node.violations) consider(worstSeverity(node.violations));\n if (node.noFileViolations) consider(worstSeverity(node.noFileViolations));\n for (const child of node.children ?? []) consider(lintNodeSeverity(child));\n return worst;\n}\n"],"mappings":";;AAKA,IAAM,gBAA8C;CAAE,MAAM;CAAG,SAAS;CAAG,OAAO;AAAE;;AAGpF,SAAgB,WAAW,WAAoC;CAC7D,OAAO,UAAU,YAAY;AAC/B;AAEA,SAAgB,cAAc,YAA4D;CACxF,IAAI,QAAsB;CAC1B,KAAK,MAAM,KAAK,cAAc,CAAC,GAAG;EAChC,MAAM,MAAM,WAAW,CAAC;EACxB,IAAI,cAAc,OAAO,cAAc,QAAQ,QAAQ;CACzD;CACA,OAAO;AACT;;AAGA,SAAgB,gBAAgB,QAA+B;CAC7D,OAAO,CAAC,OAAO,YAAY,QAAQ,OAAO,KAAK,KAAK,QAAQ,OAAO,SAAS;AAC9E;;AAGA,SAAgB,mBAAmB,QAA8B;CAC/D,OAAO,OAAO,SAAS;AACzB;;AAGA,SAAgB,mBAAmB,SAA4C;CAC7E,MAAM,wBAAQ,IAAI,IAAY;CAC9B,KAAK,MAAM,KAAK,SACd,KAAK,EAAE,cAAc,CAAC,EAAA,CAAG,SAAS,KAAK,gBAAgB,CAAC,GAAG,MAAM,IAAI,EAAE,MAAM;CAE/E,OAAO,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK;AAChC;AAEA,SAAgB,oBACd,SACA,cAC8B;CAC9B,MAAM,SAAuC;EAAE,OAAO;EAAG,SAAS;EAAG,MAAM;CAAE;CAC7E,KAAK,MAAM,KAAK,SAAS;EACvB,IAAI,CAACA,oBAAAA,mBAAmB,EAAE,QAAQ,YAAY,GAAG;EACjD,KAAK,MAAM,KAAK,EAAE,cAAc,CAAC,GAAG,OAAO,WAAW,CAAC,MAAM;CAC/D;CACA,OAAO;AACT;AAEA,SAAgB,kBACd,SACA,gBACwB;CACxB,MAAM,SAAiC,CAAC;CACxC,KAAK,MAAM,KAAK,SACd,KAAK,MAAM,KAAK,EAAE,cAAc,CAAC,GAAG;EAClC,IAAI,CAACA,oBAAAA,mBAAmB,WAAW,CAAC,GAAG,cAAc,GAAG;EACxD,OAAO,EAAE,WAAW,OAAO,EAAE,WAAW,KAAK;CAC/C;CAEF,OAAO;AACT;AAEA,SAAgB,oBAAoB,SAA0C;CAC5E,OAAO,QAAQ,QAAQ,GAAG,MAAM,KAAK,EAAE,cAAc,CAAC,EAAA,CAAG,QAAQ,CAAC;AACpE;;AAGA,SAAgB,cAAc,MAAwB;CACpD,IAAI,KAAK,YAAY,OAAO,KAAK,WAAW;CAC5C,QACG,KAAK,kBAAkB,UAAU,MACjC,KAAK,YAAY,CAAC,EAAA,CAAG,QAAQ,GAAG,UAAU,IAAI,cAAc,KAAK,GAAG,CAAC;AAE1E;;AAGA,SAAgB,iBAAiB,MAA8B;CAC7D,IAAI,KAAK,SAAS,gBAAgB,OAAO;CACzC,IAAI,QAAsB;CAC1B,MAAM,YAAY,QAAsB;EACtC,IAAI,cAAc,OAAO,cAAc,QAAQ,QAAQ;CACzD;CACA,IAAI,KAAK,YAAY,SAAS,cAAc,KAAK,UAAU,CAAC;CAC5D,IAAI,KAAK,kBAAkB,SAAS,cAAc,KAAK,gBAAgB,CAAC;CACxE,KAAK,MAAM,SAAS,KAAK,YAAY,CAAC,GAAG,SAAS,iBAAiB,KAAK,CAAC;CACzE,OAAO;AACT"}
1
+ {"version":3,"file":"stats.cjs","names":["matchesFilterState"],"sources":["../../../src/data/lint/stats.ts"],"sourcesContent":["// Counting and severity roll-ups over raw results and over built tree nodes.\n\nimport { matchesFilterState, type FilterState } from \"../test-runner/filterState\";\nimport type { LintNode, LintSeverity, LinterResult, Violation } from \"./types\";\n\nconst SEVERITY_RANK: Record<LintSeverity, number> = { info: 1, warning: 2, error: 3 };\n\n/** Orders severities: info < warning < error. */\nexport function severityRank(severity: LintSeverity): number {\n return SEVERITY_RANK[severity];\n}\n\n/** A violation without a severity is an error, as on the wire. */\nexport function severityOf(violation: Violation): LintSeverity {\n return violation.severity ?? \"error\";\n}\n\nexport function worstSeverity(violations: readonly Violation[] | undefined): LintSeverity {\n let worst: LintSeverity = \"info\";\n for (const v of violations ?? []) {\n const sev = severityOf(v);\n if (SEVERITY_RANK[sev] > SEVERITY_RANK[worst]) worst = sev;\n }\n return worst;\n}\n\n/** Whether the linter is still queued or running: it has no verdict yet. */\nexport function isLinterInFlight(result: LinterResult): boolean {\n return result.status !== undefined;\n}\n\n/** Whether the linter itself failed to run (as opposed to reporting findings or still being in flight). */\nexport function isLinterErrored(result: LinterResult): boolean {\n return !result.skipped && !isLinterInFlight(result) && (Boolean(result.error) || Boolean(result.timed_out));\n}\n\n/** Why a linter failed: its error text, or \"timed out\" when it only carries the flag. */\nexport function linterErrorMessage(result: LinterResult): string {\n return result.error || \"timed out\";\n}\n\n/** Linters that reported violations, failed to run or are still in flight, sorted by name. */\nexport function collectLintLinters(results: readonly LinterResult[]): string[] {\n const names = new Set<string>();\n for (const r of results) {\n if ((r.violations ?? []).length > 0 || isLinterErrored(r) || isLinterInFlight(r)) names.add(r.linter);\n }\n return Array.from(names).sort();\n}\n\nexport function countLintBySeverity(\n results: readonly LinterResult[],\n linterFilter: FilterState<string>,\n): Record<LintSeverity, number> {\n const counts: Record<LintSeverity, number> = { error: 0, warning: 0, info: 0 };\n for (const r of results) {\n if (!matchesFilterState(r.linter, linterFilter)) continue;\n for (const v of r.violations ?? []) counts[severityOf(v)] += 1;\n }\n return counts;\n}\n\nexport function countLintByLinter(\n results: readonly LinterResult[],\n severityFilter: FilterState<LintSeverity>,\n): Record<string, number> {\n const counts: Record<string, number> = {};\n for (const r of results) {\n for (const v of r.violations ?? []) {\n if (!matchesFilterState(severityOf(v), severityFilter)) continue;\n counts[r.linter] = (counts[r.linter] ?? 0) + 1;\n }\n }\n return counts;\n}\n\nexport function totalLintViolations(results: readonly LinterResult[]): number {\n return results.reduce((n, r) => n + (r.violations ?? []).length, 0);\n}\n\n/** The tool a linter node runs: a nested `<parent>/<tool>` result is just the tool part. */\nexport function linterToolName(node: Pick<LintNode, \"linterName\" | \"nestedUnder\">): string | undefined {\n return node.nestedUnder && node.linterName ? node.linterName.slice(node.nestedUnder.length + 1) : node.linterName;\n}\n\ntype CountableNode = Pick<LintNode, \"violations\" | \"noFileViolations\"> & { children?: CountableNode[] | undefined };\n\n/** Violations at or beneath a node; error leaves count as zero (they are not findings). */\nexport function lintNodeCount(node: CountableNode): number {\n if (node.violations) return node.violations.length;\n return (\n (node.noFileViolations?.length ?? 0) +\n (node.children ?? []).reduce((n, child) => n + lintNodeCount(child), 0)\n );\n}\n\n/** The worst severity at or beneath a node. A linter-error leaf is an error. */\nexport function lintNodeSeverity(node: LintNode): LintSeverity {\n if (node.kind === \"linter-error\") return \"error\";\n let worst: LintSeverity = \"info\";\n const consider = (sev: LintSeverity) => {\n if (SEVERITY_RANK[sev] > SEVERITY_RANK[worst]) worst = sev;\n };\n if (node.violations) consider(worstSeverity(node.violations));\n if (node.noFileViolations) consider(worstSeverity(node.noFileViolations));\n for (const child of node.children ?? []) consider(lintNodeSeverity(child));\n return worst;\n}\n"],"mappings":";;AAKA,IAAM,gBAA8C;CAAE,MAAM;CAAG,SAAS;CAAG,OAAO;AAAE;;AAGpF,SAAgB,aAAa,UAAgC;CAC3D,OAAO,cAAc;AACvB;;AAGA,SAAgB,WAAW,WAAoC;CAC7D,OAAO,UAAU,YAAY;AAC/B;AAEA,SAAgB,cAAc,YAA4D;CACxF,IAAI,QAAsB;CAC1B,KAAK,MAAM,KAAK,cAAc,CAAC,GAAG;EAChC,MAAM,MAAM,WAAW,CAAC;EACxB,IAAI,cAAc,OAAO,cAAc,QAAQ,QAAQ;CACzD;CACA,OAAO;AACT;;AAGA,SAAgB,iBAAiB,QAA+B;CAC9D,OAAO,OAAO,WAAW,KAAA;AAC3B;;AAGA,SAAgB,gBAAgB,QAA+B;CAC7D,OAAO,CAAC,OAAO,WAAW,CAAC,iBAAiB,MAAM,MAAM,QAAQ,OAAO,KAAK,KAAK,QAAQ,OAAO,SAAS;AAC3G;;AAGA,SAAgB,mBAAmB,QAA8B;CAC/D,OAAO,OAAO,SAAS;AACzB;;AAGA,SAAgB,mBAAmB,SAA4C;CAC7E,MAAM,wBAAQ,IAAI,IAAY;CAC9B,KAAK,MAAM,KAAK,SACd,KAAK,EAAE,cAAc,CAAC,EAAA,CAAG,SAAS,KAAK,gBAAgB,CAAC,KAAK,iBAAiB,CAAC,GAAG,MAAM,IAAI,EAAE,MAAM;CAEtG,OAAO,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK;AAChC;AAEA,SAAgB,oBACd,SACA,cAC8B;CAC9B,MAAM,SAAuC;EAAE,OAAO;EAAG,SAAS;EAAG,MAAM;CAAE;CAC7E,KAAK,MAAM,KAAK,SAAS;EACvB,IAAI,CAACA,oBAAAA,mBAAmB,EAAE,QAAQ,YAAY,GAAG;EACjD,KAAK,MAAM,KAAK,EAAE,cAAc,CAAC,GAAG,OAAO,WAAW,CAAC,MAAM;CAC/D;CACA,OAAO;AACT;AAEA,SAAgB,kBACd,SACA,gBACwB;CACxB,MAAM,SAAiC,CAAC;CACxC,KAAK,MAAM,KAAK,SACd,KAAK,MAAM,KAAK,EAAE,cAAc,CAAC,GAAG;EAClC,IAAI,CAACA,oBAAAA,mBAAmB,WAAW,CAAC,GAAG,cAAc,GAAG;EACxD,OAAO,EAAE,WAAW,OAAO,EAAE,WAAW,KAAK;CAC/C;CAEF,OAAO;AACT;AAEA,SAAgB,oBAAoB,SAA0C;CAC5E,OAAO,QAAQ,QAAQ,GAAG,MAAM,KAAK,EAAE,cAAc,CAAC,EAAA,CAAG,QAAQ,CAAC;AACpE;;AAGA,SAAgB,eAAe,MAAwE;CACrG,OAAO,KAAK,eAAe,KAAK,aAAa,KAAK,WAAW,MAAM,KAAK,YAAY,SAAS,CAAC,IAAI,KAAK;AACzG;;AAKA,SAAgB,cAAc,MAA6B;CACzD,IAAI,KAAK,YAAY,OAAO,KAAK,WAAW;CAC5C,QACG,KAAK,kBAAkB,UAAU,MACjC,KAAK,YAAY,CAAC,EAAA,CAAG,QAAQ,GAAG,UAAU,IAAI,cAAc,KAAK,GAAG,CAAC;AAE1E;;AAGA,SAAgB,iBAAiB,MAA8B;CAC7D,IAAI,KAAK,SAAS,gBAAgB,OAAO;CACzC,IAAI,QAAsB;CAC1B,MAAM,YAAY,QAAsB;EACtC,IAAI,cAAc,OAAO,cAAc,QAAQ,QAAQ;CACzD;CACA,IAAI,KAAK,YAAY,SAAS,cAAc,KAAK,UAAU,CAAC;CAC5D,IAAI,KAAK,kBAAkB,SAAS,cAAc,KAAK,gBAAgB,CAAC;CACxE,KAAK,MAAM,SAAS,KAAK,YAAY,CAAC,GAAG,SAAS,iBAAiB,KAAK,CAAC;CACzE,OAAO;AACT"}
@@ -1,19 +1,29 @@
1
1
  import { FilterState } from '../test-runner/filterState.js';
2
2
  import { LintNode, LintSeverity, LinterResult, Violation } from './types.js';
3
+ /** Orders severities: info < warning < error. */
4
+ export declare function severityRank(severity: LintSeverity): number;
3
5
  /** A violation without a severity is an error, as on the wire. */
4
6
  export declare function severityOf(violation: Violation): LintSeverity;
5
7
  export declare function worstSeverity(violations: readonly Violation[] | undefined): LintSeverity;
6
- /** Whether the linter itself failed to run (as opposed to reporting findings). */
8
+ /** Whether the linter is still queued or running: it has no verdict yet. */
9
+ export declare function isLinterInFlight(result: LinterResult): boolean;
10
+ /** Whether the linter itself failed to run (as opposed to reporting findings or still being in flight). */
7
11
  export declare function isLinterErrored(result: LinterResult): boolean;
8
12
  /** Why a linter failed: its error text, or "timed out" when it only carries the flag. */
9
13
  export declare function linterErrorMessage(result: LinterResult): string;
10
- /** Linters that reported violations or failed to run, sorted by name. */
14
+ /** Linters that reported violations, failed to run or are still in flight, sorted by name. */
11
15
  export declare function collectLintLinters(results: readonly LinterResult[]): string[];
12
16
  export declare function countLintBySeverity(results: readonly LinterResult[], linterFilter: FilterState<string>): Record<LintSeverity, number>;
13
17
  export declare function countLintByLinter(results: readonly LinterResult[], severityFilter: FilterState<LintSeverity>): Record<string, number>;
14
18
  export declare function totalLintViolations(results: readonly LinterResult[]): number;
19
+ /** The tool a linter node runs: a nested `<parent>/<tool>` result is just the tool part. */
20
+ export declare function linterToolName(node: Pick<LintNode, "linterName" | "nestedUnder">): string | undefined;
21
+ type CountableNode = Pick<LintNode, "violations" | "noFileViolations"> & {
22
+ children?: CountableNode[] | undefined;
23
+ };
15
24
  /** Violations at or beneath a node; error leaves count as zero (they are not findings). */
16
- export declare function lintNodeCount(node: LintNode): number;
25
+ export declare function lintNodeCount(node: CountableNode): number;
17
26
  /** The worst severity at or beneath a node. A linter-error leaf is an error. */
18
27
  export declare function lintNodeSeverity(node: LintNode): LintSeverity;
28
+ export {};
19
29
  //# sourceMappingURL=stats.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../src/data/lint/stats.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAI/E,kEAAkE;AAClE,wBAAgB,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,YAAY,CAE7D;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,GAAG,YAAY,CAOxF;AAED,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAE7D;AAED,yFAAyF;AACzF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAE/D;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,EAAE,CAM7E;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,GAChC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAO9B;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,cAAc,EAAE,WAAW,CAAC,YAAY,CAAC,GACxC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASxB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,CAE5E;AAED,2FAA2F;AAC3F,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAMpD;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,CAU7D"}
1
+ {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../src/data/lint/stats.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAI/E,iDAAiD;AACjD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAE3D;AAED,kEAAkE;AAClE,wBAAgB,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,YAAY,CAE7D;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,GAAG,YAAY,CAOxF;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAE9D;AAED,2GAA2G;AAC3G,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAE7D;AAED,yFAAyF;AACzF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAE/D;AAED,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,EAAE,CAM7E;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,GAChC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAO9B;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,cAAc,EAAE,WAAW,CAAC,YAAY,CAAC,GACxC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASxB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,CAE5E;AAED,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,GAAG,aAAa,CAAC,GAAG,MAAM,GAAG,SAAS,CAErG;AAED,KAAK,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,YAAY,GAAG,kBAAkB,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,aAAa,EAAE,GAAG,SAAS,CAAA;CAAE,CAAC;AAEpH,2FAA2F;AAC3F,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAMzD;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,CAU7D"}
@@ -5,6 +5,10 @@ var SEVERITY_RANK = {
5
5
  warning: 2,
6
6
  error: 3
7
7
  };
8
+ /** Orders severities: info < warning < error. */
9
+ function severityRank(severity) {
10
+ return SEVERITY_RANK[severity];
11
+ }
8
12
  /** A violation without a severity is an error, as on the wire. */
9
13
  function severityOf(violation) {
10
14
  return violation.severity ?? "error";
@@ -17,18 +21,22 @@ function worstSeverity(violations) {
17
21
  }
18
22
  return worst;
19
23
  }
20
- /** Whether the linter itself failed to run (as opposed to reporting findings). */
24
+ /** Whether the linter is still queued or running: it has no verdict yet. */
25
+ function isLinterInFlight(result) {
26
+ return result.status !== void 0;
27
+ }
28
+ /** Whether the linter itself failed to run (as opposed to reporting findings or still being in flight). */
21
29
  function isLinterErrored(result) {
22
- return !result.skipped && (Boolean(result.error) || Boolean(result.timed_out));
30
+ return !result.skipped && !isLinterInFlight(result) && (Boolean(result.error) || Boolean(result.timed_out));
23
31
  }
24
32
  /** Why a linter failed: its error text, or "timed out" when it only carries the flag. */
25
33
  function linterErrorMessage(result) {
26
34
  return result.error || "timed out";
27
35
  }
28
- /** Linters that reported violations or failed to run, sorted by name. */
36
+ /** Linters that reported violations, failed to run or are still in flight, sorted by name. */
29
37
  function collectLintLinters(results) {
30
38
  const names = /* @__PURE__ */ new Set();
31
- for (const r of results) if ((r.violations ?? []).length > 0 || isLinterErrored(r)) names.add(r.linter);
39
+ for (const r of results) if ((r.violations ?? []).length > 0 || isLinterErrored(r) || isLinterInFlight(r)) names.add(r.linter);
32
40
  return Array.from(names).sort();
33
41
  }
34
42
  function countLintBySeverity(results, linterFilter) {
@@ -54,6 +62,10 @@ function countLintByLinter(results, severityFilter) {
54
62
  function totalLintViolations(results) {
55
63
  return results.reduce((n, r) => n + (r.violations ?? []).length, 0);
56
64
  }
65
+ /** The tool a linter node runs: a nested `<parent>/<tool>` result is just the tool part. */
66
+ function linterToolName(node) {
67
+ return node.nestedUnder && node.linterName ? node.linterName.slice(node.nestedUnder.length + 1) : node.linterName;
68
+ }
57
69
  /** Violations at or beneath a node; error leaves count as zero (they are not findings). */
58
70
  function lintNodeCount(node) {
59
71
  if (node.violations) return node.violations.length;
@@ -71,6 +83,6 @@ function lintNodeSeverity(node) {
71
83
  for (const child of node.children ?? []) consider(lintNodeSeverity(child));
72
84
  return worst;
73
85
  }
74
- export { collectLintLinters, countLintByLinter, countLintBySeverity, isLinterErrored, lintNodeCount, lintNodeSeverity, linterErrorMessage, severityOf, totalLintViolations, worstSeverity };
86
+ export { collectLintLinters, countLintByLinter, countLintBySeverity, isLinterErrored, isLinterInFlight, lintNodeCount, lintNodeSeverity, linterErrorMessage, linterToolName, severityOf, severityRank, totalLintViolations, worstSeverity };
75
87
 
76
88
  //# sourceMappingURL=stats.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stats.js","names":[],"sources":["../../../src/data/lint/stats.ts"],"sourcesContent":["// Counting and severity roll-ups over raw results and over built tree nodes.\n\nimport { matchesFilterState, type FilterState } from \"../test-runner/filterState\";\nimport type { LintNode, LintSeverity, LinterResult, Violation } from \"./types\";\n\nconst SEVERITY_RANK: Record<LintSeverity, number> = { info: 1, warning: 2, error: 3 };\n\n/** A violation without a severity is an error, as on the wire. */\nexport function severityOf(violation: Violation): LintSeverity {\n return violation.severity ?? \"error\";\n}\n\nexport function worstSeverity(violations: readonly Violation[] | undefined): LintSeverity {\n let worst: LintSeverity = \"info\";\n for (const v of violations ?? []) {\n const sev = severityOf(v);\n if (SEVERITY_RANK[sev] > SEVERITY_RANK[worst]) worst = sev;\n }\n return worst;\n}\n\n/** Whether the linter itself failed to run (as opposed to reporting findings). */\nexport function isLinterErrored(result: LinterResult): boolean {\n return !result.skipped && (Boolean(result.error) || Boolean(result.timed_out));\n}\n\n/** Why a linter failed: its error text, or \"timed out\" when it only carries the flag. */\nexport function linterErrorMessage(result: LinterResult): string {\n return result.error || \"timed out\";\n}\n\n/** Linters that reported violations or failed to run, sorted by name. */\nexport function collectLintLinters(results: readonly LinterResult[]): string[] {\n const names = new Set<string>();\n for (const r of results) {\n if ((r.violations ?? []).length > 0 || isLinterErrored(r)) names.add(r.linter);\n }\n return Array.from(names).sort();\n}\n\nexport function countLintBySeverity(\n results: readonly LinterResult[],\n linterFilter: FilterState<string>,\n): Record<LintSeverity, number> {\n const counts: Record<LintSeverity, number> = { error: 0, warning: 0, info: 0 };\n for (const r of results) {\n if (!matchesFilterState(r.linter, linterFilter)) continue;\n for (const v of r.violations ?? []) counts[severityOf(v)] += 1;\n }\n return counts;\n}\n\nexport function countLintByLinter(\n results: readonly LinterResult[],\n severityFilter: FilterState<LintSeverity>,\n): Record<string, number> {\n const counts: Record<string, number> = {};\n for (const r of results) {\n for (const v of r.violations ?? []) {\n if (!matchesFilterState(severityOf(v), severityFilter)) continue;\n counts[r.linter] = (counts[r.linter] ?? 0) + 1;\n }\n }\n return counts;\n}\n\nexport function totalLintViolations(results: readonly LinterResult[]): number {\n return results.reduce((n, r) => n + (r.violations ?? []).length, 0);\n}\n\n/** Violations at or beneath a node; error leaves count as zero (they are not findings). */\nexport function lintNodeCount(node: LintNode): number {\n if (node.violations) return node.violations.length;\n return (\n (node.noFileViolations?.length ?? 0) +\n (node.children ?? []).reduce((n, child) => n + lintNodeCount(child), 0)\n );\n}\n\n/** The worst severity at or beneath a node. A linter-error leaf is an error. */\nexport function lintNodeSeverity(node: LintNode): LintSeverity {\n if (node.kind === \"linter-error\") return \"error\";\n let worst: LintSeverity = \"info\";\n const consider = (sev: LintSeverity) => {\n if (SEVERITY_RANK[sev] > SEVERITY_RANK[worst]) worst = sev;\n };\n if (node.violations) consider(worstSeverity(node.violations));\n if (node.noFileViolations) consider(worstSeverity(node.noFileViolations));\n for (const child of node.children ?? []) consider(lintNodeSeverity(child));\n return worst;\n}\n"],"mappings":";;AAKA,IAAM,gBAA8C;CAAE,MAAM;CAAG,SAAS;CAAG,OAAO;AAAE;;AAGpF,SAAgB,WAAW,WAAoC;CAC7D,OAAO,UAAU,YAAY;AAC/B;AAEA,SAAgB,cAAc,YAA4D;CACxF,IAAI,QAAsB;CAC1B,KAAK,MAAM,KAAK,cAAc,CAAC,GAAG;EAChC,MAAM,MAAM,WAAW,CAAC;EACxB,IAAI,cAAc,OAAO,cAAc,QAAQ,QAAQ;CACzD;CACA,OAAO;AACT;;AAGA,SAAgB,gBAAgB,QAA+B;CAC7D,OAAO,CAAC,OAAO,YAAY,QAAQ,OAAO,KAAK,KAAK,QAAQ,OAAO,SAAS;AAC9E;;AAGA,SAAgB,mBAAmB,QAA8B;CAC/D,OAAO,OAAO,SAAS;AACzB;;AAGA,SAAgB,mBAAmB,SAA4C;CAC7E,MAAM,wBAAQ,IAAI,IAAY;CAC9B,KAAK,MAAM,KAAK,SACd,KAAK,EAAE,cAAc,CAAC,EAAA,CAAG,SAAS,KAAK,gBAAgB,CAAC,GAAG,MAAM,IAAI,EAAE,MAAM;CAE/E,OAAO,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK;AAChC;AAEA,SAAgB,oBACd,SACA,cAC8B;CAC9B,MAAM,SAAuC;EAAE,OAAO;EAAG,SAAS;EAAG,MAAM;CAAE;CAC7E,KAAK,MAAM,KAAK,SAAS;EACvB,IAAI,CAAC,mBAAmB,EAAE,QAAQ,YAAY,GAAG;EACjD,KAAK,MAAM,KAAK,EAAE,cAAc,CAAC,GAAG,OAAO,WAAW,CAAC,MAAM;CAC/D;CACA,OAAO;AACT;AAEA,SAAgB,kBACd,SACA,gBACwB;CACxB,MAAM,SAAiC,CAAC;CACxC,KAAK,MAAM,KAAK,SACd,KAAK,MAAM,KAAK,EAAE,cAAc,CAAC,GAAG;EAClC,IAAI,CAAC,mBAAmB,WAAW,CAAC,GAAG,cAAc,GAAG;EACxD,OAAO,EAAE,WAAW,OAAO,EAAE,WAAW,KAAK;CAC/C;CAEF,OAAO;AACT;AAEA,SAAgB,oBAAoB,SAA0C;CAC5E,OAAO,QAAQ,QAAQ,GAAG,MAAM,KAAK,EAAE,cAAc,CAAC,EAAA,CAAG,QAAQ,CAAC;AACpE;;AAGA,SAAgB,cAAc,MAAwB;CACpD,IAAI,KAAK,YAAY,OAAO,KAAK,WAAW;CAC5C,QACG,KAAK,kBAAkB,UAAU,MACjC,KAAK,YAAY,CAAC,EAAA,CAAG,QAAQ,GAAG,UAAU,IAAI,cAAc,KAAK,GAAG,CAAC;AAE1E;;AAGA,SAAgB,iBAAiB,MAA8B;CAC7D,IAAI,KAAK,SAAS,gBAAgB,OAAO;CACzC,IAAI,QAAsB;CAC1B,MAAM,YAAY,QAAsB;EACtC,IAAI,cAAc,OAAO,cAAc,QAAQ,QAAQ;CACzD;CACA,IAAI,KAAK,YAAY,SAAS,cAAc,KAAK,UAAU,CAAC;CAC5D,IAAI,KAAK,kBAAkB,SAAS,cAAc,KAAK,gBAAgB,CAAC;CACxE,KAAK,MAAM,SAAS,KAAK,YAAY,CAAC,GAAG,SAAS,iBAAiB,KAAK,CAAC;CACzE,OAAO;AACT"}
1
+ {"version":3,"file":"stats.js","names":[],"sources":["../../../src/data/lint/stats.ts"],"sourcesContent":["// Counting and severity roll-ups over raw results and over built tree nodes.\n\nimport { matchesFilterState, type FilterState } from \"../test-runner/filterState\";\nimport type { LintNode, LintSeverity, LinterResult, Violation } from \"./types\";\n\nconst SEVERITY_RANK: Record<LintSeverity, number> = { info: 1, warning: 2, error: 3 };\n\n/** Orders severities: info < warning < error. */\nexport function severityRank(severity: LintSeverity): number {\n return SEVERITY_RANK[severity];\n}\n\n/** A violation without a severity is an error, as on the wire. */\nexport function severityOf(violation: Violation): LintSeverity {\n return violation.severity ?? \"error\";\n}\n\nexport function worstSeverity(violations: readonly Violation[] | undefined): LintSeverity {\n let worst: LintSeverity = \"info\";\n for (const v of violations ?? []) {\n const sev = severityOf(v);\n if (SEVERITY_RANK[sev] > SEVERITY_RANK[worst]) worst = sev;\n }\n return worst;\n}\n\n/** Whether the linter is still queued or running: it has no verdict yet. */\nexport function isLinterInFlight(result: LinterResult): boolean {\n return result.status !== undefined;\n}\n\n/** Whether the linter itself failed to run (as opposed to reporting findings or still being in flight). */\nexport function isLinterErrored(result: LinterResult): boolean {\n return !result.skipped && !isLinterInFlight(result) && (Boolean(result.error) || Boolean(result.timed_out));\n}\n\n/** Why a linter failed: its error text, or \"timed out\" when it only carries the flag. */\nexport function linterErrorMessage(result: LinterResult): string {\n return result.error || \"timed out\";\n}\n\n/** Linters that reported violations, failed to run or are still in flight, sorted by name. */\nexport function collectLintLinters(results: readonly LinterResult[]): string[] {\n const names = new Set<string>();\n for (const r of results) {\n if ((r.violations ?? []).length > 0 || isLinterErrored(r) || isLinterInFlight(r)) names.add(r.linter);\n }\n return Array.from(names).sort();\n}\n\nexport function countLintBySeverity(\n results: readonly LinterResult[],\n linterFilter: FilterState<string>,\n): Record<LintSeverity, number> {\n const counts: Record<LintSeverity, number> = { error: 0, warning: 0, info: 0 };\n for (const r of results) {\n if (!matchesFilterState(r.linter, linterFilter)) continue;\n for (const v of r.violations ?? []) counts[severityOf(v)] += 1;\n }\n return counts;\n}\n\nexport function countLintByLinter(\n results: readonly LinterResult[],\n severityFilter: FilterState<LintSeverity>,\n): Record<string, number> {\n const counts: Record<string, number> = {};\n for (const r of results) {\n for (const v of r.violations ?? []) {\n if (!matchesFilterState(severityOf(v), severityFilter)) continue;\n counts[r.linter] = (counts[r.linter] ?? 0) + 1;\n }\n }\n return counts;\n}\n\nexport function totalLintViolations(results: readonly LinterResult[]): number {\n return results.reduce((n, r) => n + (r.violations ?? []).length, 0);\n}\n\n/** The tool a linter node runs: a nested `<parent>/<tool>` result is just the tool part. */\nexport function linterToolName(node: Pick<LintNode, \"linterName\" | \"nestedUnder\">): string | undefined {\n return node.nestedUnder && node.linterName ? node.linterName.slice(node.nestedUnder.length + 1) : node.linterName;\n}\n\ntype CountableNode = Pick<LintNode, \"violations\" | \"noFileViolations\"> & { children?: CountableNode[] | undefined };\n\n/** Violations at or beneath a node; error leaves count as zero (they are not findings). */\nexport function lintNodeCount(node: CountableNode): number {\n if (node.violations) return node.violations.length;\n return (\n (node.noFileViolations?.length ?? 0) +\n (node.children ?? []).reduce((n, child) => n + lintNodeCount(child), 0)\n );\n}\n\n/** The worst severity at or beneath a node. A linter-error leaf is an error. */\nexport function lintNodeSeverity(node: LintNode): LintSeverity {\n if (node.kind === \"linter-error\") return \"error\";\n let worst: LintSeverity = \"info\";\n const consider = (sev: LintSeverity) => {\n if (SEVERITY_RANK[sev] > SEVERITY_RANK[worst]) worst = sev;\n };\n if (node.violations) consider(worstSeverity(node.violations));\n if (node.noFileViolations) consider(worstSeverity(node.noFileViolations));\n for (const child of node.children ?? []) consider(lintNodeSeverity(child));\n return worst;\n}\n"],"mappings":";;AAKA,IAAM,gBAA8C;CAAE,MAAM;CAAG,SAAS;CAAG,OAAO;AAAE;;AAGpF,SAAgB,aAAa,UAAgC;CAC3D,OAAO,cAAc;AACvB;;AAGA,SAAgB,WAAW,WAAoC;CAC7D,OAAO,UAAU,YAAY;AAC/B;AAEA,SAAgB,cAAc,YAA4D;CACxF,IAAI,QAAsB;CAC1B,KAAK,MAAM,KAAK,cAAc,CAAC,GAAG;EAChC,MAAM,MAAM,WAAW,CAAC;EACxB,IAAI,cAAc,OAAO,cAAc,QAAQ,QAAQ;CACzD;CACA,OAAO;AACT;;AAGA,SAAgB,iBAAiB,QAA+B;CAC9D,OAAO,OAAO,WAAW,KAAA;AAC3B;;AAGA,SAAgB,gBAAgB,QAA+B;CAC7D,OAAO,CAAC,OAAO,WAAW,CAAC,iBAAiB,MAAM,MAAM,QAAQ,OAAO,KAAK,KAAK,QAAQ,OAAO,SAAS;AAC3G;;AAGA,SAAgB,mBAAmB,QAA8B;CAC/D,OAAO,OAAO,SAAS;AACzB;;AAGA,SAAgB,mBAAmB,SAA4C;CAC7E,MAAM,wBAAQ,IAAI,IAAY;CAC9B,KAAK,MAAM,KAAK,SACd,KAAK,EAAE,cAAc,CAAC,EAAA,CAAG,SAAS,KAAK,gBAAgB,CAAC,KAAK,iBAAiB,CAAC,GAAG,MAAM,IAAI,EAAE,MAAM;CAEtG,OAAO,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK;AAChC;AAEA,SAAgB,oBACd,SACA,cAC8B;CAC9B,MAAM,SAAuC;EAAE,OAAO;EAAG,SAAS;EAAG,MAAM;CAAE;CAC7E,KAAK,MAAM,KAAK,SAAS;EACvB,IAAI,CAAC,mBAAmB,EAAE,QAAQ,YAAY,GAAG;EACjD,KAAK,MAAM,KAAK,EAAE,cAAc,CAAC,GAAG,OAAO,WAAW,CAAC,MAAM;CAC/D;CACA,OAAO;AACT;AAEA,SAAgB,kBACd,SACA,gBACwB;CACxB,MAAM,SAAiC,CAAC;CACxC,KAAK,MAAM,KAAK,SACd,KAAK,MAAM,KAAK,EAAE,cAAc,CAAC,GAAG;EAClC,IAAI,CAAC,mBAAmB,WAAW,CAAC,GAAG,cAAc,GAAG;EACxD,OAAO,EAAE,WAAW,OAAO,EAAE,WAAW,KAAK;CAC/C;CAEF,OAAO;AACT;AAEA,SAAgB,oBAAoB,SAA0C;CAC5E,OAAO,QAAQ,QAAQ,GAAG,MAAM,KAAK,EAAE,cAAc,CAAC,EAAA,CAAG,QAAQ,CAAC;AACpE;;AAGA,SAAgB,eAAe,MAAwE;CACrG,OAAO,KAAK,eAAe,KAAK,aAAa,KAAK,WAAW,MAAM,KAAK,YAAY,SAAS,CAAC,IAAI,KAAK;AACzG;;AAKA,SAAgB,cAAc,MAA6B;CACzD,IAAI,KAAK,YAAY,OAAO,KAAK,WAAW;CAC5C,QACG,KAAK,kBAAkB,UAAU,MACjC,KAAK,YAAY,CAAC,EAAA,CAAG,QAAQ,GAAG,UAAU,IAAI,cAAc,KAAK,GAAG,CAAC;AAE1E;;AAGA,SAAgB,iBAAiB,MAA8B;CAC7D,IAAI,KAAK,SAAS,gBAAgB,OAAO;CACzC,IAAI,QAAsB;CAC1B,MAAM,YAAY,QAAsB;EACtC,IAAI,cAAc,OAAO,cAAc,QAAQ,QAAQ;CACzD;CACA,IAAI,KAAK,YAAY,SAAS,cAAc,KAAK,UAAU,CAAC;CAC5D,IAAI,KAAK,kBAAkB,SAAS,cAAc,KAAK,gBAAgB,CAAC;CACxE,KAAK,MAAM,SAAS,KAAK,YAAY,CAAC,GAAG,SAAS,iBAAiB,KAAK,CAAC;CACzE,OAAO;AACT"}
@@ -1,4 +1,11 @@
1
+ const require_timestamp_format = require("../cells/timestamp-format.cjs");
1
2
  // src/data/lint/types.ts
3
+ /** A full cache hit's age, e.g. "3h ago"; undefined for a fresh or partly cached result. */
4
+ function cachedAge(result, now = /* @__PURE__ */ new Date()) {
5
+ const cache = result?.cache;
6
+ if (!cache?.hit) return void 0;
7
+ return require_timestamp_format.formatRelativeTime(new Date(cache.stored_at), now);
8
+ }
2
9
  var DEFAULT_LINT_GROUPING = "linter-rule-file";
3
10
  var LINT_GROUPINGS = [
4
11
  "linter-rule-file",
@@ -14,6 +21,7 @@ function emptyLintFilters() {
14
21
  }
15
22
  exports.DEFAULT_LINT_GROUPING = DEFAULT_LINT_GROUPING;
16
23
  exports.LINT_GROUPINGS = LINT_GROUPINGS;
24
+ exports.cachedAge = cachedAge;
17
25
  exports.emptyLintFilters = emptyLintFilters;
18
26
 
19
27
  //# sourceMappingURL=types.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.cjs","names":[],"sources":["../../../src/data/lint/types.ts"],"sourcesContent":["// Lint data model — gavel's wire shape (models.Violation / linters.LinterResult)\n// plus the synthetic tree nodes the groupings build from it. Field names keep\n// the snake_case wire spelling on purpose so a host can pass a snapshot's\n// `lint` array straight through.\n\nimport type { FilterState } from \"../test-runner/filterState\";\nimport type { LintSeverity } from \"../test-runner/marks\";\n\nexport type { LintSeverity };\n\nexport type Violation = {\n file?: string | undefined;\n /** Frontend-only: the path relative to the linter's work_dir, set while grouping. */\n raw_file?: string | undefined;\n line?: number;\n column?: number;\n message?: string;\n source?: string;\n rule?: {\n method?: string;\n description?: string;\n pattern?: string;\n package?: string;\n } | null;\n /** Absent means error, as on the wire. */\n severity?: LintSeverity;\n /** The offending source snippet, not a rule id. */\n code?: string;\n fixable?: boolean;\n};\n\nexport type LinterResult = {\n linter: string;\n work_dir?: string;\n /** Resolved executable, e.g. \"eslint\". */\n command?: string;\n /** argv without the command name. */\n args?: string[];\n success?: boolean;\n skipped?: boolean;\n timed_out?: boolean;\n /** Nanoseconds. */\n duration?: number;\n /** Go marshals a nil slice as null when the linter failed before reporting. */\n violations: Violation[] | null;\n raw_output?: string;\n /** Why the linter failed to run (or why it was skipped). */\n error?: string;\n file_count?: number;\n rule_count?: number;\n};\n\nexport type LintGrouping = \"linter-rule-file\" | \"linter-file\" | \"file-linter-rule\" | \"summary\";\n\nexport const DEFAULT_LINT_GROUPING: LintGrouping = \"linter-rule-file\";\n\nexport const LINT_GROUPINGS: readonly LintGrouping[] = [\n \"linter-rule-file\",\n \"linter-file\",\n \"file-linter-rule\",\n \"summary\",\n];\n\n/** Tri-state severity and linter filters, same primitives as the test runner. */\nexport type LintFilters = {\n severity: FilterState<LintSeverity>;\n linter: FilterState<string>;\n};\n\nexport function emptyLintFilters(): LintFilters {\n return { severity: new Map(), linter: new Map() };\n}\n\nexport type LintNodeKind =\n | \"linter\"\n | \"lint-folder\"\n | \"lint-file\"\n | \"lint-rule\"\n | \"lint-rule-group\"\n /** A linter that failed to run: the leaf carries its error text. */\n | \"linter-error\";\n\nexport type LintNode = {\n name: string;\n kind: LintNodeKind;\n /** Stable, URL-safe selection key assigned by buildLintTree. */\n route_path: string;\n children?: LintNode[] | undefined;\n file?: string | undefined;\n /** Path relative to the linter's work_dir — what ignore rules match against. */\n target_path?: string | undefined;\n work_dir?: string | undefined;\n linterName?: string | undefined;\n ruleName?: string | undefined;\n linter?: LinterResult | undefined;\n violations?: Violation[] | undefined;\n /** Violations that carry no file, shown on the node itself. */\n noFileViolations?: Violation[] | undefined;\n failed: boolean;\n passed: boolean;\n skipped: boolean;\n message?: string | undefined;\n};\n\n/** The body of an ignore request, matching gavel's `.gavel.yaml` ignore entries. */\nexport type LintIgnoreRequest = {\n source?: string | undefined;\n rule?: string | undefined;\n file?: string | undefined;\n work_dir?: string | undefined;\n};\n\nexport type LintAction = {\n key: string;\n label: string;\n title: string;\n req: LintIgnoreRequest;\n variant?: \"primary\" | \"subtle\";\n /** Folder-scoped ignores cannot be applied without knowing the work dir. */\n disabledWithoutWorkDir?: boolean;\n};\n"],"mappings":";AAsDA,IAAa,wBAAsC;AAEnD,IAAa,iBAA0C;CACrD;CACA;CACA;CACA;AACF;AAQA,SAAgB,mBAAgC;CAC9C,OAAO;EAAE,0BAAU,IAAI,IAAI;EAAG,wBAAQ,IAAI,IAAI;CAAE;AAClD"}
1
+ {"version":3,"file":"types.cjs","names":["formatRelativeTime"],"sources":["../../../src/data/lint/types.ts"],"sourcesContent":["// Lint data model — gavel's wire shape (models.Violation / linters.LinterResult)\n// plus the synthetic tree nodes the groupings build from it. Field names keep\n// the snake_case wire spelling on purpose so a host can pass a snapshot's\n// `lint` array straight through.\n\nimport type { FilterState } from \"../test-runner/filterState\";\nimport type { LintSeverity } from \"../test-runner/marks\";\nimport { formatRelativeTime } from \"../cells/timestamp-format\";\n\nexport type { LintSeverity };\n\nexport type Violation = {\n file?: string | undefined;\n /** Frontend-only: the path relative to the linter's work_dir, set while grouping. */\n raw_file?: string | undefined;\n line?: number;\n column?: number;\n /** Last line of the flagged range, when the linter reports one. */\n end_line?: number;\n /** Column just past the flagged range on `end_line`, when reported. */\n end_column?: number;\n message?: string;\n source?: string;\n rule?: {\n method?: string;\n description?: string;\n pattern?: string;\n package?: string;\n } | null;\n /** Absent means error, as on the wire. */\n severity?: LintSeverity;\n /** The offending source snippet, not a rule id. */\n code?: string;\n fixable?: boolean;\n /**\n * Every place one fix resolves (gavel models.ViolationLocation), `file` and\n * `line` naming the first; absent for a violation found at one place.\n */\n locations?: ViolationLocation[];\n};\n\nexport type ViolationLocation = {\n file: string;\n line?: number;\n column?: number;\n /** What is at this place, e.g. the statement a plan finding came from. */\n message?: string;\n};\n\nexport type LinterResult = {\n linter: string;\n work_dir?: string;\n /** Resolved executable, e.g. \"eslint\". */\n command?: string;\n /** argv without the command name. */\n args?: string[];\n success?: boolean;\n skipped?: boolean;\n timed_out?: boolean;\n /** Nanoseconds. */\n duration?: number;\n /** Go marshals a nil slice as null when the linter failed before reporting. */\n violations: Violation[] | null;\n raw_output?: string;\n /** Why the linter failed to run (or why it was skipped). */\n error?: string;\n file_count?: number;\n rule_count?: number;\n /**\n * Set while the linter is in flight: `pending` (queued, not launched) or\n * `running`. Absent once it has finished, so a finished result never carries it.\n */\n status?: LinterStatus;\n /** Where the result came from when its linter answered from its own cache (gavel linters.ResultProvenance). */\n cache?: LintResultProvenance;\n /** The prompt run that produced (or is producing) this result, for hosts that can follow it. */\n run_id?: string;\n /** The agent session behind that run, kept so a replayed snapshot still names it. */\n session_id?: string;\n};\n\nexport type LinterStatus = \"pending\" | \"running\";\n\nexport type LintResultProvenance = {\n /** What `fingerprint` is computed from: \"build\" (the linter's input digest) or \"uir\" (a UIR symbol closure). */\n source: string;\n fingerprint?: string;\n /** When the oldest reused entry was linted. */\n stored_at: string;\n /** True only when the whole result came from the cache. */\n hit: boolean;\n};\n\n/** A full cache hit's age, e.g. \"3h ago\"; undefined for a fresh or partly cached result. */\nexport function cachedAge(result: LinterResult | undefined, now: Date = new Date()): string | undefined {\n const cache = result?.cache;\n if (!cache?.hit) return undefined;\n return formatRelativeTime(new Date(cache.stored_at), now);\n}\n\nexport type LintGrouping = \"linter-rule-file\" | \"linter-file\" | \"file-linter-rule\" | \"summary\";\n\nexport const DEFAULT_LINT_GROUPING: LintGrouping = \"linter-rule-file\";\n\nexport const LINT_GROUPINGS: readonly LintGrouping[] = [\n \"linter-rule-file\",\n \"linter-file\",\n \"file-linter-rule\",\n \"summary\",\n];\n\n/** Tri-state severity and linter filters, same primitives as the test runner. */\nexport type LintFilters = {\n severity: FilterState<LintSeverity>;\n linter: FilterState<string>;\n};\n\nexport function emptyLintFilters(): LintFilters {\n return { severity: new Map(), linter: new Map() };\n}\n\nexport type LintNodeKind =\n | \"linter\"\n | \"lint-folder\"\n | \"lint-file\"\n | \"lint-rule\"\n | \"lint-rule-group\"\n /** A linter that failed to run: the leaf carries its error text. */\n | \"linter-error\";\n\nexport type LintNode = {\n name: string;\n kind: LintNodeKind;\n /** Stable, URL-safe selection key assigned by buildLintTree. */\n route_path: string;\n children?: LintNode[] | undefined;\n file?: string | undefined;\n /** Path relative to the linter's work_dir — what ignore rules match against. */\n target_path?: string | undefined;\n work_dir?: string | undefined;\n linterName?: string | undefined;\n /**\n * For a linter published as `<parent>/<child>` beneath an existing `<parent>`\n * result: the parent's linter name. `name` is then just the child part and\n * `linterName` stays the full result name.\n */\n nestedUnder?: string | undefined;\n ruleName?: string | undefined;\n linter?: LinterResult | undefined;\n violations?: Violation[] | undefined;\n /** Violations that carry no file, shown on the node itself. */\n noFileViolations?: Violation[] | undefined;\n failed: boolean;\n passed: boolean;\n skipped: boolean;\n message?: string | undefined;\n};\n\n/** The body of an ignore request, matching gavel's `.gavel.yaml` ignore entries. */\nexport type LintIgnoreRequest = {\n source?: string | undefined;\n rule?: string | undefined;\n file?: string | undefined;\n /** Narrows a `file` ignore to the violation on this 1-based line. */\n line?: number | undefined;\n work_dir?: string | undefined;\n};\n\nexport type LintAction = {\n key: string;\n label: string;\n title: string;\n req: LintIgnoreRequest;\n variant?: \"primary\" | \"subtle\";\n /** Folder-scoped ignores cannot be applied without knowing the work dir. */\n disabledWithoutWorkDir?: boolean;\n};\n"],"mappings":";;;AA8FA,SAAgB,UAAU,QAAkC,sBAAY,IAAI,KAAK,GAAuB;CACtG,MAAM,QAAQ,QAAQ;CACtB,IAAI,CAAC,OAAO,KAAK,OAAO,KAAA;CACxB,OAAOA,yBAAAA,mBAAmB,IAAI,KAAK,MAAM,SAAS,GAAG,GAAG;AAC1D;AAIA,IAAa,wBAAsC;AAEnD,IAAa,iBAA0C;CACrD;CACA;CACA;CACA;AACF;AAQA,SAAgB,mBAAgC;CAC9C,OAAO;EAAE,0BAAU,IAAI,IAAI;EAAG,wBAAQ,IAAI,IAAI;CAAE;AAClD"}
@@ -7,6 +7,10 @@ export type Violation = {
7
7
  raw_file?: string | undefined;
8
8
  line?: number;
9
9
  column?: number;
10
+ /** Last line of the flagged range, when the linter reports one. */
11
+ end_line?: number;
12
+ /** Column just past the flagged range on `end_line`, when reported. */
13
+ end_column?: number;
10
14
  message?: string;
11
15
  source?: string;
12
16
  rule?: {
@@ -20,6 +24,18 @@ export type Violation = {
20
24
  /** The offending source snippet, not a rule id. */
21
25
  code?: string;
22
26
  fixable?: boolean;
27
+ /**
28
+ * Every place one fix resolves (gavel models.ViolationLocation), `file` and
29
+ * `line` naming the first; absent for a violation found at one place.
30
+ */
31
+ locations?: ViolationLocation[];
32
+ };
33
+ export type ViolationLocation = {
34
+ file: string;
35
+ line?: number;
36
+ column?: number;
37
+ /** What is at this place, e.g. the statement a plan finding came from. */
38
+ message?: string;
23
39
  };
24
40
  export type LinterResult = {
25
41
  linter: string;
@@ -40,7 +56,30 @@ export type LinterResult = {
40
56
  error?: string;
41
57
  file_count?: number;
42
58
  rule_count?: number;
59
+ /**
60
+ * Set while the linter is in flight: `pending` (queued, not launched) or
61
+ * `running`. Absent once it has finished, so a finished result never carries it.
62
+ */
63
+ status?: LinterStatus;
64
+ /** Where the result came from when its linter answered from its own cache (gavel linters.ResultProvenance). */
65
+ cache?: LintResultProvenance;
66
+ /** The prompt run that produced (or is producing) this result, for hosts that can follow it. */
67
+ run_id?: string;
68
+ /** The agent session behind that run, kept so a replayed snapshot still names it. */
69
+ session_id?: string;
70
+ };
71
+ export type LinterStatus = "pending" | "running";
72
+ export type LintResultProvenance = {
73
+ /** What `fingerprint` is computed from: "build" (the linter's input digest) or "uir" (a UIR symbol closure). */
74
+ source: string;
75
+ fingerprint?: string;
76
+ /** When the oldest reused entry was linted. */
77
+ stored_at: string;
78
+ /** True only when the whole result came from the cache. */
79
+ hit: boolean;
43
80
  };
81
+ /** A full cache hit's age, e.g. "3h ago"; undefined for a fresh or partly cached result. */
82
+ export declare function cachedAge(result: LinterResult | undefined, now?: Date): string | undefined;
44
83
  export type LintGrouping = "linter-rule-file" | "linter-file" | "file-linter-rule" | "summary";
45
84
  export declare const DEFAULT_LINT_GROUPING: LintGrouping;
46
85
  export declare const LINT_GROUPINGS: readonly LintGrouping[];
@@ -64,6 +103,12 @@ export type LintNode = {
64
103
  target_path?: string | undefined;
65
104
  work_dir?: string | undefined;
66
105
  linterName?: string | undefined;
106
+ /**
107
+ * For a linter published as `<parent>/<child>` beneath an existing `<parent>`
108
+ * result: the parent's linter name. `name` is then just the child part and
109
+ * `linterName` stays the full result name.
110
+ */
111
+ nestedUnder?: string | undefined;
67
112
  ruleName?: string | undefined;
68
113
  linter?: LinterResult | undefined;
69
114
  violations?: Violation[] | undefined;
@@ -79,6 +124,8 @@ export type LintIgnoreRequest = {
79
124
  source?: string | undefined;
80
125
  rule?: string | undefined;
81
126
  file?: string | undefined;
127
+ /** Narrows a `file` ignore to the violation on this 1-based line. */
128
+ line?: number | undefined;
82
129
  work_dir?: string | undefined;
83
130
  };
84
131
  export type LintAction = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/data/lint/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/data/lint/types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,11 @@
1
+ import { formatRelativeTime } from "../cells/timestamp-format.js";
1
2
  // src/data/lint/types.ts
3
+ /** A full cache hit's age, e.g. "3h ago"; undefined for a fresh or partly cached result. */
4
+ function cachedAge(result, now = /* @__PURE__ */ new Date()) {
5
+ const cache = result?.cache;
6
+ if (!cache?.hit) return void 0;
7
+ return formatRelativeTime(new Date(cache.stored_at), now);
8
+ }
2
9
  var DEFAULT_LINT_GROUPING = "linter-rule-file";
3
10
  var LINT_GROUPINGS = [
4
11
  "linter-rule-file",
@@ -12,6 +19,6 @@ function emptyLintFilters() {
12
19
  linter: /* @__PURE__ */ new Map()
13
20
  };
14
21
  }
15
- export { DEFAULT_LINT_GROUPING, LINT_GROUPINGS, emptyLintFilters };
22
+ export { DEFAULT_LINT_GROUPING, LINT_GROUPINGS, cachedAge, emptyLintFilters };
16
23
 
17
24
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/data/lint/types.ts"],"sourcesContent":["// Lint data model — gavel's wire shape (models.Violation / linters.LinterResult)\n// plus the synthetic tree nodes the groupings build from it. Field names keep\n// the snake_case wire spelling on purpose so a host can pass a snapshot's\n// `lint` array straight through.\n\nimport type { FilterState } from \"../test-runner/filterState\";\nimport type { LintSeverity } from \"../test-runner/marks\";\n\nexport type { LintSeverity };\n\nexport type Violation = {\n file?: string | undefined;\n /** Frontend-only: the path relative to the linter's work_dir, set while grouping. */\n raw_file?: string | undefined;\n line?: number;\n column?: number;\n message?: string;\n source?: string;\n rule?: {\n method?: string;\n description?: string;\n pattern?: string;\n package?: string;\n } | null;\n /** Absent means error, as on the wire. */\n severity?: LintSeverity;\n /** The offending source snippet, not a rule id. */\n code?: string;\n fixable?: boolean;\n};\n\nexport type LinterResult = {\n linter: string;\n work_dir?: string;\n /** Resolved executable, e.g. \"eslint\". */\n command?: string;\n /** argv without the command name. */\n args?: string[];\n success?: boolean;\n skipped?: boolean;\n timed_out?: boolean;\n /** Nanoseconds. */\n duration?: number;\n /** Go marshals a nil slice as null when the linter failed before reporting. */\n violations: Violation[] | null;\n raw_output?: string;\n /** Why the linter failed to run (or why it was skipped). */\n error?: string;\n file_count?: number;\n rule_count?: number;\n};\n\nexport type LintGrouping = \"linter-rule-file\" | \"linter-file\" | \"file-linter-rule\" | \"summary\";\n\nexport const DEFAULT_LINT_GROUPING: LintGrouping = \"linter-rule-file\";\n\nexport const LINT_GROUPINGS: readonly LintGrouping[] = [\n \"linter-rule-file\",\n \"linter-file\",\n \"file-linter-rule\",\n \"summary\",\n];\n\n/** Tri-state severity and linter filters, same primitives as the test runner. */\nexport type LintFilters = {\n severity: FilterState<LintSeverity>;\n linter: FilterState<string>;\n};\n\nexport function emptyLintFilters(): LintFilters {\n return { severity: new Map(), linter: new Map() };\n}\n\nexport type LintNodeKind =\n | \"linter\"\n | \"lint-folder\"\n | \"lint-file\"\n | \"lint-rule\"\n | \"lint-rule-group\"\n /** A linter that failed to run: the leaf carries its error text. */\n | \"linter-error\";\n\nexport type LintNode = {\n name: string;\n kind: LintNodeKind;\n /** Stable, URL-safe selection key assigned by buildLintTree. */\n route_path: string;\n children?: LintNode[] | undefined;\n file?: string | undefined;\n /** Path relative to the linter's work_dir — what ignore rules match against. */\n target_path?: string | undefined;\n work_dir?: string | undefined;\n linterName?: string | undefined;\n ruleName?: string | undefined;\n linter?: LinterResult | undefined;\n violations?: Violation[] | undefined;\n /** Violations that carry no file, shown on the node itself. */\n noFileViolations?: Violation[] | undefined;\n failed: boolean;\n passed: boolean;\n skipped: boolean;\n message?: string | undefined;\n};\n\n/** The body of an ignore request, matching gavel's `.gavel.yaml` ignore entries. */\nexport type LintIgnoreRequest = {\n source?: string | undefined;\n rule?: string | undefined;\n file?: string | undefined;\n work_dir?: string | undefined;\n};\n\nexport type LintAction = {\n key: string;\n label: string;\n title: string;\n req: LintIgnoreRequest;\n variant?: \"primary\" | \"subtle\";\n /** Folder-scoped ignores cannot be applied without knowing the work dir. */\n disabledWithoutWorkDir?: boolean;\n};\n"],"mappings":";AAsDA,IAAa,wBAAsC;AAEnD,IAAa,iBAA0C;CACrD;CACA;CACA;CACA;AACF;AAQA,SAAgB,mBAAgC;CAC9C,OAAO;EAAE,0BAAU,IAAI,IAAI;EAAG,wBAAQ,IAAI,IAAI;CAAE;AAClD"}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/data/lint/types.ts"],"sourcesContent":["// Lint data model — gavel's wire shape (models.Violation / linters.LinterResult)\n// plus the synthetic tree nodes the groupings build from it. Field names keep\n// the snake_case wire spelling on purpose so a host can pass a snapshot's\n// `lint` array straight through.\n\nimport type { FilterState } from \"../test-runner/filterState\";\nimport type { LintSeverity } from \"../test-runner/marks\";\nimport { formatRelativeTime } from \"../cells/timestamp-format\";\n\nexport type { LintSeverity };\n\nexport type Violation = {\n file?: string | undefined;\n /** Frontend-only: the path relative to the linter's work_dir, set while grouping. */\n raw_file?: string | undefined;\n line?: number;\n column?: number;\n /** Last line of the flagged range, when the linter reports one. */\n end_line?: number;\n /** Column just past the flagged range on `end_line`, when reported. */\n end_column?: number;\n message?: string;\n source?: string;\n rule?: {\n method?: string;\n description?: string;\n pattern?: string;\n package?: string;\n } | null;\n /** Absent means error, as on the wire. */\n severity?: LintSeverity;\n /** The offending source snippet, not a rule id. */\n code?: string;\n fixable?: boolean;\n /**\n * Every place one fix resolves (gavel models.ViolationLocation), `file` and\n * `line` naming the first; absent for a violation found at one place.\n */\n locations?: ViolationLocation[];\n};\n\nexport type ViolationLocation = {\n file: string;\n line?: number;\n column?: number;\n /** What is at this place, e.g. the statement a plan finding came from. */\n message?: string;\n};\n\nexport type LinterResult = {\n linter: string;\n work_dir?: string;\n /** Resolved executable, e.g. \"eslint\". */\n command?: string;\n /** argv without the command name. */\n args?: string[];\n success?: boolean;\n skipped?: boolean;\n timed_out?: boolean;\n /** Nanoseconds. */\n duration?: number;\n /** Go marshals a nil slice as null when the linter failed before reporting. */\n violations: Violation[] | null;\n raw_output?: string;\n /** Why the linter failed to run (or why it was skipped). */\n error?: string;\n file_count?: number;\n rule_count?: number;\n /**\n * Set while the linter is in flight: `pending` (queued, not launched) or\n * `running`. Absent once it has finished, so a finished result never carries it.\n */\n status?: LinterStatus;\n /** Where the result came from when its linter answered from its own cache (gavel linters.ResultProvenance). */\n cache?: LintResultProvenance;\n /** The prompt run that produced (or is producing) this result, for hosts that can follow it. */\n run_id?: string;\n /** The agent session behind that run, kept so a replayed snapshot still names it. */\n session_id?: string;\n};\n\nexport type LinterStatus = \"pending\" | \"running\";\n\nexport type LintResultProvenance = {\n /** What `fingerprint` is computed from: \"build\" (the linter's input digest) or \"uir\" (a UIR symbol closure). */\n source: string;\n fingerprint?: string;\n /** When the oldest reused entry was linted. */\n stored_at: string;\n /** True only when the whole result came from the cache. */\n hit: boolean;\n};\n\n/** A full cache hit's age, e.g. \"3h ago\"; undefined for a fresh or partly cached result. */\nexport function cachedAge(result: LinterResult | undefined, now: Date = new Date()): string | undefined {\n const cache = result?.cache;\n if (!cache?.hit) return undefined;\n return formatRelativeTime(new Date(cache.stored_at), now);\n}\n\nexport type LintGrouping = \"linter-rule-file\" | \"linter-file\" | \"file-linter-rule\" | \"summary\";\n\nexport const DEFAULT_LINT_GROUPING: LintGrouping = \"linter-rule-file\";\n\nexport const LINT_GROUPINGS: readonly LintGrouping[] = [\n \"linter-rule-file\",\n \"linter-file\",\n \"file-linter-rule\",\n \"summary\",\n];\n\n/** Tri-state severity and linter filters, same primitives as the test runner. */\nexport type LintFilters = {\n severity: FilterState<LintSeverity>;\n linter: FilterState<string>;\n};\n\nexport function emptyLintFilters(): LintFilters {\n return { severity: new Map(), linter: new Map() };\n}\n\nexport type LintNodeKind =\n | \"linter\"\n | \"lint-folder\"\n | \"lint-file\"\n | \"lint-rule\"\n | \"lint-rule-group\"\n /** A linter that failed to run: the leaf carries its error text. */\n | \"linter-error\";\n\nexport type LintNode = {\n name: string;\n kind: LintNodeKind;\n /** Stable, URL-safe selection key assigned by buildLintTree. */\n route_path: string;\n children?: LintNode[] | undefined;\n file?: string | undefined;\n /** Path relative to the linter's work_dir — what ignore rules match against. */\n target_path?: string | undefined;\n work_dir?: string | undefined;\n linterName?: string | undefined;\n /**\n * For a linter published as `<parent>/<child>` beneath an existing `<parent>`\n * result: the parent's linter name. `name` is then just the child part and\n * `linterName` stays the full result name.\n */\n nestedUnder?: string | undefined;\n ruleName?: string | undefined;\n linter?: LinterResult | undefined;\n violations?: Violation[] | undefined;\n /** Violations that carry no file, shown on the node itself. */\n noFileViolations?: Violation[] | undefined;\n failed: boolean;\n passed: boolean;\n skipped: boolean;\n message?: string | undefined;\n};\n\n/** The body of an ignore request, matching gavel's `.gavel.yaml` ignore entries. */\nexport type LintIgnoreRequest = {\n source?: string | undefined;\n rule?: string | undefined;\n file?: string | undefined;\n /** Narrows a `file` ignore to the violation on this 1-based line. */\n line?: number | undefined;\n work_dir?: string | undefined;\n};\n\nexport type LintAction = {\n key: string;\n label: string;\n title: string;\n req: LintIgnoreRequest;\n variant?: \"primary\" | \"subtle\";\n /** Folder-scoped ignores cannot be applied without knowing the work dir. */\n disabledWithoutWorkDir?: boolean;\n};\n"],"mappings":";;;AA8FA,SAAgB,UAAU,QAAkC,sBAAY,IAAI,KAAK,GAAuB;CACtG,MAAM,QAAQ,QAAQ;CACtB,IAAI,CAAC,OAAO,KAAK,OAAO,KAAA;CACxB,OAAO,mBAAmB,IAAI,KAAK,MAAM,SAAS,GAAG,GAAG;AAC1D;AAIA,IAAa,wBAAsC;AAEnD,IAAa,iBAA0C;CACrD;CACA;CACA;CACA;AACF;AAQA,SAAgB,mBAAgC;CAC9C,OAAO;EAAE,0BAAU,IAAI,IAAI;EAAG,wBAAQ,IAAI,IAAI;CAAE;AAClD"}
@@ -0,0 +1,31 @@
1
+ const require_actions = require("./actions.cjs");
2
+ const require_ignore_menu_items = require("./ignore-menu-items.cjs");
3
+ // src/data/lint/violation-menu-items.ts
4
+ function violationMenuItems({ violation, linter, file, workDir, onIgnore, ignoreBusy, onOpenFile }) {
5
+ const ignores = onIgnore ? require_actions.violationIgnoreActions({
6
+ violation,
7
+ linter,
8
+ file,
9
+ workDir
10
+ }) : [];
11
+ return [
12
+ {
13
+ label: "Copy description",
14
+ onSelect: () => {
15
+ navigator.clipboard.writeText(violation.message ?? "");
16
+ }
17
+ },
18
+ ...onOpenFile && file ? [{
19
+ label: "Open in Files",
20
+ onSelect: () => onOpenFile({
21
+ file,
22
+ ...workDir ? { workDir } : {},
23
+ ...violation.line ? { line: violation.line } : {}
24
+ })
25
+ }] : [],
26
+ ...onIgnore ? require_ignore_menu_items.ignoreMenuItems(ignores, onIgnore, Boolean(ignoreBusy)) : []
27
+ ];
28
+ }
29
+ exports.violationMenuItems = violationMenuItems;
30
+
31
+ //# sourceMappingURL=violation-menu-items.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"violation-menu-items.cjs","names":["violationIgnoreActions","ignoreMenuItems"],"sources":["../../../src/data/lint/violation-menu-items.ts"],"sourcesContent":["import type { HostActionProps } from \"./LintDetail\";\nimport type { Violation } from \"./types\";\nimport { violationIgnoreActions } from \"./actions\";\nimport { ignoreMenuItems } from \"./ignore-menu-items\";\n\nexport type ViolationProps = HostActionProps & {\n violation: Violation;\n linter: string;\n /** The file an ignore rule targets; empty when the violation has none. */\n file: string;\n workDir: string;\n showFile?: boolean;\n};\n\nexport function violationMenuItems({\n violation,\n linter,\n file,\n workDir,\n onIgnore,\n ignoreBusy,\n onOpenFile,\n}: ViolationProps) {\n const ignores = onIgnore\n ? violationIgnoreActions({ violation, linter, file, workDir })\n : [];\n return [\n {\n label: \"Copy description\",\n onSelect: () => {\n void navigator.clipboard.writeText(violation.message ?? \"\");\n },\n },\n ...(onOpenFile && file\n ? [\n {\n label: \"Open in Files\",\n onSelect: () =>\n onOpenFile({\n file,\n ...(workDir ? { workDir } : {}),\n ...(violation.line ? { line: violation.line } : {}),\n }),\n },\n ]\n : []),\n ...(onIgnore\n ? ignoreMenuItems(ignores, onIgnore, Boolean(ignoreBusy))\n : []),\n ];\n}\n"],"mappings":";;;AAcA,SAAgB,mBAAmB,EACjC,WACA,QACA,MACA,SACA,UACA,YACA,cACiB;CACjB,MAAM,UAAU,WACZA,gBAAAA,uBAAuB;EAAE;EAAW;EAAQ;EAAM;CAAQ,CAAC,IAC3D,CAAC;CACL,OAAO;EACL;GACE,OAAO;GACP,gBAAgB;IACd,UAAe,UAAU,UAAU,UAAU,WAAW,EAAE;GAC5D;EACF;EACA,GAAI,cAAc,OACd,CACE;GACE,OAAO;GACP,gBACE,WAAW;IACT;IACA,GAAI,UAAU,EAAE,QAAQ,IAAI,CAAC;IAC7B,GAAI,UAAU,OAAO,EAAE,MAAM,UAAU,KAAK,IAAI,CAAC;GACnD,CAAC;EACL,CACF,IACA,CAAC;EACL,GAAI,WACAC,0BAAAA,gBAAgB,SAAS,UAAU,QAAQ,UAAU,CAAC,IACtD,CAAC;CACP;AACF"}
@@ -0,0 +1,12 @@
1
+ import { HostActionProps } from './LintDetail.js';
2
+ import { Violation } from './types.js';
3
+ export type ViolationProps = HostActionProps & {
4
+ violation: Violation;
5
+ linter: string;
6
+ /** The file an ignore rule targets; empty when the violation has none. */
7
+ file: string;
8
+ workDir: string;
9
+ showFile?: boolean;
10
+ };
11
+ export declare function violationMenuItems({ violation, linter, file, workDir, onIgnore, ignoreBusy, onOpenFile, }: ViolationProps): import('../../index.js').DropdownMenuItem[];
12
+ //# sourceMappingURL=violation-menu-items.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"violation-menu-items.d.ts","sourceRoot":"","sources":["../../../src/data/lint/violation-menu-items.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAIzC,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG;IAC7C,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,MAAM,EACN,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,GACX,EAAE,cAAc,sCA4BhB"}
@@ -0,0 +1,31 @@
1
+ import { violationIgnoreActions } from "./actions.js";
2
+ import { ignoreMenuItems } from "./ignore-menu-items.js";
3
+ // src/data/lint/violation-menu-items.ts
4
+ function violationMenuItems({ violation, linter, file, workDir, onIgnore, ignoreBusy, onOpenFile }) {
5
+ const ignores = onIgnore ? violationIgnoreActions({
6
+ violation,
7
+ linter,
8
+ file,
9
+ workDir
10
+ }) : [];
11
+ return [
12
+ {
13
+ label: "Copy description",
14
+ onSelect: () => {
15
+ navigator.clipboard.writeText(violation.message ?? "");
16
+ }
17
+ },
18
+ ...onOpenFile && file ? [{
19
+ label: "Open in Files",
20
+ onSelect: () => onOpenFile({
21
+ file,
22
+ ...workDir ? { workDir } : {},
23
+ ...violation.line ? { line: violation.line } : {}
24
+ })
25
+ }] : [],
26
+ ...onIgnore ? ignoreMenuItems(ignores, onIgnore, Boolean(ignoreBusy)) : []
27
+ ];
28
+ }
29
+ export { violationMenuItems };
30
+
31
+ //# sourceMappingURL=violation-menu-items.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"violation-menu-items.js","names":[],"sources":["../../../src/data/lint/violation-menu-items.ts"],"sourcesContent":["import type { HostActionProps } from \"./LintDetail\";\nimport type { Violation } from \"./types\";\nimport { violationIgnoreActions } from \"./actions\";\nimport { ignoreMenuItems } from \"./ignore-menu-items\";\n\nexport type ViolationProps = HostActionProps & {\n violation: Violation;\n linter: string;\n /** The file an ignore rule targets; empty when the violation has none. */\n file: string;\n workDir: string;\n showFile?: boolean;\n};\n\nexport function violationMenuItems({\n violation,\n linter,\n file,\n workDir,\n onIgnore,\n ignoreBusy,\n onOpenFile,\n}: ViolationProps) {\n const ignores = onIgnore\n ? violationIgnoreActions({ violation, linter, file, workDir })\n : [];\n return [\n {\n label: \"Copy description\",\n onSelect: () => {\n void navigator.clipboard.writeText(violation.message ?? \"\");\n },\n },\n ...(onOpenFile && file\n ? [\n {\n label: \"Open in Files\",\n onSelect: () =>\n onOpenFile({\n file,\n ...(workDir ? { workDir } : {}),\n ...(violation.line ? { line: violation.line } : {}),\n }),\n },\n ]\n : []),\n ...(onIgnore\n ? ignoreMenuItems(ignores, onIgnore, Boolean(ignoreBusy))\n : []),\n ];\n}\n"],"mappings":";;;AAcA,SAAgB,mBAAmB,EACjC,WACA,QACA,MACA,SACA,UACA,YACA,cACiB;CACjB,MAAM,UAAU,WACZ,uBAAuB;EAAE;EAAW;EAAQ;EAAM;CAAQ,CAAC,IAC3D,CAAC;CACL,OAAO;EACL;GACE,OAAO;GACP,gBAAgB;IACd,UAAe,UAAU,UAAU,UAAU,WAAW,EAAE;GAC5D;EACF;EACA,GAAI,cAAc,OACd,CACE;GACE,OAAO;GACP,gBACE,WAAW;IACT;IACA,GAAI,UAAU,EAAE,QAAQ,IAAI,CAAC;IAC7B,GAAI,UAAU,OAAO,EAAE,MAAM,UAAU,KAAK,IAAI,CAAC;GACnD,CAAC;EACL,CACF,IACA,CAAC;EACL,GAAI,WACA,gBAAgB,SAAS,UAAU,QAAQ,UAAU,CAAC,IACtD,CAAC;CACP;AACF"}
@@ -0,0 +1,38 @@
1
+ // src/data/markdown-source-blocks.ts
2
+ var SOURCE_START_ATTR = "data-source-start";
3
+ var SOURCE_END_ATTR = "data-source-end";
4
+ /**
5
+ * Rehype plugin: sets `dataSourceStart` / `dataSourceEnd` (rendered as
6
+ * `data-source-start` / `data-source-end`) on each element directly under the
7
+ * root. Run it after sanitising, which would otherwise strip the attributes.
8
+ * Positions are only absolute when the whole document is parsed as one block.
9
+ * An element with no position (it cannot be traced to a source line) is left
10
+ * unstamped rather than given an invented range.
11
+ */
12
+ function rehypeSourceBlocks() {
13
+ return (tree) => {
14
+ for (const child of tree.children ?? []) {
15
+ if (child.type !== "element" || !child.position) continue;
16
+ child.properties = {
17
+ ...child.properties,
18
+ dataSourceStart: child.position.start.line,
19
+ dataSourceEnd: child.position.end.line
20
+ };
21
+ }
22
+ };
23
+ }
24
+ /** The `data-source-*` attributes among `props`, for forwarding onto a rendered element. */
25
+ function sourceAttributes(props) {
26
+ const start = props[SOURCE_START_ATTR];
27
+ const end = props[SOURCE_END_ATTR];
28
+ return {
29
+ ...typeof start === "string" || typeof start === "number" ? { [SOURCE_START_ATTR]: start } : {},
30
+ ...typeof end === "string" || typeof end === "number" ? { [SOURCE_END_ATTR]: end } : {}
31
+ };
32
+ }
33
+ exports.SOURCE_END_ATTR = SOURCE_END_ATTR;
34
+ exports.SOURCE_START_ATTR = SOURCE_START_ATTR;
35
+ exports.rehypeSourceBlocks = rehypeSourceBlocks;
36
+ exports.sourceAttributes = sourceAttributes;
37
+
38
+ //# sourceMappingURL=markdown-source-blocks.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-source-blocks.cjs","names":[],"sources":["../../src/data/markdown-source-blocks.ts"],"sourcesContent":["// Source-line anchors for rendered markdown. A rehype plugin that stamps every\n// top-level block with the 1-based line range it came from, so a host can map\n// a line number in the original file onto the rendered element that shows it.\n\ntype HastNode = {\n type: string;\n position?: { start: { line: number }; end: { line: number } } | undefined;\n properties?: Record<string, unknown> | undefined;\n children?: HastNode[] | undefined;\n};\n\nexport const SOURCE_START_ATTR = \"data-source-start\";\nexport const SOURCE_END_ATTR = \"data-source-end\";\n\nexport type SourceAttributes = {\n \"data-source-start\"?: string | number | undefined;\n \"data-source-end\"?: string | number | undefined;\n};\n\n/**\n * Rehype plugin: sets `dataSourceStart` / `dataSourceEnd` (rendered as\n * `data-source-start` / `data-source-end`) on each element directly under the\n * root. Run it after sanitising, which would otherwise strip the attributes.\n * Positions are only absolute when the whole document is parsed as one block.\n * An element with no position (it cannot be traced to a source line) is left\n * unstamped rather than given an invented range.\n */\nexport function rehypeSourceBlocks() {\n return (tree: HastNode) => {\n for (const child of tree.children ?? []) {\n if (child.type !== \"element\" || !child.position) continue;\n child.properties = {\n ...child.properties,\n dataSourceStart: child.position.start.line,\n dataSourceEnd: child.position.end.line,\n };\n }\n };\n}\n\n/** The `data-source-*` attributes among `props`, for forwarding onto a rendered element. */\nexport function sourceAttributes(props: Record<string, unknown>): SourceAttributes {\n const start = props[SOURCE_START_ATTR];\n const end = props[SOURCE_END_ATTR];\n return {\n ...(typeof start === \"string\" || typeof start === \"number\" ? { [SOURCE_START_ATTR]: start } : {}),\n ...(typeof end === \"string\" || typeof end === \"number\" ? { [SOURCE_END_ATTR]: end } : {}),\n };\n}\n"],"mappings":";AAWA,IAAa,oBAAoB;AACjC,IAAa,kBAAkB;;;;;;;;;AAe/B,SAAgB,qBAAqB;CACnC,QAAQ,SAAmB;EACzB,KAAK,MAAM,SAAS,KAAK,YAAY,CAAC,GAAG;GACvC,IAAI,MAAM,SAAS,aAAa,CAAC,MAAM,UAAU;GACjD,MAAM,aAAa;IACjB,GAAG,MAAM;IACT,iBAAiB,MAAM,SAAS,MAAM;IACtC,eAAe,MAAM,SAAS,IAAI;GACpC;EACF;CACF;AACF;;AAGA,SAAgB,iBAAiB,OAAkD;CACjF,MAAM,QAAQ,MAAM;CACpB,MAAM,MAAM,MAAM;CAClB,OAAO;EACL,GAAI,OAAO,UAAU,YAAY,OAAO,UAAU,WAAW,GAAG,oBAAoB,MAAM,IAAI,CAAC;EAC/F,GAAI,OAAO,QAAQ,YAAY,OAAO,QAAQ,WAAW,GAAG,kBAAkB,IAAI,IAAI,CAAC;CACzF;AACF"}