@flanksource/clicky-ui 0.3.46 → 0.3.47

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 (379) hide show
  1. package/NOTICE.md +11 -0
  2. package/dist/ai.cjs +13 -8
  3. package/dist/ai.cjs.map +1 -1
  4. package/dist/ai.js +7 -2
  5. package/dist/ai.js.map +1 -1
  6. package/dist/components/ErrorWrapper.cjs +2 -3
  7. package/dist/components/ErrorWrapper.cjs.map +1 -1
  8. package/dist/components/ErrorWrapper.d.ts.map +1 -1
  9. package/dist/components/ErrorWrapper.js +3 -4
  10. package/dist/components/ErrorWrapper.js.map +1 -1
  11. package/dist/data/Clicky.cjs +3 -0
  12. package/dist/data/Clicky.cjs.map +1 -1
  13. package/dist/data/Clicky.js +3 -0
  14. package/dist/data/Clicky.js.map +1 -1
  15. package/dist/data/FilterPill.cjs +15 -2
  16. package/dist/data/FilterPill.cjs.map +1 -1
  17. package/dist/data/FilterPill.d.ts +1 -1
  18. package/dist/data/FilterPill.d.ts.map +1 -1
  19. package/dist/data/FilterPill.js +15 -2
  20. package/dist/data/FilterPill.js.map +1 -1
  21. package/dist/data/LogViewer.cjs +27 -8
  22. package/dist/data/LogViewer.cjs.map +1 -1
  23. package/dist/data/LogViewer.d.ts +11 -3
  24. package/dist/data/LogViewer.d.ts.map +1 -1
  25. package/dist/data/LogViewer.js +27 -8
  26. package/dist/data/LogViewer.js.map +1 -1
  27. package/dist/data/Properties.cjs +2 -15
  28. package/dist/data/Properties.cjs.map +1 -1
  29. package/dist/data/Properties.d.ts +4 -0
  30. package/dist/data/Properties.d.ts.map +1 -1
  31. package/dist/data/Properties.js +2 -15
  32. package/dist/data/Properties.js.map +1 -1
  33. package/dist/data/PropertyValue.cjs +37 -0
  34. package/dist/data/PropertyValue.cjs.map +1 -0
  35. package/dist/data/PropertyValue.d.ts +6 -0
  36. package/dist/data/PropertyValue.d.ts.map +1 -0
  37. package/dist/data/PropertyValue.js +37 -0
  38. package/dist/data/PropertyValue.js.map +1 -0
  39. package/dist/data/Tree.cjs +4 -3
  40. package/dist/data/Tree.cjs.map +1 -1
  41. package/dist/data/Tree.d.ts +3 -1
  42. package/dist/data/Tree.d.ts.map +1 -1
  43. package/dist/data/Tree.js +4 -3
  44. package/dist/data/Tree.js.map +1 -1
  45. package/dist/data/ai/ChatFab.cjs +1 -1
  46. package/dist/data/ai/ChatFab.cjs.map +1 -1
  47. package/dist/data/ai/ChatFab.js +1 -1
  48. package/dist/data/ai/ChatFab.js.map +1 -1
  49. package/dist/data/ai/ChatWindow.cjs +106 -171
  50. package/dist/data/ai/ChatWindow.cjs.map +1 -1
  51. package/dist/data/ai/ChatWindow.d.ts +6 -2
  52. package/dist/data/ai/ChatWindow.d.ts.map +1 -1
  53. package/dist/data/ai/ChatWindow.header.cjs +104 -0
  54. package/dist/data/ai/ChatWindow.header.cjs.map +1 -0
  55. package/dist/data/ai/ChatWindow.header.d.ts +29 -0
  56. package/dist/data/ai/ChatWindow.header.d.ts.map +1 -0
  57. package/dist/data/ai/ChatWindow.header.js +104 -0
  58. package/dist/data/ai/ChatWindow.header.js.map +1 -0
  59. package/dist/data/ai/ChatWindow.js +107 -172
  60. package/dist/data/ai/ChatWindow.js.map +1 -1
  61. package/dist/data/ai/ChatWindow.placement.cjs +95 -0
  62. package/dist/data/ai/ChatWindow.placement.cjs.map +1 -0
  63. package/dist/data/ai/ChatWindow.placement.d.ts +32 -0
  64. package/dist/data/ai/ChatWindow.placement.d.ts.map +1 -0
  65. package/dist/data/ai/ChatWindow.placement.js +95 -0
  66. package/dist/data/ai/ChatWindow.placement.js.map +1 -0
  67. package/dist/data/ai/SessionChatComposer.cjs +3 -1
  68. package/dist/data/ai/SessionChatComposer.cjs.map +1 -1
  69. package/dist/data/ai/SessionChatComposer.d.ts +4 -1
  70. package/dist/data/ai/SessionChatComposer.d.ts.map +1 -1
  71. package/dist/data/ai/SessionChatComposer.js +3 -1
  72. package/dist/data/ai/SessionChatComposer.js.map +1 -1
  73. package/dist/data/ai/SessionInspector.cjs +68 -72
  74. package/dist/data/ai/SessionInspector.cjs.map +1 -1
  75. package/dist/data/ai/SessionInspector.composer-slot.cjs +8 -0
  76. package/dist/data/ai/SessionInspector.composer-slot.cjs.map +1 -0
  77. package/dist/data/ai/SessionInspector.composer-slot.d.ts +9 -0
  78. package/dist/data/ai/SessionInspector.composer-slot.d.ts.map +1 -0
  79. package/dist/data/ai/SessionInspector.composer-slot.js +8 -0
  80. package/dist/data/ai/SessionInspector.composer-slot.js.map +1 -0
  81. package/dist/data/ai/SessionInspector.d.ts +6 -1
  82. package/dist/data/ai/SessionInspector.d.ts.map +1 -1
  83. package/dist/data/ai/SessionInspector.js +69 -73
  84. package/dist/data/ai/SessionInspector.js.map +1 -1
  85. package/dist/data/ai/SessionInspector.legacy.cjs +41 -42
  86. package/dist/data/ai/SessionInspector.legacy.cjs.map +1 -1
  87. package/dist/data/ai/SessionInspector.legacy.d.ts.map +1 -1
  88. package/dist/data/ai/SessionInspector.legacy.js +41 -42
  89. package/dist/data/ai/SessionInspector.legacy.js.map +1 -1
  90. package/dist/data/ai/SessionInspector.remote-view.cjs +14 -9
  91. package/dist/data/ai/SessionInspector.remote-view.cjs.map +1 -1
  92. package/dist/data/ai/SessionInspector.remote-view.d.ts +6 -2
  93. package/dist/data/ai/SessionInspector.remote-view.d.ts.map +1 -1
  94. package/dist/data/ai/SessionInspector.remote-view.js +14 -9
  95. package/dist/data/ai/SessionInspector.remote-view.js.map +1 -1
  96. package/dist/data/ai/SessionInspector.remote.cjs +84 -16
  97. package/dist/data/ai/SessionInspector.remote.cjs.map +1 -1
  98. package/dist/data/ai/SessionInspector.remote.d.ts +42 -7
  99. package/dist/data/ai/SessionInspector.remote.d.ts.map +1 -1
  100. package/dist/data/ai/SessionInspector.remote.js +86 -18
  101. package/dist/data/ai/SessionInspector.remote.js.map +1 -1
  102. package/dist/data/ai/SessionInspector.transcript.cjs +5 -0
  103. package/dist/data/ai/SessionInspector.transcript.cjs.map +1 -1
  104. package/dist/data/ai/SessionInspector.transcript.d.ts.map +1 -1
  105. package/dist/data/ai/SessionInspector.transcript.js +5 -0
  106. package/dist/data/ai/SessionInspector.transcript.js.map +1 -1
  107. package/dist/data/ai/SessionTail.cjs +63 -0
  108. package/dist/data/ai/SessionTail.cjs.map +1 -0
  109. package/dist/data/ai/SessionTail.d.ts +14 -0
  110. package/dist/data/ai/SessionTail.d.ts.map +1 -0
  111. package/dist/data/ai/SessionTail.js +63 -0
  112. package/dist/data/ai/SessionTail.js.map +1 -0
  113. package/dist/data/ai/SessionViewer.cjs +10 -3
  114. package/dist/data/ai/SessionViewer.cjs.map +1 -1
  115. package/dist/data/ai/SessionViewer.d.ts +7 -1
  116. package/dist/data/ai/SessionViewer.d.ts.map +1 -1
  117. package/dist/data/ai/SessionViewer.js +10 -3
  118. package/dist/data/ai/SessionViewer.js.map +1 -1
  119. package/dist/data/ai/SessionViewer.unified.d.ts +14 -0
  120. package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -1
  121. package/dist/data/ai/index.d.ts +4 -3
  122. package/dist/data/ai/index.d.ts.map +1 -1
  123. package/dist/data/ai/use-session-scroll.cjs +30 -6
  124. package/dist/data/ai/use-session-scroll.cjs.map +1 -1
  125. package/dist/data/ai/use-session-scroll.d.ts +7 -0
  126. package/dist/data/ai/use-session-scroll.d.ts.map +1 -1
  127. package/dist/data/ai/use-session-scroll.js +30 -6
  128. package/dist/data/ai/use-session-scroll.js.map +1 -1
  129. package/dist/data/chat/Chat.cjs +1 -1
  130. package/dist/data/chat/Chat.cjs.map +1 -1
  131. package/dist/data/chat/Chat.js +1 -1
  132. package/dist/data/chat/Chat.js.map +1 -1
  133. package/dist/data/chat/ChatRuntimeToolbar.cjs +4 -4
  134. package/dist/data/chat/ChatRuntimeToolbar.cjs.map +1 -1
  135. package/dist/data/chat/ChatRuntimeToolbar.d.ts.map +1 -1
  136. package/dist/data/chat/ChatRuntimeToolbar.js +4 -4
  137. package/dist/data/chat/ChatRuntimeToolbar.js.map +1 -1
  138. package/dist/data/chat/PromptInput.cjs +4 -2
  139. package/dist/data/chat/PromptInput.cjs.map +1 -1
  140. package/dist/data/chat/PromptInput.d.ts +5 -1
  141. package/dist/data/chat/PromptInput.d.ts.map +1 -1
  142. package/dist/data/chat/PromptInput.js +4 -2
  143. package/dist/data/chat/PromptInput.js.map +1 -1
  144. package/dist/data/diagnostics/ErrorDetails.cjs +13 -2
  145. package/dist/data/diagnostics/ErrorDetails.cjs.map +1 -1
  146. package/dist/data/diagnostics/ErrorDetails.d.ts +3 -1
  147. package/dist/data/diagnostics/ErrorDetails.d.ts.map +1 -1
  148. package/dist/data/diagnostics/ErrorDetails.js +14 -3
  149. package/dist/data/diagnostics/ErrorDetails.js.map +1 -1
  150. package/dist/data/diagnostics/FrameSourceWindow.cjs +3 -2
  151. package/dist/data/diagnostics/FrameSourceWindow.cjs.map +1 -1
  152. package/dist/data/diagnostics/FrameSourceWindow.d.ts.map +1 -1
  153. package/dist/data/diagnostics/FrameSourceWindow.js +3 -2
  154. package/dist/data/diagnostics/FrameSourceWindow.js.map +1 -1
  155. package/dist/data/diagnostics/error-diagnostics.cjs +5 -0
  156. package/dist/data/diagnostics/error-diagnostics.cjs.map +1 -1
  157. package/dist/data/diagnostics/error-diagnostics.d.ts +1 -0
  158. package/dist/data/diagnostics/error-diagnostics.d.ts.map +1 -1
  159. package/dist/data/diagnostics/error-diagnostics.js +6 -1
  160. package/dist/data/diagnostics/error-diagnostics.js.map +1 -1
  161. package/dist/data/har/HarPanel.cjs +3 -1
  162. package/dist/data/har/HarPanel.cjs.map +1 -1
  163. package/dist/data/har/HarPanel.d.ts +4 -1
  164. package/dist/data/har/HarPanel.d.ts.map +1 -1
  165. package/dist/data/har/HarPanel.js +3 -1
  166. package/dist/data/har/HarPanel.js.map +1 -1
  167. package/dist/data/test-runner/Expectation.cjs +57 -0
  168. package/dist/data/test-runner/Expectation.cjs.map +1 -0
  169. package/dist/data/test-runner/Expectation.d.ts +19 -0
  170. package/dist/data/test-runner/Expectation.d.ts.map +1 -0
  171. package/dist/data/test-runner/Expectation.js +57 -0
  172. package/dist/data/test-runner/Expectation.js.map +1 -0
  173. package/dist/data/test-runner/MarkIcons.cjs +38 -0
  174. package/dist/data/test-runner/MarkIcons.cjs.map +1 -0
  175. package/dist/data/test-runner/MarkIcons.d.ts +15 -0
  176. package/dist/data/test-runner/MarkIcons.d.ts.map +1 -0
  177. package/dist/data/test-runner/MarkIcons.js +38 -0
  178. package/dist/data/test-runner/MarkIcons.js.map +1 -0
  179. package/dist/data/test-runner/TestDetailPanel.cjs +74 -42
  180. package/dist/data/test-runner/TestDetailPanel.cjs.map +1 -1
  181. package/dist/data/test-runner/TestDetailPanel.d.ts.map +1 -1
  182. package/dist/data/test-runner/TestDetailPanel.js +76 -44
  183. package/dist/data/test-runner/TestDetailPanel.js.map +1 -1
  184. package/dist/data/test-runner/TestFailureDetail.cjs +23 -27
  185. package/dist/data/test-runner/TestFailureDetail.cjs.map +1 -1
  186. package/dist/data/test-runner/TestFailureDetail.d.ts +2 -2
  187. package/dist/data/test-runner/TestFailureDetail.d.ts.map +1 -1
  188. package/dist/data/test-runner/TestFailureDetail.js +23 -27
  189. package/dist/data/test-runner/TestFailureDetail.js.map +1 -1
  190. package/dist/data/test-runner/TestFilterBar.cjs +87 -93
  191. package/dist/data/test-runner/TestFilterBar.cjs.map +1 -1
  192. package/dist/data/test-runner/TestFilterBar.d.ts +3 -2
  193. package/dist/data/test-runner/TestFilterBar.d.ts.map +1 -1
  194. package/dist/data/test-runner/TestFilterBar.js +89 -95
  195. package/dist/data/test-runner/TestFilterBar.js.map +1 -1
  196. package/dist/data/test-runner/TestRunSummary.cjs +35 -21
  197. package/dist/data/test-runner/TestRunSummary.cjs.map +1 -1
  198. package/dist/data/test-runner/TestRunSummary.d.ts.map +1 -1
  199. package/dist/data/test-runner/TestRunSummary.js +35 -21
  200. package/dist/data/test-runner/TestRunSummary.js.map +1 -1
  201. package/dist/data/test-runner/TestRunner.cjs +52 -30
  202. package/dist/data/test-runner/TestRunner.cjs.map +1 -1
  203. package/dist/data/test-runner/TestRunner.d.ts +3 -2
  204. package/dist/data/test-runner/TestRunner.d.ts.map +1 -1
  205. package/dist/data/test-runner/TestRunner.js +52 -30
  206. package/dist/data/test-runner/TestRunner.js.map +1 -1
  207. package/dist/data/test-runner/TestTree.cjs +5 -2
  208. package/dist/data/test-runner/TestTree.cjs.map +1 -1
  209. package/dist/data/test-runner/TestTree.d.ts +5 -2
  210. package/dist/data/test-runner/TestTree.d.ts.map +1 -1
  211. package/dist/data/test-runner/TestTree.js +5 -2
  212. package/dist/data/test-runner/TestTree.js.map +1 -1
  213. package/dist/data/test-runner/TestTreeNode.cjs +27 -19
  214. package/dist/data/test-runner/TestTreeNode.cjs.map +1 -1
  215. package/dist/data/test-runner/TestTreeNode.d.ts.map +1 -1
  216. package/dist/data/test-runner/TestTreeNode.js +28 -20
  217. package/dist/data/test-runner/TestTreeNode.js.map +1 -1
  218. package/dist/data/test-runner/adapter.cjs +11 -0
  219. package/dist/data/test-runner/adapter.cjs.map +1 -1
  220. package/dist/data/test-runner/adapter.d.ts +18 -7
  221. package/dist/data/test-runner/adapter.d.ts.map +1 -1
  222. package/dist/data/test-runner/adapter.js +11 -0
  223. package/dist/data/test-runner/adapter.js.map +1 -1
  224. package/dist/data/test-runner/copy.cjs +114 -0
  225. package/dist/data/test-runner/copy.cjs.map +1 -0
  226. package/dist/data/test-runner/copy.d.ts +47 -0
  227. package/dist/data/test-runner/copy.d.ts.map +1 -0
  228. package/dist/data/test-runner/copy.js +114 -0
  229. package/dist/data/test-runner/copy.js.map +1 -0
  230. package/dist/data/test-runner/index.d.ts +5 -2
  231. package/dist/data/test-runner/index.d.ts.map +1 -1
  232. package/dist/data/test-runner/marks.cjs +143 -0
  233. package/dist/data/test-runner/marks.cjs.map +1 -0
  234. package/dist/data/test-runner/marks.d.ts +30 -0
  235. package/dist/data/test-runner/marks.d.ts.map +1 -0
  236. package/dist/data/test-runner/marks.js +143 -0
  237. package/dist/data/test-runner/marks.js.map +1 -0
  238. package/dist/data/test-runner/status.cjs +27 -44
  239. package/dist/data/test-runner/status.cjs.map +1 -1
  240. package/dist/data/test-runner/status.d.ts +12 -3
  241. package/dist/data/test-runner/status.d.ts.map +1 -1
  242. package/dist/data/test-runner/status.js +27 -44
  243. package/dist/data/test-runner/status.js.map +1 -1
  244. package/dist/data/verification/adapterViews.cjs +16 -41
  245. package/dist/data/verification/adapterViews.cjs.map +1 -1
  246. package/dist/data/verification/adapterViews.d.ts.map +1 -1
  247. package/dist/data/verification/adapterViews.js +16 -41
  248. package/dist/data/verification/adapterViews.js.map +1 -1
  249. package/dist/data/verification/adapters.cjs +115 -3
  250. package/dist/data/verification/adapters.cjs.map +1 -1
  251. package/dist/data/verification/adapters.d.ts.map +1 -1
  252. package/dist/data/verification/adapters.js +115 -3
  253. package/dist/data/verification/adapters.js.map +1 -1
  254. package/dist/data/verification/verifyReportTests.cjs.map +1 -1
  255. package/dist/data/verification/verifyReportTests.js.map +1 -1
  256. package/dist/data/version-info.cjs +3 -3
  257. package/dist/data/version-info.js +3 -3
  258. package/dist/data.cjs +44 -3
  259. package/dist/data.cjs.map +1 -1
  260. package/dist/data.d.ts +2 -0
  261. package/dist/data.d.ts.map +1 -1
  262. package/dist/data.js +45 -4
  263. package/dist/data.js.map +1 -1
  264. package/dist/icons/components/UiLogoEslint.cjs +10 -0
  265. package/dist/icons/components/UiLogoEslint.cjs.map +1 -0
  266. package/dist/icons/components/UiLogoEslint.d.ts +9 -0
  267. package/dist/icons/components/UiLogoEslint.d.ts.map +1 -0
  268. package/dist/icons/components/UiLogoEslint.js +10 -0
  269. package/dist/icons/components/UiLogoEslint.js.map +1 -0
  270. package/dist/icons/components/UiLogoGo.cjs +10 -0
  271. package/dist/icons/components/UiLogoGo.cjs.map +1 -0
  272. package/dist/icons/components/UiLogoGo.d.ts +9 -0
  273. package/dist/icons/components/UiLogoGo.d.ts.map +1 -0
  274. package/dist/icons/components/UiLogoGo.js +10 -0
  275. package/dist/icons/components/UiLogoGo.js.map +1 -0
  276. package/dist/icons/components/UiLogoJest.cjs +10 -0
  277. package/dist/icons/components/UiLogoJest.cjs.map +1 -0
  278. package/dist/icons/components/UiLogoJest.d.ts +9 -0
  279. package/dist/icons/components/UiLogoJest.d.ts.map +1 -0
  280. package/dist/icons/components/UiLogoJest.js +10 -0
  281. package/dist/icons/components/UiLogoJest.js.map +1 -0
  282. package/dist/icons/components/UiLogoMarkdown.cjs +10 -0
  283. package/dist/icons/components/UiLogoMarkdown.cjs.map +1 -0
  284. package/dist/icons/components/UiLogoMarkdown.d.ts +9 -0
  285. package/dist/icons/components/UiLogoMarkdown.d.ts.map +1 -0
  286. package/dist/icons/components/UiLogoMarkdown.js +10 -0
  287. package/dist/icons/components/UiLogoMarkdown.js.map +1 -0
  288. package/dist/icons/components/UiLogoOxc.cjs +10 -0
  289. package/dist/icons/components/UiLogoOxc.cjs.map +1 -0
  290. package/dist/icons/components/UiLogoOxc.d.ts +9 -0
  291. package/dist/icons/components/UiLogoOxc.d.ts.map +1 -0
  292. package/dist/icons/components/UiLogoOxc.js +10 -0
  293. package/dist/icons/components/UiLogoOxc.js.map +1 -0
  294. package/dist/icons/components/UiLogoPlaywright.cjs +10 -0
  295. package/dist/icons/components/UiLogoPlaywright.cjs.map +1 -0
  296. package/dist/icons/components/UiLogoPlaywright.d.ts +9 -0
  297. package/dist/icons/components/UiLogoPlaywright.d.ts.map +1 -0
  298. package/dist/icons/components/UiLogoPlaywright.js +10 -0
  299. package/dist/icons/components/UiLogoPlaywright.js.map +1 -0
  300. package/dist/icons/components/UiLogoPython.cjs +10 -0
  301. package/dist/icons/components/UiLogoPython.cjs.map +1 -0
  302. package/dist/icons/components/UiLogoPython.d.ts +9 -0
  303. package/dist/icons/components/UiLogoPython.d.ts.map +1 -0
  304. package/dist/icons/components/UiLogoPython.js +10 -0
  305. package/dist/icons/components/UiLogoPython.js.map +1 -0
  306. package/dist/icons/components/UiLogoReact.cjs +10 -0
  307. package/dist/icons/components/UiLogoReact.cjs.map +1 -0
  308. package/dist/icons/components/UiLogoReact.d.ts +9 -0
  309. package/dist/icons/components/UiLogoReact.d.ts.map +1 -0
  310. package/dist/icons/components/UiLogoReact.js +10 -0
  311. package/dist/icons/components/UiLogoReact.js.map +1 -0
  312. package/dist/icons/components/UiLogoRuff.cjs +10 -0
  313. package/dist/icons/components/UiLogoRuff.cjs.map +1 -0
  314. package/dist/icons/components/UiLogoRuff.d.ts +9 -0
  315. package/dist/icons/components/UiLogoRuff.d.ts.map +1 -0
  316. package/dist/icons/components/UiLogoRuff.js +10 -0
  317. package/dist/icons/components/UiLogoRuff.js.map +1 -0
  318. package/dist/icons/components/UiLogoTypescript.cjs +10 -0
  319. package/dist/icons/components/UiLogoTypescript.cjs.map +1 -0
  320. package/dist/icons/components/UiLogoTypescript.d.ts +9 -0
  321. package/dist/icons/components/UiLogoTypescript.d.ts.map +1 -0
  322. package/dist/icons/components/UiLogoTypescript.js +10 -0
  323. package/dist/icons/components/UiLogoTypescript.js.map +1 -0
  324. package/dist/icons/components/UiLogoVitest.cjs +10 -0
  325. package/dist/icons/components/UiLogoVitest.cjs.map +1 -0
  326. package/dist/icons/components/UiLogoVitest.d.ts +9 -0
  327. package/dist/icons/components/UiLogoVitest.d.ts.map +1 -0
  328. package/dist/icons/components/UiLogoVitest.js +10 -0
  329. package/dist/icons/components/UiLogoVitest.js.map +1 -0
  330. package/dist/icons/index.d.ts +11 -0
  331. package/dist/icons/index.d.ts.map +1 -1
  332. package/dist/icons/registry.cjs +22 -0
  333. package/dist/icons/registry.cjs.map +1 -1
  334. package/dist/icons/registry.d.ts.map +1 -1
  335. package/dist/icons/registry.js +22 -0
  336. package/dist/icons/registry.js.map +1 -1
  337. package/dist/icons.cjs +22 -0
  338. package/dist/icons.cjs.map +1 -1
  339. package/dist/icons.js +22 -0
  340. package/dist/icons.js.map +1 -1
  341. package/dist/index.cjs +44 -3
  342. package/dist/index.cjs.map +1 -1
  343. package/dist/index.js +45 -4
  344. package/dist/index.js.map +1 -1
  345. package/dist/overlay/DropdownMenuSubmenu.cjs +4 -4
  346. package/dist/overlay/DropdownMenuSubmenu.cjs.map +1 -1
  347. package/dist/overlay/DropdownMenuSubmenu.js +4 -4
  348. package/dist/overlay/DropdownMenuSubmenu.js.map +1 -1
  349. package/dist/rpc/InlineError.cjs +12 -43
  350. package/dist/rpc/InlineError.cjs.map +1 -1
  351. package/dist/rpc/InlineError.d.ts.map +1 -1
  352. package/dist/rpc/InlineError.js +13 -44
  353. package/dist/rpc/InlineError.js.map +1 -1
  354. package/dist/rpc/OperationScheduleDialog.cjs +63 -10
  355. package/dist/rpc/OperationScheduleDialog.cjs.map +1 -1
  356. package/dist/rpc/OperationScheduleDialog.d.ts +4 -0
  357. package/dist/rpc/OperationScheduleDialog.d.ts.map +1 -1
  358. package/dist/rpc/OperationScheduleDialog.js +63 -10
  359. package/dist/rpc/OperationScheduleDialog.js.map +1 -1
  360. package/dist/rpc/OperationSchedules.cjs +12 -2
  361. package/dist/rpc/OperationSchedules.cjs.map +1 -1
  362. package/dist/rpc/OperationSchedules.d.ts.map +1 -1
  363. package/dist/rpc/OperationSchedules.js +12 -2
  364. package/dist/rpc/OperationSchedules.js.map +1 -1
  365. package/dist/rpc/operation-schedule-model.cjs +2 -0
  366. package/dist/rpc/operation-schedule-model.cjs.map +1 -1
  367. package/dist/rpc/operation-schedule-model.d.ts.map +1 -1
  368. package/dist/rpc/operation-schedule-model.js +2 -0
  369. package/dist/rpc/operation-schedule-model.js.map +1 -1
  370. package/dist/rpc/operation-schedule-types.d.ts +7 -1
  371. package/dist/rpc/operation-schedule-types.d.ts.map +1 -1
  372. package/dist/styles.css +1 -1
  373. package/package.json +1 -1
  374. package/dist/data/test-runner/frameworkIcon.cjs +0 -27
  375. package/dist/data/test-runner/frameworkIcon.cjs.map +0 -1
  376. package/dist/data/test-runner/frameworkIcon.d.ts +0 -3
  377. package/dist/data/test-runner/frameworkIcon.d.ts.map +0 -1
  378. package/dist/data/test-runner/frameworkIcon.js +0 -27
  379. package/dist/data/test-runner/frameworkIcon.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"adapters.cjs","sources":["../../../src/data/verification/adapters.tsx"],"sourcesContent":["// Domain node adapters for VerificationResults: a checklist adapter for the\n// synthesized \"Acceptance criteria\" node and its items, and a fixture/CEL\n// adapter for the failing-step detail. Rendering lives in adapterViews.tsx —\n// split out so this file's only exports are the registry (react/only-export-\n// components forbids mixing component declarations with plain exports).\n\nimport { ChecklistDetail, FixtureDetail } from \"./adapterViews\";\nimport {\n createTestRunnerRegistry,\n type Test,\n type TestNodeAdapter,\n type TestNodeAdapterRegistry,\n} from \"../test-runner\";\n\nfunction isChecklistNode(node: Test): boolean {\n return node.framework === \"checklist\";\n}\n\nconst checklistAdapter: TestNodeAdapter = {\n id: \"verification-checklist\",\n match: isChecklistNode,\n renderDetail: ({ node }) => <ChecklistDetail node={node} />,\n};\n\nfunction isFixtureNode(node: Test): boolean {\n return node.context !== undefined;\n}\n\nconst fixtureAdapter: TestNodeAdapter = {\n id: \"verification-fixture\",\n match: isFixtureNode,\n renderDetail: ({ node }) => <FixtureDetail node={node} />,\n};\n\n/** Default node adapters for VerificationResults: checklist items and\n * fixture/CEL steps. Registration order matters only when a node could match\n * both — a checklist node never carries a `context`, so the two never race. */\nexport function verificationAdapters(): TestNodeAdapterRegistry {\n return createTestRunnerRegistry([checklistAdapter, fixtureAdapter]);\n}\n"],"names":["jsx","ChecklistDetail","FixtureDetail","createTestRunnerRegistry"],"mappings":";;;;;AAcA,SAAS,gBAAgB,MAAqB;AAC5C,SAAO,KAAK,cAAc;AAC5B;AAEA,MAAM,mBAAoC;AAAA,EACxC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,cAAc,CAAC,EAAE,WAAWA,2BAAAA,IAACC,aAAAA,mBAAgB,KAAA,CAAY;AAC3D;AAEA,SAAS,cAAc,MAAqB;AAC1C,SAAO,KAAK,YAAY;AAC1B;AAEA,MAAM,iBAAkC;AAAA,EACtC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,cAAc,CAAC,EAAE,WAAWD,2BAAAA,IAACE,aAAAA,iBAAc,KAAA,CAAY;AACzD;AAKO,SAAS,uBAAgD;AAC9D,SAAOC,iCAAyB,CAAC,kBAAkB,cAAc,CAAC;AACpE;;"}
1
+ {"version":3,"file":"adapters.cjs","sources":["../../../src/data/verification/adapters.tsx"],"sourcesContent":["// Domain node adapters for VerificationResults: a checklist adapter for the\n// synthesized \"Acceptance criteria\" node and its items, and a fixture/CEL\n// adapter for the failing-step detail. Rendering lives in adapterViews.tsx —\n// split out so this file's only exports are the registry (react/only-export-\n// components forbids mixing component declarations with plain exports).\n\nimport { ChecklistDetail, FixtureDetail } from \"./adapterViews\";\nimport { UiTerminal } from \"../../icons\";\nimport {\n createTestRunnerRegistry,\n outcomeFor,\n type BriefSection,\n type CopySections,\n type FixtureContext,\n type Test,\n type TestNodeAdapter,\n type TestNodeAdapterRegistry,\n type TestOutcome,\n type TestSummary,\n} from \"../test-runner\";\n\nfunction isChecklistNode(node: Test): boolean {\n return node.framework === \"checklist\";\n}\n\nfunction checklistMark(item: Test): string {\n if (item.failed) return \"[ ]\";\n if (item.passed) return \"[x]\";\n return \"[?]\";\n}\n\n/** `- [x]/[ ]/[?] criterion — reason` for each item, or the leaf itself. */\nfunction checklistCopy(node: Test): CopySections {\n const items = node.children && node.children.length > 0 ? node.children : [node];\n const lines = items.map(\n (item) => `- ${checklistMark(item)} ${item.name}${item.message ? ` — ${item.message}` : \"\"}`,\n );\n return { brief: [{ title: \"Criteria\", body: lines.join(\"\\n\") }] };\n}\n\nconst checklistAdapter: TestNodeAdapter = {\n id: \"verification-checklist\",\n match: isChecklistNode,\n renderDetail: ({ node }) => <ChecklistDetail node={node} />,\n copy: ({ node }) => checklistCopy(node),\n};\n\nfunction isFixtureNode(node: Test): boolean {\n return node.context !== undefined;\n}\n\n// ── Copy sections for fixture steps (exec / query / table / test / lint) ───\n\nfunction readCelTrace(detail: unknown): string | undefined {\n if (detail && typeof detail === \"object\" && !Array.isArray(detail)) {\n const value = (detail as Record<string, unknown>).cel_trace;\n if (typeof value === \"string\" && value.length > 0) return value;\n }\n return undefined;\n}\n\n// Mirrors CelDetails: without a CEL gate, a command step's `actual` is the whole\n// command result object, already covered by the Command section and output.\nfunction comparisonValue(hasCelGate: boolean, value: unknown): unknown {\n if (value === undefined) return undefined;\n if (hasCelGate) return value;\n if (value !== null && typeof value === \"object\" && !Array.isArray(value)) return undefined;\n return value;\n}\n\nfunction formatValue(value: unknown): string {\n return typeof value === \"string\" ? value : JSON.stringify(value, null, 2);\n}\n\nfunction commandSection(node: Test, context: FixtureContext | undefined): BriefSection[] {\n const command = context?.command ?? node.command;\n if (!command) return [];\n const cwd = context?.cwd ?? node.work_dir;\n const exit = context?.exit_code;\n const lines = [`$ ${command}`, cwd && `cwd: ${cwd}`, exit !== undefined && `exit: ${exit}`];\n return [{ title: \"Command\", lang: \"sh\", body: lines.filter(Boolean).join(\"\\n\") }];\n}\n\nfunction assertionSection(node: Test, context: FixtureContext | undefined): BriefSection[] {\n const expression = context?.cel_expression;\n const trace = readCelTrace(node.detail);\n const hasCelGate = !!(expression || trace);\n const vars = context?.cel_vars ?? {};\n const expected = comparisonValue(hasCelGate, context?.expected);\n const actual = comparisonValue(hasCelGate, context?.actual);\n const lines = [\n expression && `expression: ${expression}`,\n trace && `trace:\\n${trace}`,\n Object.keys(vars).length > 0 && `vars: ${formatValue(vars)}`,\n expected !== undefined && `expected: ${formatValue(expected)}`,\n actual !== undefined && `actual: ${formatValue(actual)}`,\n ].filter(Boolean);\n return lines.length > 0 ? [{ title: \"Assertion\", body: lines.join(\"\\n\") }] : [];\n}\n\nconst OUTCOME_GLYPH: Record<TestOutcome, string> = {\n passed: \"✓\",\n failed: \"✗\",\n errored: \"✗\",\n timedout: \"⏱\",\n warned: \"!\",\n skipped: \"-\",\n pending: \"○\",\n running: \"…\",\n};\n\nfunction childLine(child: Test): string {\n const outcome = outcomeFor(child);\n const exit = (child.context as FixtureContext | undefined)?.exit_code;\n const reason = child.message ?? (exit ? `exit ${exit}` : undefined);\n return `${outcome ? OUTCOME_GLYPH[outcome] : \"·\"} ${child.name}${reason ? ` — ${reason}` : \"\"}`;\n}\n\nfunction summaryLine(summary: TestSummary): string {\n const counts: [number | undefined, string][] = [\n [summary.Passed, \"passed\"],\n [summary.Failed, \"failed\"],\n [summary.Warned, \"warned\"],\n [summary.Timedout, \"timed out\"],\n [summary.Skipped, \"skipped\"],\n [summary.Pending, \"pending\"],\n [summary.Running, \"running\"],\n ];\n const parts = counts.filter(([n]) => !!n).map(([n, label]) => `${n} ${label}`);\n return [`${summary.Total} total`, ...parts].join(\" · \");\n}\n\nfunction resultsSection(node: Test): BriefSection[] {\n const lines = [\n ...(node.summary ? [summaryLine(node.summary)] : []),\n ...(node.children ?? []).map(childLine),\n ];\n return lines.length > 0 ? [{ title: \"Results\", body: lines.join(\"\\n\") }] : [];\n}\n\n/** Command, CEL assertion and per-child verdicts for a fixture step or its parent. */\nfunction fixtureCopy(node: Test): CopySections {\n const context = node.context as FixtureContext | undefined;\n const command = context?.command ?? node.command;\n return {\n brief: [\n ...commandSection(node, context),\n ...assertionSection(node, context),\n ...resultsSection(node),\n ],\n items: command ? [{ label: \"Copy command\", icon: UiTerminal, value: command }] : [],\n };\n}\n\nconst fixtureAdapter: TestNodeAdapter = {\n id: \"verification-fixture\",\n match: isFixtureNode,\n renderDetail: ({ node }) => <FixtureDetail node={node} />,\n copy: ({ node }) => fixtureCopy(node),\n};\n\n// gavel's FixtureResult.Type values plus \"fixture\" (a markdown table of rows).\n// Table and runner-step parents carry no `context`, so the fixture adapter\n// never claims them; this copy-only adapter gives them the same sections.\nconst FIXTURE_STEP_FRAMEWORKS = new Set([\"exec\", \"query\", \"fixture\", \"test\", \"lint\", \"verify\"]);\n\nconst fixtureStepCopyAdapter: TestNodeAdapter = {\n id: \"verification-step-copy\",\n match: (node) => FIXTURE_STEP_FRAMEWORKS.has(node.framework ?? \"\"),\n copy: ({ node }) => fixtureCopy(node),\n};\n\n/** Default node adapters for VerificationResults: checklist items and\n * fixture/CEL steps. Registration order matters only when a node could match\n * both — a checklist node never carries a `context`, so the two never race. */\nexport function verificationAdapters(): TestNodeAdapterRegistry {\n return createTestRunnerRegistry([checklistAdapter, fixtureAdapter, fixtureStepCopyAdapter]);\n}\n"],"names":["jsx","ChecklistDetail","outcomeFor","UiTerminal","FixtureDetail","createTestRunnerRegistry"],"mappings":";;;;;;;AAqBA,SAAS,gBAAgB,MAAqB;AAC5C,SAAO,KAAK,cAAc;AAC5B;AAEA,SAAS,cAAc,MAAoB;AACzC,MAAI,KAAK,OAAQ,QAAO;AACxB,MAAI,KAAK,OAAQ,QAAO;AACxB,SAAO;AACT;AAGA,SAAS,cAAc,MAA0B;AAC/C,QAAM,QAAQ,KAAK,YAAY,KAAK,SAAS,SAAS,IAAI,KAAK,WAAW,CAAC,IAAI;AAC/E,QAAM,QAAQ,MAAM;AAAA,IAClB,CAAC,SAAS,KAAK,cAAc,IAAI,CAAC,IAAI,KAAK,IAAI,GAAG,KAAK,UAAU,MAAM,KAAK,OAAO,KAAK,EAAE;AAAA,EAAA;AAE5F,SAAO,EAAE,OAAO,CAAC,EAAE,OAAO,YAAY,MAAM,MAAM,KAAK,IAAI,EAAA,CAAG,EAAA;AAChE;AAEA,MAAM,mBAAoC;AAAA,EACxC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,cAAc,CAAC,EAAE,WAAWA,2BAAAA,IAACC,aAAAA,mBAAgB,MAAY;AAAA,EACzD,MAAM,CAAC,EAAE,KAAA,MAAW,cAAc,IAAI;AACxC;AAEA,SAAS,cAAc,MAAqB;AAC1C,SAAO,KAAK,YAAY;AAC1B;AAIA,SAAS,aAAa,QAAqC;AACzD,MAAI,UAAU,OAAO,WAAW,YAAY,CAAC,MAAM,QAAQ,MAAM,GAAG;AAClE,UAAM,QAAS,OAAmC;AAClD,QAAI,OAAO,UAAU,YAAY,MAAM,SAAS,EAAG,QAAO;AAAA,EAC5D;AACA,SAAO;AACT;AAIA,SAAS,gBAAgB,YAAqB,OAAyB;AACrE,MAAI,UAAU,OAAW,QAAO;AAChC,MAAI,WAAY,QAAO;AACvB,MAAI,UAAU,QAAQ,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK,EAAG,QAAO;AACjF,SAAO;AACT;AAEA,SAAS,YAAY,OAAwB;AAC3C,SAAO,OAAO,UAAU,WAAW,QAAQ,KAAK,UAAU,OAAO,MAAM,CAAC;AAC1E;AAEA,SAAS,eAAe,MAAY,SAAqD;AACvF,QAAM,WAAU,mCAAS,YAAW,KAAK;AACzC,MAAI,CAAC,QAAS,QAAO,CAAA;AACrB,QAAM,OAAM,mCAAS,QAAO,KAAK;AACjC,QAAM,OAAO,mCAAS;AACtB,QAAM,QAAQ,CAAC,KAAK,OAAO,IAAI,OAAO,QAAQ,GAAG,IAAI,SAAS,UAAa,SAAS,IAAI,EAAE;AAC1F,SAAO,CAAC,EAAE,OAAO,WAAW,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,EAAE,KAAK,IAAI,GAAG;AAClF;AAEA,SAAS,iBAAiB,MAAY,SAAqD;AACzF,QAAM,aAAa,mCAAS;AAC5B,QAAM,QAAQ,aAAa,KAAK,MAAM;AACtC,QAAM,aAAa,CAAC,EAAE,cAAc;AACpC,QAAM,QAAO,mCAAS,aAAY,CAAA;AAClC,QAAM,WAAW,gBAAgB,YAAY,mCAAS,QAAQ;AAC9D,QAAM,SAAS,gBAAgB,YAAY,mCAAS,MAAM;AAC1D,QAAM,QAAQ;AAAA,IACZ,cAAc,eAAe,UAAU;AAAA,IACvC,SAAS;AAAA,EAAW,KAAK;AAAA,IACzB,OAAO,KAAK,IAAI,EAAE,SAAS,KAAK,SAAS,YAAY,IAAI,CAAC;AAAA,IAC1D,aAAa,UAAa,aAAa,YAAY,QAAQ,CAAC;AAAA,IAC5D,WAAW,UAAa,WAAW,YAAY,MAAM,CAAC;AAAA,EAAA,EACtD,OAAO,OAAO;AAChB,SAAO,MAAM,SAAS,IAAI,CAAC,EAAE,OAAO,aAAa,MAAM,MAAM,KAAK,IAAI,EAAA,CAAG,IAAI,CAAA;AAC/E;AAEA,MAAM,gBAA6C;AAAA,EACjD,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AACX;AAEA,SAAS,UAAU,OAAqB;;AACtC,QAAM,UAAUC,OAAAA,WAAW,KAAK;AAChC,QAAM,QAAQ,WAAM,YAAN,mBAA8C;AAC5D,QAAM,SAAS,MAAM,YAAY,OAAO,QAAQ,IAAI,KAAK;AACzD,SAAO,GAAG,UAAU,cAAc,OAAO,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,SAAS,MAAM,MAAM,KAAK,EAAE;AAC/F;AAEA,SAAS,YAAY,SAA8B;AACjD,QAAM,SAAyC;AAAA,IAC7C,CAAC,QAAQ,QAAQ,QAAQ;AAAA,IACzB,CAAC,QAAQ,QAAQ,QAAQ;AAAA,IACzB,CAAC,QAAQ,QAAQ,QAAQ;AAAA,IACzB,CAAC,QAAQ,UAAU,WAAW;AAAA,IAC9B,CAAC,QAAQ,SAAS,SAAS;AAAA,IAC3B,CAAC,QAAQ,SAAS,SAAS;AAAA,IAC3B,CAAC,QAAQ,SAAS,SAAS;AAAA,EAAA;AAE7B,QAAM,QAAQ,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM,GAAG,CAAC,IAAI,KAAK,EAAE;AAC7E,SAAO,CAAC,GAAG,QAAQ,KAAK,UAAU,GAAG,KAAK,EAAE,KAAK,KAAK;AACxD;AAEA,SAAS,eAAe,MAA4B;AAClD,QAAM,QAAQ;AAAA,IACZ,GAAI,KAAK,UAAU,CAAC,YAAY,KAAK,OAAO,CAAC,IAAI,CAAA;AAAA,IACjD,IAAI,KAAK,YAAY,CAAA,GAAI,IAAI,SAAS;AAAA,EAAA;AAExC,SAAO,MAAM,SAAS,IAAI,CAAC,EAAE,OAAO,WAAW,MAAM,MAAM,KAAK,IAAI,EAAA,CAAG,IAAI,CAAA;AAC7E;AAGA,SAAS,YAAY,MAA0B;AAC7C,QAAM,UAAU,KAAK;AACrB,QAAM,WAAU,mCAAS,YAAW,KAAK;AACzC,SAAO;AAAA,IACL,OAAO;AAAA,MACL,GAAG,eAAe,MAAM,OAAO;AAAA,MAC/B,GAAG,iBAAiB,MAAM,OAAO;AAAA,MACjC,GAAG,eAAe,IAAI;AAAA,IAAA;AAAA,IAExB,OAAO,UAAU,CAAC,EAAE,OAAO,gBAAgB,MAAMC,uBAAY,OAAO,QAAA,CAAS,IAAI,CAAA;AAAA,EAAC;AAEtF;AAEA,MAAM,iBAAkC;AAAA,EACtC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,cAAc,CAAC,EAAE,WAAWH,2BAAAA,IAACI,aAAAA,iBAAc,MAAY;AAAA,EACvD,MAAM,CAAC,EAAE,KAAA,MAAW,YAAY,IAAI;AACtC;AAKA,MAAM,0BAA0B,oBAAI,IAAI,CAAC,QAAQ,SAAS,WAAW,QAAQ,QAAQ,QAAQ,CAAC;AAE9F,MAAM,yBAA0C;AAAA,EAC9C,IAAI;AAAA,EACJ,OAAO,CAAC,SAAS,wBAAwB,IAAI,KAAK,aAAa,EAAE;AAAA,EACjE,MAAM,CAAC,EAAE,KAAA,MAAW,YAAY,IAAI;AACtC;AAKO,SAAS,uBAAgD;AAC9D,SAAOC,QAAAA,yBAAyB,CAAC,kBAAkB,gBAAgB,sBAAsB,CAAC;AAC5F;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../../src/data/verification/adapters.tsx"],"names":[],"mappings":"AAOA,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,gBAAgB,CAAC;AAsBxB;;gFAEgF;AAChF,wBAAgB,oBAAoB,IAAI,uBAAuB,CAE9D"}
1
+ {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../../src/data/verification/adapters.tsx"],"names":[],"mappings":"AAQA,OAAO,EAQL,KAAK,uBAAuB,EAG7B,MAAM,gBAAgB,CAAC;AAyJxB;;gFAEgF;AAChF,wBAAgB,oBAAoB,IAAI,uBAAuB,CAE9D"}
@@ -1,24 +1,136 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { ChecklistDetail, FixtureDetail } from "./adapterViews.js";
3
3
  import { createTestRunnerRegistry } from "../test-runner/adapter.js";
4
+ import { UiTerminal } from "../../icons/components/UiTerminal.js";
5
+ import { outcomeFor } from "../test-runner/status.js";
4
6
  function isChecklistNode(node) {
5
7
  return node.framework === "checklist";
6
8
  }
9
+ function checklistMark(item) {
10
+ if (item.failed) return "[ ]";
11
+ if (item.passed) return "[x]";
12
+ return "[?]";
13
+ }
14
+ function checklistCopy(node) {
15
+ const items = node.children && node.children.length > 0 ? node.children : [node];
16
+ const lines = items.map(
17
+ (item) => `- ${checklistMark(item)} ${item.name}${item.message ? ` — ${item.message}` : ""}`
18
+ );
19
+ return { brief: [{ title: "Criteria", body: lines.join("\n") }] };
20
+ }
7
21
  const checklistAdapter = {
8
22
  id: "verification-checklist",
9
23
  match: isChecklistNode,
10
- renderDetail: ({ node }) => /* @__PURE__ */ jsx(ChecklistDetail, { node })
24
+ renderDetail: ({ node }) => /* @__PURE__ */ jsx(ChecklistDetail, { node }),
25
+ copy: ({ node }) => checklistCopy(node)
11
26
  };
12
27
  function isFixtureNode(node) {
13
28
  return node.context !== void 0;
14
29
  }
30
+ function readCelTrace(detail) {
31
+ if (detail && typeof detail === "object" && !Array.isArray(detail)) {
32
+ const value = detail.cel_trace;
33
+ if (typeof value === "string" && value.length > 0) return value;
34
+ }
35
+ return void 0;
36
+ }
37
+ function comparisonValue(hasCelGate, value) {
38
+ if (value === void 0) return void 0;
39
+ if (hasCelGate) return value;
40
+ if (value !== null && typeof value === "object" && !Array.isArray(value)) return void 0;
41
+ return value;
42
+ }
43
+ function formatValue(value) {
44
+ return typeof value === "string" ? value : JSON.stringify(value, null, 2);
45
+ }
46
+ function commandSection(node, context) {
47
+ const command = (context == null ? void 0 : context.command) ?? node.command;
48
+ if (!command) return [];
49
+ const cwd = (context == null ? void 0 : context.cwd) ?? node.work_dir;
50
+ const exit = context == null ? void 0 : context.exit_code;
51
+ const lines = [`$ ${command}`, cwd && `cwd: ${cwd}`, exit !== void 0 && `exit: ${exit}`];
52
+ return [{ title: "Command", lang: "sh", body: lines.filter(Boolean).join("\n") }];
53
+ }
54
+ function assertionSection(node, context) {
55
+ const expression = context == null ? void 0 : context.cel_expression;
56
+ const trace = readCelTrace(node.detail);
57
+ const hasCelGate = !!(expression || trace);
58
+ const vars = (context == null ? void 0 : context.cel_vars) ?? {};
59
+ const expected = comparisonValue(hasCelGate, context == null ? void 0 : context.expected);
60
+ const actual = comparisonValue(hasCelGate, context == null ? void 0 : context.actual);
61
+ const lines = [
62
+ expression && `expression: ${expression}`,
63
+ trace && `trace:
64
+ ${trace}`,
65
+ Object.keys(vars).length > 0 && `vars: ${formatValue(vars)}`,
66
+ expected !== void 0 && `expected: ${formatValue(expected)}`,
67
+ actual !== void 0 && `actual: ${formatValue(actual)}`
68
+ ].filter(Boolean);
69
+ return lines.length > 0 ? [{ title: "Assertion", body: lines.join("\n") }] : [];
70
+ }
71
+ const OUTCOME_GLYPH = {
72
+ passed: "✓",
73
+ failed: "✗",
74
+ errored: "✗",
75
+ timedout: "⏱",
76
+ warned: "!",
77
+ skipped: "-",
78
+ pending: "○",
79
+ running: "…"
80
+ };
81
+ function childLine(child) {
82
+ var _a;
83
+ const outcome = outcomeFor(child);
84
+ const exit = (_a = child.context) == null ? void 0 : _a.exit_code;
85
+ const reason = child.message ?? (exit ? `exit ${exit}` : void 0);
86
+ return `${outcome ? OUTCOME_GLYPH[outcome] : "·"} ${child.name}${reason ? ` — ${reason}` : ""}`;
87
+ }
88
+ function summaryLine(summary) {
89
+ const counts = [
90
+ [summary.Passed, "passed"],
91
+ [summary.Failed, "failed"],
92
+ [summary.Warned, "warned"],
93
+ [summary.Timedout, "timed out"],
94
+ [summary.Skipped, "skipped"],
95
+ [summary.Pending, "pending"],
96
+ [summary.Running, "running"]
97
+ ];
98
+ const parts = counts.filter(([n]) => !!n).map(([n, label]) => `${n} ${label}`);
99
+ return [`${summary.Total} total`, ...parts].join(" · ");
100
+ }
101
+ function resultsSection(node) {
102
+ const lines = [
103
+ ...node.summary ? [summaryLine(node.summary)] : [],
104
+ ...(node.children ?? []).map(childLine)
105
+ ];
106
+ return lines.length > 0 ? [{ title: "Results", body: lines.join("\n") }] : [];
107
+ }
108
+ function fixtureCopy(node) {
109
+ const context = node.context;
110
+ const command = (context == null ? void 0 : context.command) ?? node.command;
111
+ return {
112
+ brief: [
113
+ ...commandSection(node, context),
114
+ ...assertionSection(node, context),
115
+ ...resultsSection(node)
116
+ ],
117
+ items: command ? [{ label: "Copy command", icon: UiTerminal, value: command }] : []
118
+ };
119
+ }
15
120
  const fixtureAdapter = {
16
121
  id: "verification-fixture",
17
122
  match: isFixtureNode,
18
- renderDetail: ({ node }) => /* @__PURE__ */ jsx(FixtureDetail, { node })
123
+ renderDetail: ({ node }) => /* @__PURE__ */ jsx(FixtureDetail, { node }),
124
+ copy: ({ node }) => fixtureCopy(node)
125
+ };
126
+ const FIXTURE_STEP_FRAMEWORKS = /* @__PURE__ */ new Set(["exec", "query", "fixture", "test", "lint", "verify"]);
127
+ const fixtureStepCopyAdapter = {
128
+ id: "verification-step-copy",
129
+ match: (node) => FIXTURE_STEP_FRAMEWORKS.has(node.framework ?? ""),
130
+ copy: ({ node }) => fixtureCopy(node)
19
131
  };
20
132
  function verificationAdapters() {
21
- return createTestRunnerRegistry([checklistAdapter, fixtureAdapter]);
133
+ return createTestRunnerRegistry([checklistAdapter, fixtureAdapter, fixtureStepCopyAdapter]);
22
134
  }
23
135
  export {
24
136
  verificationAdapters
@@ -1 +1 @@
1
- {"version":3,"file":"adapters.js","sources":["../../../src/data/verification/adapters.tsx"],"sourcesContent":["// Domain node adapters for VerificationResults: a checklist adapter for the\n// synthesized \"Acceptance criteria\" node and its items, and a fixture/CEL\n// adapter for the failing-step detail. Rendering lives in adapterViews.tsx —\n// split out so this file's only exports are the registry (react/only-export-\n// components forbids mixing component declarations with plain exports).\n\nimport { ChecklistDetail, FixtureDetail } from \"./adapterViews\";\nimport {\n createTestRunnerRegistry,\n type Test,\n type TestNodeAdapter,\n type TestNodeAdapterRegistry,\n} from \"../test-runner\";\n\nfunction isChecklistNode(node: Test): boolean {\n return node.framework === \"checklist\";\n}\n\nconst checklistAdapter: TestNodeAdapter = {\n id: \"verification-checklist\",\n match: isChecklistNode,\n renderDetail: ({ node }) => <ChecklistDetail node={node} />,\n};\n\nfunction isFixtureNode(node: Test): boolean {\n return node.context !== undefined;\n}\n\nconst fixtureAdapter: TestNodeAdapter = {\n id: \"verification-fixture\",\n match: isFixtureNode,\n renderDetail: ({ node }) => <FixtureDetail node={node} />,\n};\n\n/** Default node adapters for VerificationResults: checklist items and\n * fixture/CEL steps. Registration order matters only when a node could match\n * both — a checklist node never carries a `context`, so the two never race. */\nexport function verificationAdapters(): TestNodeAdapterRegistry {\n return createTestRunnerRegistry([checklistAdapter, fixtureAdapter]);\n}\n"],"names":[],"mappings":";;;AAcA,SAAS,gBAAgB,MAAqB;AAC5C,SAAO,KAAK,cAAc;AAC5B;AAEA,MAAM,mBAAoC;AAAA,EACxC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,cAAc,CAAC,EAAE,WAAW,oBAAC,mBAAgB,KAAA,CAAY;AAC3D;AAEA,SAAS,cAAc,MAAqB;AAC1C,SAAO,KAAK,YAAY;AAC1B;AAEA,MAAM,iBAAkC;AAAA,EACtC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,cAAc,CAAC,EAAE,WAAW,oBAAC,iBAAc,KAAA,CAAY;AACzD;AAKO,SAAS,uBAAgD;AAC9D,SAAO,yBAAyB,CAAC,kBAAkB,cAAc,CAAC;AACpE;"}
1
+ {"version":3,"file":"adapters.js","sources":["../../../src/data/verification/adapters.tsx"],"sourcesContent":["// Domain node adapters for VerificationResults: a checklist adapter for the\n// synthesized \"Acceptance criteria\" node and its items, and a fixture/CEL\n// adapter for the failing-step detail. Rendering lives in adapterViews.tsx —\n// split out so this file's only exports are the registry (react/only-export-\n// components forbids mixing component declarations with plain exports).\n\nimport { ChecklistDetail, FixtureDetail } from \"./adapterViews\";\nimport { UiTerminal } from \"../../icons\";\nimport {\n createTestRunnerRegistry,\n outcomeFor,\n type BriefSection,\n type CopySections,\n type FixtureContext,\n type Test,\n type TestNodeAdapter,\n type TestNodeAdapterRegistry,\n type TestOutcome,\n type TestSummary,\n} from \"../test-runner\";\n\nfunction isChecklistNode(node: Test): boolean {\n return node.framework === \"checklist\";\n}\n\nfunction checklistMark(item: Test): string {\n if (item.failed) return \"[ ]\";\n if (item.passed) return \"[x]\";\n return \"[?]\";\n}\n\n/** `- [x]/[ ]/[?] criterion — reason` for each item, or the leaf itself. */\nfunction checklistCopy(node: Test): CopySections {\n const items = node.children && node.children.length > 0 ? node.children : [node];\n const lines = items.map(\n (item) => `- ${checklistMark(item)} ${item.name}${item.message ? ` — ${item.message}` : \"\"}`,\n );\n return { brief: [{ title: \"Criteria\", body: lines.join(\"\\n\") }] };\n}\n\nconst checklistAdapter: TestNodeAdapter = {\n id: \"verification-checklist\",\n match: isChecklistNode,\n renderDetail: ({ node }) => <ChecklistDetail node={node} />,\n copy: ({ node }) => checklistCopy(node),\n};\n\nfunction isFixtureNode(node: Test): boolean {\n return node.context !== undefined;\n}\n\n// ── Copy sections for fixture steps (exec / query / table / test / lint) ───\n\nfunction readCelTrace(detail: unknown): string | undefined {\n if (detail && typeof detail === \"object\" && !Array.isArray(detail)) {\n const value = (detail as Record<string, unknown>).cel_trace;\n if (typeof value === \"string\" && value.length > 0) return value;\n }\n return undefined;\n}\n\n// Mirrors CelDetails: without a CEL gate, a command step's `actual` is the whole\n// command result object, already covered by the Command section and output.\nfunction comparisonValue(hasCelGate: boolean, value: unknown): unknown {\n if (value === undefined) return undefined;\n if (hasCelGate) return value;\n if (value !== null && typeof value === \"object\" && !Array.isArray(value)) return undefined;\n return value;\n}\n\nfunction formatValue(value: unknown): string {\n return typeof value === \"string\" ? value : JSON.stringify(value, null, 2);\n}\n\nfunction commandSection(node: Test, context: FixtureContext | undefined): BriefSection[] {\n const command = context?.command ?? node.command;\n if (!command) return [];\n const cwd = context?.cwd ?? node.work_dir;\n const exit = context?.exit_code;\n const lines = [`$ ${command}`, cwd && `cwd: ${cwd}`, exit !== undefined && `exit: ${exit}`];\n return [{ title: \"Command\", lang: \"sh\", body: lines.filter(Boolean).join(\"\\n\") }];\n}\n\nfunction assertionSection(node: Test, context: FixtureContext | undefined): BriefSection[] {\n const expression = context?.cel_expression;\n const trace = readCelTrace(node.detail);\n const hasCelGate = !!(expression || trace);\n const vars = context?.cel_vars ?? {};\n const expected = comparisonValue(hasCelGate, context?.expected);\n const actual = comparisonValue(hasCelGate, context?.actual);\n const lines = [\n expression && `expression: ${expression}`,\n trace && `trace:\\n${trace}`,\n Object.keys(vars).length > 0 && `vars: ${formatValue(vars)}`,\n expected !== undefined && `expected: ${formatValue(expected)}`,\n actual !== undefined && `actual: ${formatValue(actual)}`,\n ].filter(Boolean);\n return lines.length > 0 ? [{ title: \"Assertion\", body: lines.join(\"\\n\") }] : [];\n}\n\nconst OUTCOME_GLYPH: Record<TestOutcome, string> = {\n passed: \"✓\",\n failed: \"✗\",\n errored: \"✗\",\n timedout: \"⏱\",\n warned: \"!\",\n skipped: \"-\",\n pending: \"○\",\n running: \"…\",\n};\n\nfunction childLine(child: Test): string {\n const outcome = outcomeFor(child);\n const exit = (child.context as FixtureContext | undefined)?.exit_code;\n const reason = child.message ?? (exit ? `exit ${exit}` : undefined);\n return `${outcome ? OUTCOME_GLYPH[outcome] : \"·\"} ${child.name}${reason ? ` — ${reason}` : \"\"}`;\n}\n\nfunction summaryLine(summary: TestSummary): string {\n const counts: [number | undefined, string][] = [\n [summary.Passed, \"passed\"],\n [summary.Failed, \"failed\"],\n [summary.Warned, \"warned\"],\n [summary.Timedout, \"timed out\"],\n [summary.Skipped, \"skipped\"],\n [summary.Pending, \"pending\"],\n [summary.Running, \"running\"],\n ];\n const parts = counts.filter(([n]) => !!n).map(([n, label]) => `${n} ${label}`);\n return [`${summary.Total} total`, ...parts].join(\" · \");\n}\n\nfunction resultsSection(node: Test): BriefSection[] {\n const lines = [\n ...(node.summary ? [summaryLine(node.summary)] : []),\n ...(node.children ?? []).map(childLine),\n ];\n return lines.length > 0 ? [{ title: \"Results\", body: lines.join(\"\\n\") }] : [];\n}\n\n/** Command, CEL assertion and per-child verdicts for a fixture step or its parent. */\nfunction fixtureCopy(node: Test): CopySections {\n const context = node.context as FixtureContext | undefined;\n const command = context?.command ?? node.command;\n return {\n brief: [\n ...commandSection(node, context),\n ...assertionSection(node, context),\n ...resultsSection(node),\n ],\n items: command ? [{ label: \"Copy command\", icon: UiTerminal, value: command }] : [],\n };\n}\n\nconst fixtureAdapter: TestNodeAdapter = {\n id: \"verification-fixture\",\n match: isFixtureNode,\n renderDetail: ({ node }) => <FixtureDetail node={node} />,\n copy: ({ node }) => fixtureCopy(node),\n};\n\n// gavel's FixtureResult.Type values plus \"fixture\" (a markdown table of rows).\n// Table and runner-step parents carry no `context`, so the fixture adapter\n// never claims them; this copy-only adapter gives them the same sections.\nconst FIXTURE_STEP_FRAMEWORKS = new Set([\"exec\", \"query\", \"fixture\", \"test\", \"lint\", \"verify\"]);\n\nconst fixtureStepCopyAdapter: TestNodeAdapter = {\n id: \"verification-step-copy\",\n match: (node) => FIXTURE_STEP_FRAMEWORKS.has(node.framework ?? \"\"),\n copy: ({ node }) => fixtureCopy(node),\n};\n\n/** Default node adapters for VerificationResults: checklist items and\n * fixture/CEL steps. Registration order matters only when a node could match\n * both — a checklist node never carries a `context`, so the two never race. */\nexport function verificationAdapters(): TestNodeAdapterRegistry {\n return createTestRunnerRegistry([checklistAdapter, fixtureAdapter, fixtureStepCopyAdapter]);\n}\n"],"names":[],"mappings":";;;;;AAqBA,SAAS,gBAAgB,MAAqB;AAC5C,SAAO,KAAK,cAAc;AAC5B;AAEA,SAAS,cAAc,MAAoB;AACzC,MAAI,KAAK,OAAQ,QAAO;AACxB,MAAI,KAAK,OAAQ,QAAO;AACxB,SAAO;AACT;AAGA,SAAS,cAAc,MAA0B;AAC/C,QAAM,QAAQ,KAAK,YAAY,KAAK,SAAS,SAAS,IAAI,KAAK,WAAW,CAAC,IAAI;AAC/E,QAAM,QAAQ,MAAM;AAAA,IAClB,CAAC,SAAS,KAAK,cAAc,IAAI,CAAC,IAAI,KAAK,IAAI,GAAG,KAAK,UAAU,MAAM,KAAK,OAAO,KAAK,EAAE;AAAA,EAAA;AAE5F,SAAO,EAAE,OAAO,CAAC,EAAE,OAAO,YAAY,MAAM,MAAM,KAAK,IAAI,EAAA,CAAG,EAAA;AAChE;AAEA,MAAM,mBAAoC;AAAA,EACxC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,cAAc,CAAC,EAAE,WAAW,oBAAC,mBAAgB,MAAY;AAAA,EACzD,MAAM,CAAC,EAAE,KAAA,MAAW,cAAc,IAAI;AACxC;AAEA,SAAS,cAAc,MAAqB;AAC1C,SAAO,KAAK,YAAY;AAC1B;AAIA,SAAS,aAAa,QAAqC;AACzD,MAAI,UAAU,OAAO,WAAW,YAAY,CAAC,MAAM,QAAQ,MAAM,GAAG;AAClE,UAAM,QAAS,OAAmC;AAClD,QAAI,OAAO,UAAU,YAAY,MAAM,SAAS,EAAG,QAAO;AAAA,EAC5D;AACA,SAAO;AACT;AAIA,SAAS,gBAAgB,YAAqB,OAAyB;AACrE,MAAI,UAAU,OAAW,QAAO;AAChC,MAAI,WAAY,QAAO;AACvB,MAAI,UAAU,QAAQ,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK,EAAG,QAAO;AACjF,SAAO;AACT;AAEA,SAAS,YAAY,OAAwB;AAC3C,SAAO,OAAO,UAAU,WAAW,QAAQ,KAAK,UAAU,OAAO,MAAM,CAAC;AAC1E;AAEA,SAAS,eAAe,MAAY,SAAqD;AACvF,QAAM,WAAU,mCAAS,YAAW,KAAK;AACzC,MAAI,CAAC,QAAS,QAAO,CAAA;AACrB,QAAM,OAAM,mCAAS,QAAO,KAAK;AACjC,QAAM,OAAO,mCAAS;AACtB,QAAM,QAAQ,CAAC,KAAK,OAAO,IAAI,OAAO,QAAQ,GAAG,IAAI,SAAS,UAAa,SAAS,IAAI,EAAE;AAC1F,SAAO,CAAC,EAAE,OAAO,WAAW,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,EAAE,KAAK,IAAI,GAAG;AAClF;AAEA,SAAS,iBAAiB,MAAY,SAAqD;AACzF,QAAM,aAAa,mCAAS;AAC5B,QAAM,QAAQ,aAAa,KAAK,MAAM;AACtC,QAAM,aAAa,CAAC,EAAE,cAAc;AACpC,QAAM,QAAO,mCAAS,aAAY,CAAA;AAClC,QAAM,WAAW,gBAAgB,YAAY,mCAAS,QAAQ;AAC9D,QAAM,SAAS,gBAAgB,YAAY,mCAAS,MAAM;AAC1D,QAAM,QAAQ;AAAA,IACZ,cAAc,eAAe,UAAU;AAAA,IACvC,SAAS;AAAA,EAAW,KAAK;AAAA,IACzB,OAAO,KAAK,IAAI,EAAE,SAAS,KAAK,SAAS,YAAY,IAAI,CAAC;AAAA,IAC1D,aAAa,UAAa,aAAa,YAAY,QAAQ,CAAC;AAAA,IAC5D,WAAW,UAAa,WAAW,YAAY,MAAM,CAAC;AAAA,EAAA,EACtD,OAAO,OAAO;AAChB,SAAO,MAAM,SAAS,IAAI,CAAC,EAAE,OAAO,aAAa,MAAM,MAAM,KAAK,IAAI,EAAA,CAAG,IAAI,CAAA;AAC/E;AAEA,MAAM,gBAA6C;AAAA,EACjD,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AACX;AAEA,SAAS,UAAU,OAAqB;;AACtC,QAAM,UAAU,WAAW,KAAK;AAChC,QAAM,QAAQ,WAAM,YAAN,mBAA8C;AAC5D,QAAM,SAAS,MAAM,YAAY,OAAO,QAAQ,IAAI,KAAK;AACzD,SAAO,GAAG,UAAU,cAAc,OAAO,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,SAAS,MAAM,MAAM,KAAK,EAAE;AAC/F;AAEA,SAAS,YAAY,SAA8B;AACjD,QAAM,SAAyC;AAAA,IAC7C,CAAC,QAAQ,QAAQ,QAAQ;AAAA,IACzB,CAAC,QAAQ,QAAQ,QAAQ;AAAA,IACzB,CAAC,QAAQ,QAAQ,QAAQ;AAAA,IACzB,CAAC,QAAQ,UAAU,WAAW;AAAA,IAC9B,CAAC,QAAQ,SAAS,SAAS;AAAA,IAC3B,CAAC,QAAQ,SAAS,SAAS;AAAA,IAC3B,CAAC,QAAQ,SAAS,SAAS;AAAA,EAAA;AAE7B,QAAM,QAAQ,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM,GAAG,CAAC,IAAI,KAAK,EAAE;AAC7E,SAAO,CAAC,GAAG,QAAQ,KAAK,UAAU,GAAG,KAAK,EAAE,KAAK,KAAK;AACxD;AAEA,SAAS,eAAe,MAA4B;AAClD,QAAM,QAAQ;AAAA,IACZ,GAAI,KAAK,UAAU,CAAC,YAAY,KAAK,OAAO,CAAC,IAAI,CAAA;AAAA,IACjD,IAAI,KAAK,YAAY,CAAA,GAAI,IAAI,SAAS;AAAA,EAAA;AAExC,SAAO,MAAM,SAAS,IAAI,CAAC,EAAE,OAAO,WAAW,MAAM,MAAM,KAAK,IAAI,EAAA,CAAG,IAAI,CAAA;AAC7E;AAGA,SAAS,YAAY,MAA0B;AAC7C,QAAM,UAAU,KAAK;AACrB,QAAM,WAAU,mCAAS,YAAW,KAAK;AACzC,SAAO;AAAA,IACL,OAAO;AAAA,MACL,GAAG,eAAe,MAAM,OAAO;AAAA,MAC/B,GAAG,iBAAiB,MAAM,OAAO;AAAA,MACjC,GAAG,eAAe,IAAI;AAAA,IAAA;AAAA,IAExB,OAAO,UAAU,CAAC,EAAE,OAAO,gBAAgB,MAAM,YAAY,OAAO,QAAA,CAAS,IAAI,CAAA;AAAA,EAAC;AAEtF;AAEA,MAAM,iBAAkC;AAAA,EACtC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,cAAc,CAAC,EAAE,WAAW,oBAAC,iBAAc,MAAY;AAAA,EACvD,MAAM,CAAC,EAAE,KAAA,MAAW,YAAY,IAAI;AACtC;AAKA,MAAM,0BAA0B,oBAAI,IAAI,CAAC,QAAQ,SAAS,WAAW,QAAQ,QAAQ,QAAQ,CAAC;AAE9F,MAAM,yBAA0C;AAAA,EAC9C,IAAI;AAAA,EACJ,OAAO,CAAC,SAAS,wBAAwB,IAAI,KAAK,aAAa,EAAE;AAAA,EACjE,MAAM,CAAC,EAAE,KAAA,MAAW,YAAY,IAAI;AACtC;AAKO,SAAS,uBAAgD;AAC9D,SAAO,yBAAyB,CAAC,kBAAkB,gBAAgB,sBAAsB,CAAC;AAC5F;"}
@@ -1 +1 @@
1
- {"version":3,"file":"verifyReportTests.cjs","sources":["../../../src/data/verification/verifyReportTests.ts"],"sourcesContent":["// Projects a captain VerifyReport onto the shared test-runner Test model, so\n// VerificationResults can render it with the same TestRunner every other\n// fixture/test surface uses. Ported from gavel's verificationAttempts.ts\n// (executionNodeTest / checklistTest), adapted to VerifyReport's node shape\n// (which already carries boolean status flags, unlike gavel's execution\n// snapshot which carried a single `state` string to translate).\n\nimport { aggregateStatusCounts, type StatusCounts, type Test, type TestSummary } from \"../test-runner\";\nimport type { VerifyChecklistItem, VerifyNode, VerifyReport, VerifySummary } from \"./verify-report\";\n\nconst ACCEPTANCE_CRITERIA_ID = \"acceptance-criteria\";\n\nfunction coerceDuration(duration: unknown): number | undefined {\n return typeof duration === \"number\" && Number.isFinite(duration) ? duration : undefined;\n}\n\n/**\n * Projects a `VerifySummary` onto the test-runner's `TestSummary` shape (see\n * `test-runner/types.ts`), so `sum()`/`aggregateStatusCounts` (test-runner\n * `status.ts`) read a summary-carrying node's counts directly instead of\n * recursing into (possibly elided) children.\n *\n * `Duration` is not carried by `VerifySummary`, so it is reported as 0.\n */\nfunction verifySummaryToTestSummary(summary: VerifySummary): TestSummary {\n return {\n Total: summary.total,\n Passed: summary.passed,\n Failed: summary.failed,\n Warned: summary.warned,\n Skipped: summary.skipped,\n Pending: summary.pending,\n Running: summary.running,\n Timedout: summary.timedout,\n Duration: 0,\n };\n}\n\n// Every field below is optional on both VerifyNode and Test, and the project\n// compiles with exactOptionalPropertyTypes — so an absent field must be an\n// absent key, not a key explicitly set to undefined. Each is assigned only\n// when present rather than copied through in one object literal.\nfunction verifyNodeTest(node: VerifyNode): Test {\n const test: Test = { name: node.name };\n if (node.framework !== undefined) test.framework = node.framework;\n if (node.task_id !== undefined) test.task_id = node.task_id;\n if (node.file !== undefined) test.file = node.file;\n if (node.line !== undefined) test.line = node.line;\n if (node.message !== undefined) test.message = node.message;\n if (node.command !== undefined) test.command = node.command;\n if (node.work_dir !== undefined) test.work_dir = node.work_dir;\n if (node.stdout !== undefined) test.stdout = node.stdout;\n if (node.stderr !== undefined) test.stderr = node.stderr;\n const duration = coerceDuration(node.duration);\n if (duration !== undefined) test.duration = duration;\n if (node.passed !== undefined) test.passed = node.passed;\n if (node.failed !== undefined) test.failed = node.failed;\n if (node.warned !== undefined) test.warned = node.warned;\n if (node.skipped !== undefined) test.skipped = node.skipped;\n if (node.pending !== undefined) test.pending = node.pending;\n if (node.running !== undefined) test.running = node.running;\n if (node.timed_out !== undefined) test.timed_out = node.timed_out;\n if (node.progress !== undefined) test.progress = node.progress;\n if (node.context !== undefined) test.context = node.context;\n if (node.detail !== undefined) test.detail = node.detail;\n // A node carrying its own `summary` (elided children) contributes that\n // summary directly and is never recursed into, even if `children` is also\n // present — parity with Go's `SummarizeNodes` and `summarizeVerifyNodes`.\n if (node.summary !== undefined) {\n test.summary = verifySummaryToTestSummary(node.summary);\n } else if (node.children !== undefined) {\n test.children = node.children.map(verifyNodeTest);\n }\n return test;\n}\n\nfunction checklistItemTest(item: VerifyChecklistItem, index: number): Test {\n const test: Test = {\n name: item.item || `Criterion ${index + 1}`,\n framework: \"checklist\",\n task_id: `${ACCEPTANCE_CRITERIA_ID}:${index}`,\n passed: item.passed === true,\n failed: item.passed === false,\n pending: item.passed !== true && item.passed !== false,\n detail: item,\n };\n if (item.message !== undefined) test.message = item.message;\n return test;\n}\n\n/**\n * Synthesizes the \"Acceptance criteria\" parent node gavel's checklistTest\n * ports. Deliberately carries no status flags of its own — `status.ts`'s\n * `testStatus` checks `pending` before `failed`, so a container explicitly\n * flagged both `failed` and `pending` (one item failed, another is still\n * unjudged) would render as queued instead of failed. Leaving the container\n * status-less lets the shared roll-up (`statusIconFor`/`statusToneFor`: failed\n * → warned → running → pending → passed, via `sum()` over the children) decide\n * instead.\n */\nfunction checklistTest(checklist: VerifyChecklistItem[]): Test | null {\n if (checklist.length === 0) return null;\n const children = checklist.map(checklistItemTest);\n return {\n name: \"Acceptance criteria\",\n framework: \"checklist\",\n task_id: ACCEPTANCE_CRITERIA_ID,\n children,\n };\n}\n\n/** Maps a VerifyReport onto the TestRunner's Test forest, appending a\n * synthesized \"Acceptance criteria\" node for the checklist when present. */\nexport function verifyReportTests(report: VerifyReport): Test[] {\n const tests = (report.tests ?? []).map(verifyNodeTest);\n const checklist = checklistTest(report.checklist ?? []);\n return checklist ? [...tests, checklist] : tests;\n}\n\n/**\n * Status roll-up across the *rendered* forest: `report.tests` plus the\n * synthesized checklist leaves. This is **not** `report.summary` — the\n * producer's tests-only tally (see `summarizeVerifyNodes` in ./verify-report)\n * — since it also counts checklist items, which never appear in `tests`.\n */\nexport function verifyReportCounts(report: VerifyReport): StatusCounts {\n return aggregateStatusCounts(verifyReportTests(report));\n}\n"],"names":["aggregateStatusCounts"],"mappings":"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"}
1
+ {"version":3,"file":"verifyReportTests.cjs","sources":["../../../src/data/verification/verifyReportTests.ts"],"sourcesContent":["// Projects a captain VerifyReport onto the shared test-runner Test model, so\n// VerificationResults can render it with the same TestRunner every other\n// fixture/test surface uses. Ported from gavel's verificationAttempts.ts\n// (executionNodeTest / checklistTest), adapted to VerifyReport's node shape\n// (which already carries boolean status flags, unlike gavel's execution\n// snapshot which carried a single `state` string to translate).\n\nimport { aggregateStatusCounts, type StatusCounts, type Test, type TestSummary } from \"../test-runner\";\nimport type { VerifyChecklistItem, VerifyNode, VerifyReport, VerifySummary } from \"./verify-report\";\n\nconst ACCEPTANCE_CRITERIA_ID = \"acceptance-criteria\";\n\nfunction coerceDuration(duration: unknown): number | undefined {\n return typeof duration === \"number\" && Number.isFinite(duration) ? duration : undefined;\n}\n\n/**\n * Projects a `VerifySummary` onto the test-runner's `TestSummary` shape (see\n * `test-runner/types.ts`), so `sum()`/`aggregateStatusCounts` (test-runner\n * `status.ts`) read a summary-carrying node's counts directly instead of\n * recursing into (possibly elided) children.\n *\n * `Duration` is not carried by `VerifySummary`, so it is reported as 0.\n */\nfunction verifySummaryToTestSummary(summary: VerifySummary): TestSummary {\n return {\n Total: summary.total,\n Passed: summary.passed,\n Failed: summary.failed,\n Warned: summary.warned,\n Skipped: summary.skipped,\n Pending: summary.pending,\n Running: summary.running,\n Timedout: summary.timedout,\n Duration: 0,\n };\n}\n\n// Every field below is optional on both VerifyNode and Test, and the project\n// compiles with exactOptionalPropertyTypes — so an absent field must be an\n// absent key, not a key explicitly set to undefined. Each is assigned only\n// when present rather than copied through in one object literal.\nfunction verifyNodeTest(node: VerifyNode): Test {\n const test: Test = { name: node.name };\n if (node.framework !== undefined) test.framework = node.framework;\n if (node.task_id !== undefined) test.task_id = node.task_id;\n if (node.file !== undefined) test.file = node.file;\n if (node.line !== undefined) test.line = node.line;\n if (node.message !== undefined) test.message = node.message;\n if (node.command !== undefined) test.command = node.command;\n if (node.work_dir !== undefined) test.work_dir = node.work_dir;\n if (node.stdout !== undefined) test.stdout = node.stdout;\n if (node.stderr !== undefined) test.stderr = node.stderr;\n const duration = coerceDuration(node.duration);\n if (duration !== undefined) test.duration = duration;\n if (node.passed !== undefined) test.passed = node.passed;\n if (node.failed !== undefined) test.failed = node.failed;\n if (node.warned !== undefined) test.warned = node.warned;\n if (node.skipped !== undefined) test.skipped = node.skipped;\n if (node.pending !== undefined) test.pending = node.pending;\n if (node.running !== undefined) test.running = node.running;\n if (node.timed_out !== undefined) test.timed_out = node.timed_out;\n if (node.progress !== undefined) test.progress = node.progress;\n if (node.context !== undefined) test.context = node.context;\n if (node.detail !== undefined) test.detail = node.detail;\n // A node carrying its own `summary` (elided children) contributes that\n // summary directly and is never recursed into, even if `children` is also\n // present — parity with Go's `SummarizeNodes` and `summarizeVerifyNodes`.\n if (node.summary !== undefined) {\n test.summary = verifySummaryToTestSummary(node.summary);\n } else if (node.children !== undefined) {\n test.children = node.children.map(verifyNodeTest);\n }\n return test;\n}\n\nfunction checklistItemTest(item: VerifyChecklistItem, index: number): Test {\n const test: Test = {\n name: item.item || `Criterion ${index + 1}`,\n framework: \"checklist\",\n task_id: `${ACCEPTANCE_CRITERIA_ID}:${index}`,\n passed: item.passed === true,\n failed: item.passed === false,\n pending: item.passed !== true && item.passed !== false,\n detail: item,\n };\n if (item.message !== undefined) test.message = item.message;\n return test;\n}\n\n/**\n * Synthesizes the \"Acceptance criteria\" parent node gavel's checklistTest\n * ports. Deliberately carries no status flags of its own — `status.ts`'s\n * `testStatus` checks `pending` before `failed`, so a container explicitly\n * flagged both `failed` and `pending` (one item failed, another is still\n * unjudged) would render as queued instead of failed. Leaving the container\n * status-less lets the shared roll-up (`outcomeFor`/`statusToneFor`: failed\n * → warned → running → pending → passed, via `sum()` over the children) decide\n * instead.\n */\nfunction checklistTest(checklist: VerifyChecklistItem[]): Test | null {\n if (checklist.length === 0) return null;\n const children = checklist.map(checklistItemTest);\n return {\n name: \"Acceptance criteria\",\n framework: \"checklist\",\n task_id: ACCEPTANCE_CRITERIA_ID,\n children,\n };\n}\n\n/** Maps a VerifyReport onto the TestRunner's Test forest, appending a\n * synthesized \"Acceptance criteria\" node for the checklist when present. */\nexport function verifyReportTests(report: VerifyReport): Test[] {\n const tests = (report.tests ?? []).map(verifyNodeTest);\n const checklist = checklistTest(report.checklist ?? []);\n return checklist ? [...tests, checklist] : tests;\n}\n\n/**\n * Status roll-up across the *rendered* forest: `report.tests` plus the\n * synthesized checklist leaves. This is **not** `report.summary` — the\n * producer's tests-only tally (see `summarizeVerifyNodes` in ./verify-report)\n * — since it also counts checklist items, which never appear in `tests`.\n */\nexport function verifyReportCounts(report: VerifyReport): StatusCounts {\n return aggregateStatusCounts(verifyReportTests(report));\n}\n"],"names":["aggregateStatusCounts"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"verifyReportTests.js","sources":["../../../src/data/verification/verifyReportTests.ts"],"sourcesContent":["// Projects a captain VerifyReport onto the shared test-runner Test model, so\n// VerificationResults can render it with the same TestRunner every other\n// fixture/test surface uses. Ported from gavel's verificationAttempts.ts\n// (executionNodeTest / checklistTest), adapted to VerifyReport's node shape\n// (which already carries boolean status flags, unlike gavel's execution\n// snapshot which carried a single `state` string to translate).\n\nimport { aggregateStatusCounts, type StatusCounts, type Test, type TestSummary } from \"../test-runner\";\nimport type { VerifyChecklistItem, VerifyNode, VerifyReport, VerifySummary } from \"./verify-report\";\n\nconst ACCEPTANCE_CRITERIA_ID = \"acceptance-criteria\";\n\nfunction coerceDuration(duration: unknown): number | undefined {\n return typeof duration === \"number\" && Number.isFinite(duration) ? duration : undefined;\n}\n\n/**\n * Projects a `VerifySummary` onto the test-runner's `TestSummary` shape (see\n * `test-runner/types.ts`), so `sum()`/`aggregateStatusCounts` (test-runner\n * `status.ts`) read a summary-carrying node's counts directly instead of\n * recursing into (possibly elided) children.\n *\n * `Duration` is not carried by `VerifySummary`, so it is reported as 0.\n */\nfunction verifySummaryToTestSummary(summary: VerifySummary): TestSummary {\n return {\n Total: summary.total,\n Passed: summary.passed,\n Failed: summary.failed,\n Warned: summary.warned,\n Skipped: summary.skipped,\n Pending: summary.pending,\n Running: summary.running,\n Timedout: summary.timedout,\n Duration: 0,\n };\n}\n\n// Every field below is optional on both VerifyNode and Test, and the project\n// compiles with exactOptionalPropertyTypes — so an absent field must be an\n// absent key, not a key explicitly set to undefined. Each is assigned only\n// when present rather than copied through in one object literal.\nfunction verifyNodeTest(node: VerifyNode): Test {\n const test: Test = { name: node.name };\n if (node.framework !== undefined) test.framework = node.framework;\n if (node.task_id !== undefined) test.task_id = node.task_id;\n if (node.file !== undefined) test.file = node.file;\n if (node.line !== undefined) test.line = node.line;\n if (node.message !== undefined) test.message = node.message;\n if (node.command !== undefined) test.command = node.command;\n if (node.work_dir !== undefined) test.work_dir = node.work_dir;\n if (node.stdout !== undefined) test.stdout = node.stdout;\n if (node.stderr !== undefined) test.stderr = node.stderr;\n const duration = coerceDuration(node.duration);\n if (duration !== undefined) test.duration = duration;\n if (node.passed !== undefined) test.passed = node.passed;\n if (node.failed !== undefined) test.failed = node.failed;\n if (node.warned !== undefined) test.warned = node.warned;\n if (node.skipped !== undefined) test.skipped = node.skipped;\n if (node.pending !== undefined) test.pending = node.pending;\n if (node.running !== undefined) test.running = node.running;\n if (node.timed_out !== undefined) test.timed_out = node.timed_out;\n if (node.progress !== undefined) test.progress = node.progress;\n if (node.context !== undefined) test.context = node.context;\n if (node.detail !== undefined) test.detail = node.detail;\n // A node carrying its own `summary` (elided children) contributes that\n // summary directly and is never recursed into, even if `children` is also\n // present — parity with Go's `SummarizeNodes` and `summarizeVerifyNodes`.\n if (node.summary !== undefined) {\n test.summary = verifySummaryToTestSummary(node.summary);\n } else if (node.children !== undefined) {\n test.children = node.children.map(verifyNodeTest);\n }\n return test;\n}\n\nfunction checklistItemTest(item: VerifyChecklistItem, index: number): Test {\n const test: Test = {\n name: item.item || `Criterion ${index + 1}`,\n framework: \"checklist\",\n task_id: `${ACCEPTANCE_CRITERIA_ID}:${index}`,\n passed: item.passed === true,\n failed: item.passed === false,\n pending: item.passed !== true && item.passed !== false,\n detail: item,\n };\n if (item.message !== undefined) test.message = item.message;\n return test;\n}\n\n/**\n * Synthesizes the \"Acceptance criteria\" parent node gavel's checklistTest\n * ports. Deliberately carries no status flags of its own — `status.ts`'s\n * `testStatus` checks `pending` before `failed`, so a container explicitly\n * flagged both `failed` and `pending` (one item failed, another is still\n * unjudged) would render as queued instead of failed. Leaving the container\n * status-less lets the shared roll-up (`statusIconFor`/`statusToneFor`: failed\n * → warned → running → pending → passed, via `sum()` over the children) decide\n * instead.\n */\nfunction checklistTest(checklist: VerifyChecklistItem[]): Test | null {\n if (checklist.length === 0) return null;\n const children = checklist.map(checklistItemTest);\n return {\n name: \"Acceptance criteria\",\n framework: \"checklist\",\n task_id: ACCEPTANCE_CRITERIA_ID,\n children,\n };\n}\n\n/** Maps a VerifyReport onto the TestRunner's Test forest, appending a\n * synthesized \"Acceptance criteria\" node for the checklist when present. */\nexport function verifyReportTests(report: VerifyReport): Test[] {\n const tests = (report.tests ?? []).map(verifyNodeTest);\n const checklist = checklistTest(report.checklist ?? []);\n return checklist ? [...tests, checklist] : tests;\n}\n\n/**\n * Status roll-up across the *rendered* forest: `report.tests` plus the\n * synthesized checklist leaves. This is **not** `report.summary` — the\n * producer's tests-only tally (see `summarizeVerifyNodes` in ./verify-report)\n * — since it also counts checklist items, which never appear in `tests`.\n */\nexport function verifyReportCounts(report: VerifyReport): StatusCounts {\n return aggregateStatusCounts(verifyReportTests(report));\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifyReportTests.js","sources":["../../../src/data/verification/verifyReportTests.ts"],"sourcesContent":["// Projects a captain VerifyReport onto the shared test-runner Test model, so\n// VerificationResults can render it with the same TestRunner every other\n// fixture/test surface uses. Ported from gavel's verificationAttempts.ts\n// (executionNodeTest / checklistTest), adapted to VerifyReport's node shape\n// (which already carries boolean status flags, unlike gavel's execution\n// snapshot which carried a single `state` string to translate).\n\nimport { aggregateStatusCounts, type StatusCounts, type Test, type TestSummary } from \"../test-runner\";\nimport type { VerifyChecklistItem, VerifyNode, VerifyReport, VerifySummary } from \"./verify-report\";\n\nconst ACCEPTANCE_CRITERIA_ID = \"acceptance-criteria\";\n\nfunction coerceDuration(duration: unknown): number | undefined {\n return typeof duration === \"number\" && Number.isFinite(duration) ? duration : undefined;\n}\n\n/**\n * Projects a `VerifySummary` onto the test-runner's `TestSummary` shape (see\n * `test-runner/types.ts`), so `sum()`/`aggregateStatusCounts` (test-runner\n * `status.ts`) read a summary-carrying node's counts directly instead of\n * recursing into (possibly elided) children.\n *\n * `Duration` is not carried by `VerifySummary`, so it is reported as 0.\n */\nfunction verifySummaryToTestSummary(summary: VerifySummary): TestSummary {\n return {\n Total: summary.total,\n Passed: summary.passed,\n Failed: summary.failed,\n Warned: summary.warned,\n Skipped: summary.skipped,\n Pending: summary.pending,\n Running: summary.running,\n Timedout: summary.timedout,\n Duration: 0,\n };\n}\n\n// Every field below is optional on both VerifyNode and Test, and the project\n// compiles with exactOptionalPropertyTypes — so an absent field must be an\n// absent key, not a key explicitly set to undefined. Each is assigned only\n// when present rather than copied through in one object literal.\nfunction verifyNodeTest(node: VerifyNode): Test {\n const test: Test = { name: node.name };\n if (node.framework !== undefined) test.framework = node.framework;\n if (node.task_id !== undefined) test.task_id = node.task_id;\n if (node.file !== undefined) test.file = node.file;\n if (node.line !== undefined) test.line = node.line;\n if (node.message !== undefined) test.message = node.message;\n if (node.command !== undefined) test.command = node.command;\n if (node.work_dir !== undefined) test.work_dir = node.work_dir;\n if (node.stdout !== undefined) test.stdout = node.stdout;\n if (node.stderr !== undefined) test.stderr = node.stderr;\n const duration = coerceDuration(node.duration);\n if (duration !== undefined) test.duration = duration;\n if (node.passed !== undefined) test.passed = node.passed;\n if (node.failed !== undefined) test.failed = node.failed;\n if (node.warned !== undefined) test.warned = node.warned;\n if (node.skipped !== undefined) test.skipped = node.skipped;\n if (node.pending !== undefined) test.pending = node.pending;\n if (node.running !== undefined) test.running = node.running;\n if (node.timed_out !== undefined) test.timed_out = node.timed_out;\n if (node.progress !== undefined) test.progress = node.progress;\n if (node.context !== undefined) test.context = node.context;\n if (node.detail !== undefined) test.detail = node.detail;\n // A node carrying its own `summary` (elided children) contributes that\n // summary directly and is never recursed into, even if `children` is also\n // present — parity with Go's `SummarizeNodes` and `summarizeVerifyNodes`.\n if (node.summary !== undefined) {\n test.summary = verifySummaryToTestSummary(node.summary);\n } else if (node.children !== undefined) {\n test.children = node.children.map(verifyNodeTest);\n }\n return test;\n}\n\nfunction checklistItemTest(item: VerifyChecklistItem, index: number): Test {\n const test: Test = {\n name: item.item || `Criterion ${index + 1}`,\n framework: \"checklist\",\n task_id: `${ACCEPTANCE_CRITERIA_ID}:${index}`,\n passed: item.passed === true,\n failed: item.passed === false,\n pending: item.passed !== true && item.passed !== false,\n detail: item,\n };\n if (item.message !== undefined) test.message = item.message;\n return test;\n}\n\n/**\n * Synthesizes the \"Acceptance criteria\" parent node gavel's checklistTest\n * ports. Deliberately carries no status flags of its own — `status.ts`'s\n * `testStatus` checks `pending` before `failed`, so a container explicitly\n * flagged both `failed` and `pending` (one item failed, another is still\n * unjudged) would render as queued instead of failed. Leaving the container\n * status-less lets the shared roll-up (`outcomeFor`/`statusToneFor`: failed\n * → warned → running → pending → passed, via `sum()` over the children) decide\n * instead.\n */\nfunction checklistTest(checklist: VerifyChecklistItem[]): Test | null {\n if (checklist.length === 0) return null;\n const children = checklist.map(checklistItemTest);\n return {\n name: \"Acceptance criteria\",\n framework: \"checklist\",\n task_id: ACCEPTANCE_CRITERIA_ID,\n children,\n };\n}\n\n/** Maps a VerifyReport onto the TestRunner's Test forest, appending a\n * synthesized \"Acceptance criteria\" node for the checklist when present. */\nexport function verifyReportTests(report: VerifyReport): Test[] {\n const tests = (report.tests ?? []).map(verifyNodeTest);\n const checklist = checklistTest(report.checklist ?? []);\n return checklist ? [...tests, checklist] : tests;\n}\n\n/**\n * Status roll-up across the *rendered* forest: `report.tests` plus the\n * synthesized checklist leaves. This is **not** `report.summary` — the\n * producer's tests-only tally (see `summarizeVerifyNodes` in ./verify-report)\n * — since it also counts checklist items, which never appear in `tests`.\n */\nexport function verifyReportCounts(report: VerifyReport): StatusCounts {\n return aggregateStatusCounts(verifyReportTests(report));\n}\n"],"names":[],"mappings":";AAUA,MAAM,yBAAyB;AAE/B,SAAS,eAAe,UAAuC;AAC7D,SAAO,OAAO,aAAa,YAAY,OAAO,SAAS,QAAQ,IAAI,WAAW;AAChF;AAUA,SAAS,2BAA2B,SAAqC;AACvE,SAAO;AAAA,IACL,OAAO,QAAQ;AAAA,IACf,QAAQ,QAAQ;AAAA,IAChB,QAAQ,QAAQ;AAAA,IAChB,QAAQ,QAAQ;AAAA,IAChB,SAAS,QAAQ;AAAA,IACjB,SAAS,QAAQ;AAAA,IACjB,SAAS,QAAQ;AAAA,IACjB,UAAU,QAAQ;AAAA,IAClB,UAAU;AAAA,EAAA;AAEd;AAMA,SAAS,eAAe,MAAwB;AAC9C,QAAM,OAAa,EAAE,MAAM,KAAK,KAAA;AAChC,MAAI,KAAK,cAAc,OAAW,MAAK,YAAY,KAAK;AACxD,MAAI,KAAK,YAAY,OAAW,MAAK,UAAU,KAAK;AACpD,MAAI,KAAK,SAAS,OAAW,MAAK,OAAO,KAAK;AAC9C,MAAI,KAAK,SAAS,OAAW,MAAK,OAAO,KAAK;AAC9C,MAAI,KAAK,YAAY,OAAW,MAAK,UAAU,KAAK;AACpD,MAAI,KAAK,YAAY,OAAW,MAAK,UAAU,KAAK;AACpD,MAAI,KAAK,aAAa,OAAW,MAAK,WAAW,KAAK;AACtD,MAAI,KAAK,WAAW,OAAW,MAAK,SAAS,KAAK;AAClD,MAAI,KAAK,WAAW,OAAW,MAAK,SAAS,KAAK;AAClD,QAAM,WAAW,eAAe,KAAK,QAAQ;AAC7C,MAAI,aAAa,OAAW,MAAK,WAAW;AAC5C,MAAI,KAAK,WAAW,OAAW,MAAK,SAAS,KAAK;AAClD,MAAI,KAAK,WAAW,OAAW,MAAK,SAAS,KAAK;AAClD,MAAI,KAAK,WAAW,OAAW,MAAK,SAAS,KAAK;AAClD,MAAI,KAAK,YAAY,OAAW,MAAK,UAAU,KAAK;AACpD,MAAI,KAAK,YAAY,OAAW,MAAK,UAAU,KAAK;AACpD,MAAI,KAAK,YAAY,OAAW,MAAK,UAAU,KAAK;AACpD,MAAI,KAAK,cAAc,OAAW,MAAK,YAAY,KAAK;AACxD,MAAI,KAAK,aAAa,OAAW,MAAK,WAAW,KAAK;AACtD,MAAI,KAAK,YAAY,OAAW,MAAK,UAAU,KAAK;AACpD,MAAI,KAAK,WAAW,OAAW,MAAK,SAAS,KAAK;AAIlD,MAAI,KAAK,YAAY,QAAW;AAC9B,SAAK,UAAU,2BAA2B,KAAK,OAAO;AAAA,EACxD,WAAW,KAAK,aAAa,QAAW;AACtC,SAAK,WAAW,KAAK,SAAS,IAAI,cAAc;AAAA,EAClD;AACA,SAAO;AACT;AAEA,SAAS,kBAAkB,MAA2B,OAAqB;AACzE,QAAM,OAAa;AAAA,IACjB,MAAM,KAAK,QAAQ,aAAa,QAAQ,CAAC;AAAA,IACzC,WAAW;AAAA,IACX,SAAS,GAAG,sBAAsB,IAAI,KAAK;AAAA,IAC3C,QAAQ,KAAK,WAAW;AAAA,IACxB,QAAQ,KAAK,WAAW;AAAA,IACxB,SAAS,KAAK,WAAW,QAAQ,KAAK,WAAW;AAAA,IACjD,QAAQ;AAAA,EAAA;AAEV,MAAI,KAAK,YAAY,OAAW,MAAK,UAAU,KAAK;AACpD,SAAO;AACT;AAYA,SAAS,cAAc,WAA+C;AACpE,MAAI,UAAU,WAAW,EAAG,QAAO;AACnC,QAAM,WAAW,UAAU,IAAI,iBAAiB;AAChD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,WAAW;AAAA,IACX,SAAS;AAAA,IACT;AAAA,EAAA;AAEJ;AAIO,SAAS,kBAAkB,QAA8B;AAC9D,QAAM,SAAS,OAAO,SAAS,CAAA,GAAI,IAAI,cAAc;AACrD,QAAM,YAAY,cAAc,OAAO,aAAa,CAAA,CAAE;AACtD,SAAO,YAAY,CAAC,GAAG,OAAO,SAAS,IAAI;AAC7C;AAQO,SAAS,mBAAmB,QAAoC;AACrE,SAAO,sBAAsB,kBAAkB,MAAM,CAAC;AACxD;"}
@@ -15,9 +15,9 @@ function detectMode() {
15
15
  }
16
16
  function getVersionInfo() {
17
17
  return {
18
- commit: read(() => "16ab56d2", ""),
19
- tag: read(() => "clicky-ui@0.3.45", ""),
20
- date: read(() => "2026-10-08T07:04:04.001Z", ""),
18
+ commit: read(() => "9d48b408", ""),
19
+ tag: read(() => "clicky-ui@0.3.46", ""),
20
+ date: read(() => "2026-10-14T08:16:20.626Z", ""),
21
21
  dirty: read(() => true, false),
22
22
  mode: detectMode()
23
23
  };
@@ -13,9 +13,9 @@ function detectMode() {
13
13
  }
14
14
  function getVersionInfo() {
15
15
  return {
16
- commit: read(() => "16ab56d2", ""),
17
- tag: read(() => "clicky-ui@0.3.45", ""),
18
- date: read(() => "2026-10-08T07:03:21.350Z", ""),
16
+ commit: read(() => "9d48b408", ""),
17
+ tag: read(() => "clicky-ui@0.3.46", ""),
18
+ date: read(() => "2026-10-14T08:15:51.549Z", ""),
19
19
  dirty: read(() => true, false),
20
20
  mode: detectMode()
21
21
  };
package/dist/data.cjs CHANGED
@@ -101,6 +101,8 @@ const usePrompts = require("./hooks/use-prompts.cjs");
101
101
  const DiagnosticsTree = require("./data/diagnostics/DiagnosticsTree.cjs");
102
102
  const DiagnosticsDetailPanel = require("./data/diagnostics/DiagnosticsDetailPanel.cjs");
103
103
  const utils = require("./data/diagnostics/utils.cjs");
104
+ const GoroutineCard = require("./data/diagnostics/GoroutineCard.cjs");
105
+ const ThreadCard = require("./data/diagnostics/ThreadCard.cjs");
104
106
  const stacktrace = require("./data/diagnostics/stacktrace.cjs");
105
107
  const jvmStacktrace = require("./data/diagnostics/jvm-stacktrace.cjs");
106
108
  const JvmStackTrace = require("./data/diagnostics/JvmStackTrace.cjs");
@@ -125,8 +127,11 @@ const CacheStatsOverview = require("./data/cache-browser/CacheStatsOverview.cjs"
125
127
  const CacheValue = require("./data/cache-browser/CacheValue.cjs");
126
128
  const CallGraph = require("./data/call-graph/CallGraph.cjs");
127
129
  const ClickyExportDialog = require("./data/clicky-export/ClickyExportDialog.cjs");
130
+ const Expectation = require("./data/test-runner/Expectation.cjs");
128
131
  const FixtureEditor = require("./data/FixtureEditor/FixtureEditor.cjs");
129
132
  const GitChangeList = require("./data/git/GitChangeList.cjs");
133
+ const marks = require("./data/test-runner/marks.cjs");
134
+ const MarkIcons = require("./data/test-runner/MarkIcons.cjs");
130
135
  const QueryBrowser = require("./data/query-browser/QueryBrowser.cjs");
131
136
  const QueryBrowser_types = require("./data/query-browser/QueryBrowser.types.cjs");
132
137
  const status = require("./data/test-runner/status.cjs");
@@ -433,14 +438,25 @@ const UiLockOpen = require("./icons/components/UiLockOpen.cjs");
433
438
  const UiLogoAnthropic = require("./icons/components/UiLogoAnthropic.cjs");
434
439
  const UiLogoClaude = require("./icons/components/UiLogoClaude.cjs");
435
440
  const UiLogoDeepseek = require("./icons/components/UiLogoDeepseek.cjs");
441
+ const UiLogoEslint = require("./icons/components/UiLogoEslint.cjs");
436
442
  const UiLogoGemini = require("./icons/components/UiLogoGemini.cjs");
443
+ const UiLogoGo = require("./icons/components/UiLogoGo.cjs");
437
444
  const UiLogoGoogle = require("./icons/components/UiLogoGoogle.cjs");
438
445
  const UiLogoHuggingface = require("./icons/components/UiLogoHuggingface.cjs");
446
+ const UiLogoJest = require("./icons/components/UiLogoJest.cjs");
447
+ const UiLogoMarkdown = require("./icons/components/UiLogoMarkdown.cjs");
439
448
  const UiLogoMeta = require("./icons/components/UiLogoMeta.cjs");
440
449
  const UiLogoMistral = require("./icons/components/UiLogoMistral.cjs");
441
450
  const UiLogoOllama = require("./icons/components/UiLogoOllama.cjs");
442
451
  const UiLogoOpenai = require("./icons/components/UiLogoOpenai.cjs");
452
+ const UiLogoOxc = require("./icons/components/UiLogoOxc.cjs");
443
453
  const UiLogoPerplexity = require("./icons/components/UiLogoPerplexity.cjs");
454
+ const UiLogoPlaywright = require("./icons/components/UiLogoPlaywright.cjs");
455
+ const UiLogoPython = require("./icons/components/UiLogoPython.cjs");
456
+ const UiLogoReact = require("./icons/components/UiLogoReact.cjs");
457
+ const UiLogoRuff = require("./icons/components/UiLogoRuff.cjs");
458
+ const UiLogoTypescript = require("./icons/components/UiLogoTypescript.cjs");
459
+ const UiLogoVitest = require("./icons/components/UiLogoVitest.cjs");
444
460
  const UiMagicWand = require("./icons/components/UiMagicWand.cjs");
445
461
  const UiMarkdown = require("./icons/components/UiMarkdown.cjs");
446
462
  const UiMaterializedLog = require("./icons/components/UiMaterializedLog.cjs");
@@ -712,6 +728,7 @@ const UiZoomOut = require("./icons/components/UiZoomOut.cjs");
712
728
  const VerificationResults = require("./data/verification/VerificationResults.cjs");
713
729
  const routePath = require("./data/test-runner/routePath.cjs");
714
730
  const fixtureFrontmatter = require("./data/FixtureEditor/fixture-frontmatter.cjs");
731
+ const copy = require("./data/test-runner/copy.cjs");
715
732
  const api = require("./data/cache-browser/api.cjs");
716
733
  const changeIconAliases = require("./icons/changeIconAliases.cjs");
717
734
  const registry = require("./icons/registry.cjs");
@@ -719,7 +736,6 @@ const fixtureBlocks = require("./data/FixtureEditor/fixture-blocks.cjs");
719
736
  const filterState = require("./data/test-runner/filterState.cjs");
720
737
  const verifyReport = require("./data/verification/verify-report.cjs");
721
738
  const gitDates = require("./data/git/git-dates.cjs");
722
- const frameworkIcon = require("./data/test-runner/frameworkIcon.cjs");
723
739
  const types$1 = require("./data/cache-browser/types.cjs");
724
740
  const programmingCatalog = require("./icons/programmingCatalog.cjs");
725
741
  const graphEdgeRouting = require("./data/graph-edge-routing.cjs");
@@ -912,6 +928,8 @@ exports.findProcessByPID = utils.findProcessByPID;
912
928
  exports.processLabel = utils.processLabel;
913
929
  exports.processStateColor = utils.processStateColor;
914
930
  exports.processStateIcon = utils.processStateIcon;
931
+ exports.GoroutineCard = GoroutineCard.GoroutineCard;
932
+ exports.ThreadCard = ThreadCard.ThreadCard;
915
933
  exports.countGoroutinesByState = stacktrace.countGoroutinesByState;
916
934
  exports.countStackByState = stacktrace.countStackByState;
917
935
  exports.detectDumpFormat = stacktrace.detectDumpFormat;
@@ -973,11 +991,19 @@ exports.CacheStatsOverview = CacheStatsOverview.CacheStatsOverview;
973
991
  exports.CacheValue = CacheValue.CacheValue;
974
992
  exports.CallGraph = CallGraph.CallGraph;
975
993
  exports.ClickyExportDialog = ClickyExportDialog.ClickyExportDialog;
994
+ exports.Expectation = Expectation.Expectation;
976
995
  exports.FixtureEditor = FixtureEditor.FixtureEditor;
977
996
  exports.GitChangedFilesSummary = GitChangeList.GitChangedFilesSummary;
978
997
  exports.GitCommitList = GitChangeList.GitCommitList;
979
998
  exports.GitDiffPanel = GitChangeList.GitDiffPanel;
980
999
  exports.GitFileList = GitChangeList.GitFileList;
1000
+ exports.LINT_SEVERITIES = marks.LINT_SEVERITIES;
1001
+ exports.TEST_OUTCOMES = marks.TEST_OUTCOMES;
1002
+ exports.TEST_TOOLS = marks.TEST_TOOLS;
1003
+ exports.toolMark = marks.toolMark;
1004
+ exports.LintSeverityIcon = MarkIcons.LintSeverityIcon;
1005
+ exports.OutcomeIcon = MarkIcons.OutcomeIcon;
1006
+ exports.ToolIcon = MarkIcons.ToolIcon;
981
1007
  exports.QueryBrowser = QueryBrowser.QueryBrowser;
982
1008
  exports.QueryBrowserExecutionError = QueryBrowser_types.QueryBrowserExecutionError;
983
1009
  exports.STATUS_LABELS = status.STATUS_LABELS;
@@ -990,7 +1016,7 @@ exports.formatTestDuration = status.formatTestDuration;
990
1016
  exports.hasFailed = status.hasFailed;
991
1017
  exports.hasPending = status.hasPending;
992
1018
  exports.humanizeName = status.humanizeName;
993
- exports.statusIconFor = status.statusIconFor;
1019
+ exports.outcomeFor = status.outcomeFor;
994
1020
  exports.statusToneFor = status.statusToneFor;
995
1021
  exports.sum = status.sum;
996
1022
  exports.sumNonTaskTests = status.sumNonTaskTests;
@@ -1542,14 +1568,25 @@ exports.UiLockOpenFilled = UiLockOpen.UiLockOpenFilled;
1542
1568
  exports.UiLogoAnthropic = UiLogoAnthropic.UiLogoAnthropic;
1543
1569
  exports.UiLogoClaude = UiLogoClaude.UiLogoClaude;
1544
1570
  exports.UiLogoDeepseek = UiLogoDeepseek.UiLogoDeepseek;
1571
+ exports.UiLogoEslint = UiLogoEslint.UiLogoEslint;
1545
1572
  exports.UiLogoGemini = UiLogoGemini.UiLogoGemini;
1573
+ exports.UiLogoGo = UiLogoGo.UiLogoGo;
1546
1574
  exports.UiLogoGoogle = UiLogoGoogle.UiLogoGoogle;
1547
1575
  exports.UiLogoHuggingface = UiLogoHuggingface.UiLogoHuggingface;
1576
+ exports.UiLogoJest = UiLogoJest.UiLogoJest;
1577
+ exports.UiLogoMarkdown = UiLogoMarkdown.UiLogoMarkdown;
1548
1578
  exports.UiLogoMeta = UiLogoMeta.UiLogoMeta;
1549
1579
  exports.UiLogoMistral = UiLogoMistral.UiLogoMistral;
1550
1580
  exports.UiLogoOllama = UiLogoOllama.UiLogoOllama;
1551
1581
  exports.UiLogoOpenai = UiLogoOpenai.UiLogoOpenai;
1582
+ exports.UiLogoOxc = UiLogoOxc.UiLogoOxc;
1552
1583
  exports.UiLogoPerplexity = UiLogoPerplexity.UiLogoPerplexity;
1584
+ exports.UiLogoPlaywright = UiLogoPlaywright.UiLogoPlaywright;
1585
+ exports.UiLogoPython = UiLogoPython.UiLogoPython;
1586
+ exports.UiLogoReact = UiLogoReact.UiLogoReact;
1587
+ exports.UiLogoRuff = UiLogoRuff.UiLogoRuff;
1588
+ exports.UiLogoTypescript = UiLogoTypescript.UiLogoTypescript;
1589
+ exports.UiLogoVitest = UiLogoVitest.UiLogoVitest;
1553
1590
  exports.UiMagicWand = UiMagicWand.UiMagicWand;
1554
1591
  exports.UiMagicWandFilled = UiMagicWand.UiMagicWandFilled;
1555
1592
  exports.UiMarkdown = UiMarkdown.UiMarkdown;
@@ -2078,6 +2115,11 @@ exports.applyFixtureFrontmatterRaw = fixtureFrontmatter.applyFixtureFrontmatterR
2078
2115
  exports.applyFixtureFrontmatterState = fixtureFrontmatter.applyFixtureFrontmatterState;
2079
2116
  exports.fixtureFrontmatterState = fixtureFrontmatter.fixtureFrontmatterState;
2080
2117
  exports.parseFixtureFrontmatter = fixtureFrontmatter.parseFixtureFrontmatter;
2118
+ exports.buildBrief = copy.buildBrief;
2119
+ exports.buildNodeBrief = copy.buildNodeBrief;
2120
+ exports.buildNodeJson = copy.buildNodeJson;
2121
+ exports.genericCopySections = copy.genericCopySections;
2122
+ exports.mergeCopySections = copy.mergeCopySections;
2081
2123
  exports.cacheQueryKeys = api.cacheQueryKeys;
2082
2124
  exports.createCacheClient = api.createCacheClient;
2083
2125
  exports.changeIconAliases = changeIconAliases.changeIconAliases;
@@ -2103,7 +2145,6 @@ exports.recordToFilterState = filterState.recordToFilterState;
2103
2145
  exports.emptyVerifySummary = verifyReport.emptyVerifySummary;
2104
2146
  exports.summarizeVerifyNodes = verifyReport.summarizeVerifyNodes;
2105
2147
  exports.formatGitCommitDateHeader = gitDates.formatGitCommitDateHeader;
2106
- exports.frameworkIcon = frameworkIcon.frameworkIcon;
2107
2148
  exports.isLeaf = types$1.isLeaf;
2108
2149
  exports.programmingIconCatalog = programmingCatalog.programmingIconCatalog;
2109
2150
  exports.routeEdges = graphEdgeRouting.routeEdges;
package/dist/data.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"data.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"data.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/data.d.ts CHANGED
@@ -109,6 +109,8 @@ export { DiagnosticsTree, type DiagnosticsTreeProps } from './data/diagnostics/D
109
109
  export { DiagnosticsDetailPanel, type DiagnosticsDetailPanelProps, } from './data/diagnostics/DiagnosticsDetailPanel.js';
110
110
  export type { ProcessNode, StackCapture, RunMeta } from './data/diagnostics/types.js';
111
111
  export { findProcessByPID, countProcesses, processLabel, processStateIcon, processStateColor, } from './data/diagnostics/utils.js';
112
+ export { GoroutineCard, type GoroutineCardProps } from './data/diagnostics/GoroutineCard.js';
113
+ export { ThreadCard, type ThreadCardProps } from './data/diagnostics/ThreadCard.js';
112
114
  export { parseGoroutineDump, countGoroutinesByState, parseStackDump, detectDumpFormat, countStackByState, type ParsedGoroutine, type ParsedGoroutineFrame, type ParsedStack, type DumpFormat, } from './data/diagnostics/stacktrace.js';
113
115
  export { parseJvmThreadDump, countThreadsByState, type ParsedThread, type ParsedThreadFrame, } from './data/diagnostics/jvm-stacktrace.js';
114
116
  export { JvmStackTrace, type JvmStackTraceProps, type JvmFrameSourceResolver, } from './data/diagnostics/JvmStackTrace.js';
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}