@flanksource/clicky-ui 0.3.25 → 0.3.26

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 (470) hide show
  1. package/NOTICE.md +1 -0
  2. package/dist/ai.cjs +4 -0
  3. package/dist/ai.cjs.map +1 -1
  4. package/dist/ai.js +6 -2
  5. package/dist/ai.js.map +1 -1
  6. package/dist/chat.cjs +8 -0
  7. package/dist/chat.cjs.map +1 -1
  8. package/dist/chat.js +9 -1
  9. package/dist/chat.js.map +1 -1
  10. package/dist/comments/CommentCard.cjs +89 -14
  11. package/dist/comments/CommentCard.cjs.map +1 -1
  12. package/dist/comments/CommentCard.d.ts.map +1 -1
  13. package/dist/comments/CommentCard.js +90 -15
  14. package/dist/comments/CommentCard.js.map +1 -1
  15. package/dist/comments/CommentComposer.cjs +25 -2
  16. package/dist/comments/CommentComposer.cjs.map +1 -1
  17. package/dist/comments/CommentComposer.d.ts.map +1 -1
  18. package/dist/comments/CommentComposer.js +25 -2
  19. package/dist/comments/CommentComposer.js.map +1 -1
  20. package/dist/comments/CommentProvider.cjs +21 -14
  21. package/dist/comments/CommentProvider.cjs.map +1 -1
  22. package/dist/comments/CommentProvider.d.ts +1 -1
  23. package/dist/comments/CommentProvider.d.ts.map +1 -1
  24. package/dist/comments/CommentProvider.js +21 -14
  25. package/dist/comments/CommentProvider.js.map +1 -1
  26. package/dist/comments/CommentSidePanel.cjs +1 -1
  27. package/dist/comments/CommentSidePanel.cjs.map +1 -1
  28. package/dist/comments/CommentSidePanel.js +1 -1
  29. package/dist/comments/CommentSidePanel.js.map +1 -1
  30. package/dist/comments/comment-types.cjs.map +1 -1
  31. package/dist/comments/comment-types.d.ts +6 -0
  32. package/dist/comments/comment-types.d.ts.map +1 -1
  33. package/dist/comments/comment-types.js.map +1 -1
  34. package/dist/components/DimensionField.cjs +56 -0
  35. package/dist/components/DimensionField.cjs.map +1 -0
  36. package/dist/components/DimensionField.d.ts +17 -0
  37. package/dist/components/DimensionField.d.ts.map +1 -0
  38. package/dist/components/DimensionField.js +56 -0
  39. package/dist/components/DimensionField.js.map +1 -0
  40. package/dist/components.cjs +4 -0
  41. package/dist/components.cjs.map +1 -1
  42. package/dist/components.d.ts +2 -0
  43. package/dist/components.d.ts.map +1 -1
  44. package/dist/components.js +4 -0
  45. package/dist/components.js.map +1 -1
  46. package/dist/data/Clicky.cjs +4 -5
  47. package/dist/data/Clicky.cjs.map +1 -1
  48. package/dist/data/Clicky.d.ts.map +1 -1
  49. package/dist/data/Clicky.js +4 -5
  50. package/dist/data/Clicky.js.map +1 -1
  51. package/dist/data/TaskExecDetails.cjs +8 -3
  52. package/dist/data/TaskExecDetails.cjs.map +1 -1
  53. package/dist/data/TaskExecDetails.d.ts +4 -0
  54. package/dist/data/TaskExecDetails.d.ts.map +1 -1
  55. package/dist/data/TaskExecDetails.js +9 -4
  56. package/dist/data/TaskExecDetails.js.map +1 -1
  57. package/dist/data/TaskManagerButton.cjs +101 -7
  58. package/dist/data/TaskManagerButton.cjs.map +1 -1
  59. package/dist/data/TaskManagerButton.d.ts +6 -1
  60. package/dist/data/TaskManagerButton.d.ts.map +1 -1
  61. package/dist/data/TaskManagerButton.js +103 -9
  62. package/dist/data/TaskManagerButton.js.map +1 -1
  63. package/dist/data/TaskProcessDetails.cjs +2 -0
  64. package/dist/data/TaskProcessDetails.cjs.map +1 -1
  65. package/dist/data/TaskProcessDetails.d.ts.map +1 -1
  66. package/dist/data/TaskProcessDetails.js +2 -0
  67. package/dist/data/TaskProcessDetails.js.map +1 -1
  68. package/dist/data/TaskProgress.cjs +14 -4
  69. package/dist/data/TaskProgress.cjs.map +1 -1
  70. package/dist/data/TaskProgress.js +14 -4
  71. package/dist/data/TaskProgress.js.map +1 -1
  72. package/dist/data/TaskSnapshot.cjs.map +1 -1
  73. package/dist/data/TaskSnapshot.d.ts +1 -0
  74. package/dist/data/TaskSnapshot.d.ts.map +1 -1
  75. package/dist/data/TaskSnapshot.js.map +1 -1
  76. package/dist/data/ai/ChatWindow.cjs +18 -23
  77. package/dist/data/ai/ChatWindow.cjs.map +1 -1
  78. package/dist/data/ai/ChatWindow.d.ts +1 -1
  79. package/dist/data/ai/ChatWindow.d.ts.map +1 -1
  80. package/dist/data/ai/ChatWindow.js +19 -24
  81. package/dist/data/ai/ChatWindow.js.map +1 -1
  82. package/dist/data/ai/ChatWindow.preferences.cjs +12 -21
  83. package/dist/data/ai/ChatWindow.preferences.cjs.map +1 -1
  84. package/dist/data/ai/ChatWindow.preferences.d.ts +3 -2
  85. package/dist/data/ai/ChatWindow.preferences.d.ts.map +1 -1
  86. package/dist/data/ai/ChatWindow.preferences.js +12 -21
  87. package/dist/data/ai/ChatWindow.preferences.js.map +1 -1
  88. package/dist/data/ai/ChatWindow.tool-catalog.cjs +21 -38
  89. package/dist/data/ai/ChatWindow.tool-catalog.cjs.map +1 -1
  90. package/dist/data/ai/ChatWindow.tool-catalog.d.ts +5 -5
  91. package/dist/data/ai/ChatWindow.tool-catalog.d.ts.map +1 -1
  92. package/dist/data/ai/ChatWindow.tool-catalog.js +21 -38
  93. package/dist/data/ai/ChatWindow.tool-catalog.js.map +1 -1
  94. package/dist/data/ai/ChatWindow.types.d.ts +2 -2
  95. package/dist/data/ai/ChatWindow.types.d.ts.map +1 -1
  96. package/dist/data/ai/ChatWindowManager.cjs +2 -2
  97. package/dist/data/ai/ChatWindowManager.cjs.map +1 -1
  98. package/dist/data/ai/ChatWindowManager.js +2 -2
  99. package/dist/data/ai/ChatWindowManager.js.map +1 -1
  100. package/dist/data/ai/ChatWindowRequestBody.cjs +4 -2
  101. package/dist/data/ai/ChatWindowRequestBody.cjs.map +1 -1
  102. package/dist/data/ai/ChatWindowRequestBody.d.ts +15 -3
  103. package/dist/data/ai/ChatWindowRequestBody.d.ts.map +1 -1
  104. package/dist/data/ai/ChatWindowRequestBody.js +4 -2
  105. package/dist/data/ai/ChatWindowRequestBody.js.map +1 -1
  106. package/dist/data/ai/ToolPreferences.cjs +5 -5
  107. package/dist/data/ai/ToolPreferences.cjs.map +1 -1
  108. package/dist/data/ai/ToolPreferences.d.ts +6 -5
  109. package/dist/data/ai/ToolPreferences.d.ts.map +1 -1
  110. package/dist/data/ai/ToolPreferences.js +5 -5
  111. package/dist/data/ai/ToolPreferences.js.map +1 -1
  112. package/dist/data/ai/ToolPreferences.model.cjs +61 -37
  113. package/dist/data/ai/ToolPreferences.model.cjs.map +1 -1
  114. package/dist/data/ai/ToolPreferences.model.d.ts +32 -13
  115. package/dist/data/ai/ToolPreferences.model.d.ts.map +1 -1
  116. package/dist/data/ai/ToolPreferences.model.js +62 -38
  117. package/dist/data/ai/ToolPreferences.model.js.map +1 -1
  118. package/dist/data/ai/ToolPreferencesList.cjs +17 -20
  119. package/dist/data/ai/ToolPreferencesList.cjs.map +1 -1
  120. package/dist/data/ai/ToolPreferencesList.d.ts +16 -7
  121. package/dist/data/ai/ToolPreferencesList.d.ts.map +1 -1
  122. package/dist/data/ai/ToolPreferencesList.js +18 -21
  123. package/dist/data/ai/ToolPreferencesList.js.map +1 -1
  124. package/dist/data/ai/chat-window-context.cjs +1 -1
  125. package/dist/data/ai/chat-window-context.cjs.map +1 -1
  126. package/dist/data/ai/chat-window-context.d.ts +7 -7
  127. package/dist/data/ai/chat-window-context.d.ts.map +1 -1
  128. package/dist/data/ai/chat-window-context.js +1 -1
  129. package/dist/data/ai/chat-window-context.js.map +1 -1
  130. package/dist/data/ai/index.d.ts +3 -1
  131. package/dist/data/ai/index.d.ts.map +1 -1
  132. package/dist/data/chat/clickyOperationsToTools.cjs +2 -1
  133. package/dist/data/chat/clickyOperationsToTools.cjs.map +1 -1
  134. package/dist/data/chat/clickyOperationsToTools.d.ts.map +1 -1
  135. package/dist/data/chat/clickyOperationsToTools.js +2 -1
  136. package/dist/data/chat/clickyOperationsToTools.js.map +1 -1
  137. package/dist/data/chat/index.d.ts +2 -1
  138. package/dist/data/chat/index.d.ts.map +1 -1
  139. package/dist/data/chat/tool-policy.cjs +132 -0
  140. package/dist/data/chat/tool-policy.cjs.map +1 -0
  141. package/dist/data/chat/tool-policy.d.ts +81 -0
  142. package/dist/data/chat/tool-policy.d.ts.map +1 -0
  143. package/dist/data/chat/tool-policy.js +132 -0
  144. package/dist/data/chat/tool-policy.js.map +1 -0
  145. package/dist/data/chat/types.cjs +20 -0
  146. package/dist/data/chat/types.cjs.map +1 -1
  147. package/dist/data/chat/types.d.ts +22 -2
  148. package/dist/data/chat/types.d.ts.map +1 -1
  149. package/dist/data/chat/types.js +20 -0
  150. package/dist/data/chat/types.js.map +1 -1
  151. package/dist/data/debugConsoleSignal.cjs +64 -0
  152. package/dist/data/debugConsoleSignal.cjs.map +1 -0
  153. package/dist/data/debugConsoleSignal.d.ts +83 -0
  154. package/dist/data/debugConsoleSignal.d.ts.map +1 -0
  155. package/dist/data/debugConsoleSignal.js +64 -0
  156. package/dist/data/debugConsoleSignal.js.map +1 -0
  157. package/dist/data/har/HarPanel.cjs +20 -14
  158. package/dist/data/har/HarPanel.cjs.map +1 -1
  159. package/dist/data/har/HarPanel.d.ts.map +1 -1
  160. package/dist/data/har/HarPanel.js +20 -14
  161. package/dist/data/har/HarPanel.js.map +1 -1
  162. package/dist/data/har/types.d.ts +18 -0
  163. package/dist/data/har/types.d.ts.map +1 -1
  164. package/dist/data/query-browser/QueryBrowser.cjs +4 -42
  165. package/dist/data/query-browser/QueryBrowser.cjs.map +1 -1
  166. package/dist/data/query-browser/QueryBrowser.d.ts.map +1 -1
  167. package/dist/data/query-browser/QueryBrowser.js +5 -43
  168. package/dist/data/query-browser/QueryBrowser.js.map +1 -1
  169. package/dist/data/query-browser/QueryBrowser.types.cjs.map +1 -1
  170. package/dist/data/query-browser/QueryBrowser.types.d.ts +0 -1
  171. package/dist/data/query-browser/QueryBrowser.types.d.ts.map +1 -1
  172. package/dist/data/query-browser/QueryBrowser.types.js.map +1 -1
  173. package/dist/data/useDebugAction.cjs +29 -0
  174. package/dist/data/useDebugAction.cjs.map +1 -0
  175. package/dist/data/useDebugAction.d.ts +16 -0
  176. package/dist/data/useDebugAction.d.ts.map +1 -0
  177. package/dist/data/useDebugAction.js +29 -0
  178. package/dist/data/useDebugAction.js.map +1 -0
  179. package/dist/data/version-info.cjs +3 -3
  180. package/dist/data/version-info.js +3 -3
  181. package/dist/data.cjs +16 -8
  182. package/dist/data.cjs.map +1 -1
  183. package/dist/data.d.ts +3 -2
  184. package/dist/data.d.ts.map +1 -1
  185. package/dist/data.js +16 -8
  186. package/dist/devtools/DebugConsole.cjs +138 -0
  187. package/dist/devtools/DebugConsole.cjs.map +1 -0
  188. package/dist/devtools/DebugConsole.d.ts +23 -0
  189. package/dist/devtools/DebugConsole.d.ts.map +1 -0
  190. package/dist/devtools/DebugConsole.js +138 -0
  191. package/dist/devtools/DebugConsole.js.map +1 -0
  192. package/dist/devtools/DebugConsoleButton.cjs +59 -0
  193. package/dist/devtools/DebugConsoleButton.cjs.map +1 -0
  194. package/dist/devtools/DebugConsoleButton.d.ts +20 -0
  195. package/dist/devtools/DebugConsoleButton.d.ts.map +1 -0
  196. package/dist/devtools/DebugConsoleButton.js +59 -0
  197. package/dist/devtools/DebugConsoleButton.js.map +1 -0
  198. package/dist/devtools/DebugConsoleDock.cjs +112 -0
  199. package/dist/devtools/DebugConsoleDock.cjs.map +1 -0
  200. package/dist/devtools/DebugConsoleDock.d.ts +26 -0
  201. package/dist/devtools/DebugConsoleDock.d.ts.map +1 -0
  202. package/dist/devtools/DebugConsoleDock.js +112 -0
  203. package/dist/devtools/DebugConsoleDock.js.map +1 -0
  204. package/dist/devtools/ExecutionDetail.cjs +135 -0
  205. package/dist/devtools/ExecutionDetail.cjs.map +1 -0
  206. package/dist/devtools/ExecutionDetail.d.ts +19 -0
  207. package/dist/devtools/ExecutionDetail.d.ts.map +1 -0
  208. package/dist/devtools/ExecutionDetail.js +135 -0
  209. package/dist/devtools/ExecutionDetail.js.map +1 -0
  210. package/dist/devtools/debugClient.cjs +172 -0
  211. package/dist/devtools/debugClient.cjs.map +1 -0
  212. package/dist/devtools/debugClient.d.ts +98 -0
  213. package/dist/devtools/debugClient.d.ts.map +1 -0
  214. package/dist/devtools/debugClient.js +172 -0
  215. package/dist/devtools/debugClient.js.map +1 -0
  216. package/dist/devtools/debugStore.cjs +115 -0
  217. package/dist/devtools/debugStore.cjs.map +1 -0
  218. package/dist/devtools/debugStore.d.ts +83 -0
  219. package/dist/devtools/debugStore.d.ts.map +1 -0
  220. package/dist/devtools/debugStore.js +115 -0
  221. package/dist/devtools/debugStore.js.map +1 -0
  222. package/dist/devtools/dockState.cjs +51 -0
  223. package/dist/devtools/dockState.cjs.map +1 -0
  224. package/dist/devtools/dockState.d.ts +31 -0
  225. package/dist/devtools/dockState.d.ts.map +1 -0
  226. package/dist/devtools/dockState.js +51 -0
  227. package/dist/devtools/dockState.js.map +1 -0
  228. package/dist/devtools/tabs/ConsoleTab.cjs +36 -0
  229. package/dist/devtools/tabs/ConsoleTab.cjs.map +1 -0
  230. package/dist/devtools/tabs/ConsoleTab.d.ts +19 -0
  231. package/dist/devtools/tabs/ConsoleTab.d.ts.map +1 -0
  232. package/dist/devtools/tabs/ConsoleTab.js +36 -0
  233. package/dist/devtools/tabs/ConsoleTab.js.map +1 -0
  234. package/dist/devtools/tabs/InspectionCaches.cjs +150 -0
  235. package/dist/devtools/tabs/InspectionCaches.cjs.map +1 -0
  236. package/dist/devtools/tabs/InspectionCaches.d.ts +23 -0
  237. package/dist/devtools/tabs/InspectionCaches.d.ts.map +1 -0
  238. package/dist/devtools/tabs/InspectionCaches.js +150 -0
  239. package/dist/devtools/tabs/InspectionCaches.js.map +1 -0
  240. package/dist/devtools/tabs/InspectionTab.cjs +316 -0
  241. package/dist/devtools/tabs/InspectionTab.cjs.map +1 -0
  242. package/dist/devtools/tabs/InspectionTab.d.ts +27 -0
  243. package/dist/devtools/tabs/InspectionTab.d.ts.map +1 -0
  244. package/dist/devtools/tabs/InspectionTab.js +316 -0
  245. package/dist/devtools/tabs/InspectionTab.js.map +1 -0
  246. package/dist/devtools/tabs/NetworkTab.cjs +91 -0
  247. package/dist/devtools/tabs/NetworkTab.cjs.map +1 -0
  248. package/dist/devtools/tabs/NetworkTab.d.ts +20 -0
  249. package/dist/devtools/tabs/NetworkTab.d.ts.map +1 -0
  250. package/dist/devtools/tabs/NetworkTab.js +91 -0
  251. package/dist/devtools/tabs/NetworkTab.js.map +1 -0
  252. package/dist/devtools/tabs/QueriesTab.cjs +85 -0
  253. package/dist/devtools/tabs/QueriesTab.cjs.map +1 -0
  254. package/dist/devtools/tabs/QueriesTab.d.ts +24 -0
  255. package/dist/devtools/tabs/QueriesTab.d.ts.map +1 -0
  256. package/dist/devtools/tabs/QueriesTab.js +85 -0
  257. package/dist/devtools/tabs/QueriesTab.js.map +1 -0
  258. package/dist/devtools/types.cjs +26 -0
  259. package/dist/devtools/types.cjs.map +1 -0
  260. package/dist/devtools/types.d.ts +235 -0
  261. package/dist/devtools/types.d.ts.map +1 -0
  262. package/dist/devtools/types.js +26 -0
  263. package/dist/devtools/types.js.map +1 -0
  264. package/dist/devtools/useDebugStream.cjs +46 -0
  265. package/dist/devtools/useDebugStream.cjs.map +1 -0
  266. package/dist/devtools/useDebugStream.d.ts +23 -0
  267. package/dist/devtools/useDebugStream.d.ts.map +1 -0
  268. package/dist/devtools/useDebugStream.js +46 -0
  269. package/dist/devtools/useDebugStream.js.map +1 -0
  270. package/dist/devtools.cjs +51 -0
  271. package/dist/devtools.cjs.map +1 -0
  272. package/dist/devtools.d.ts +37 -0
  273. package/dist/devtools.d.ts.map +1 -0
  274. package/dist/devtools.js +51 -0
  275. package/dist/devtools.js.map +1 -0
  276. package/dist/icons/components/UiOpenScad.cjs +10 -0
  277. package/dist/icons/components/UiOpenScad.cjs.map +1 -0
  278. package/dist/icons/components/UiOpenScad.d.ts +9 -0
  279. package/dist/icons/components/UiOpenScad.d.ts.map +1 -0
  280. package/dist/icons/components/UiOpenScad.js +10 -0
  281. package/dist/icons/components/UiOpenScad.js.map +1 -0
  282. package/dist/icons/index.d.ts +1 -0
  283. package/dist/icons/index.d.ts.map +1 -1
  284. package/dist/icons/registry.cjs +2 -0
  285. package/dist/icons/registry.cjs.map +1 -1
  286. package/dist/icons/registry.d.ts.map +1 -1
  287. package/dist/icons/registry.js +2 -0
  288. package/dist/icons/registry.js.map +1 -1
  289. package/dist/icons.cjs +2 -0
  290. package/dist/icons.cjs.map +1 -1
  291. package/dist/icons.js +2 -0
  292. package/dist/icons.js.map +1 -1
  293. package/dist/index.cjs +20 -8
  294. package/dist/index.cjs.map +1 -1
  295. package/dist/index.js +20 -8
  296. package/dist/index.js.map +1 -1
  297. package/dist/layout/AppShell.cjs +15 -10
  298. package/dist/layout/AppShell.cjs.map +1 -1
  299. package/dist/layout/AppShell.d.ts +11 -0
  300. package/dist/layout/AppShell.d.ts.map +1 -1
  301. package/dist/layout/AppShell.js +15 -10
  302. package/dist/layout/AppShell.js.map +1 -1
  303. package/dist/layout/AppShell.nav.cjs +170 -49
  304. package/dist/layout/AppShell.nav.cjs.map +1 -1
  305. package/dist/layout/AppShell.nav.d.ts.map +1 -1
  306. package/dist/layout/AppShell.nav.js +170 -49
  307. package/dist/layout/AppShell.nav.js.map +1 -1
  308. package/dist/overlay/CellActions.cjs +18 -124
  309. package/dist/overlay/CellActions.cjs.map +1 -1
  310. package/dist/overlay/CellActions.d.ts +1 -1
  311. package/dist/overlay/CellActions.d.ts.map +1 -1
  312. package/dist/overlay/CellActions.js +18 -124
  313. package/dist/overlay/CellActions.js.map +1 -1
  314. package/dist/overlay/ContextMenu.cjs +144 -0
  315. package/dist/overlay/ContextMenu.cjs.map +1 -0
  316. package/dist/overlay/ContextMenu.d.ts +8 -0
  317. package/dist/overlay/ContextMenu.d.ts.map +1 -0
  318. package/dist/overlay/ContextMenu.js +144 -0
  319. package/dist/overlay/ContextMenu.js.map +1 -0
  320. package/dist/profiles/connections/connectionBrowserModel.cjs +14 -65
  321. package/dist/profiles/connections/connectionBrowserModel.cjs.map +1 -1
  322. package/dist/profiles/connections/connectionBrowserModel.d.ts +35 -35
  323. package/dist/profiles/connections/connectionBrowserModel.d.ts.map +1 -1
  324. package/dist/profiles/connections/connectionBrowserModel.js +14 -65
  325. package/dist/profiles/connections/connectionBrowserModel.js.map +1 -1
  326. package/dist/profiles/connections/connectionQueryWorkspace.cjs +29 -9
  327. package/dist/profiles/connections/connectionQueryWorkspace.cjs.map +1 -1
  328. package/dist/profiles/connections/connectionQueryWorkspace.d.ts +3 -2
  329. package/dist/profiles/connections/connectionQueryWorkspace.d.ts.map +1 -1
  330. package/dist/profiles/connections/connectionQueryWorkspace.js +30 -10
  331. package/dist/profiles/connections/connectionQueryWorkspace.js.map +1 -1
  332. package/dist/profiles/connections/connectionQueryWorkspaceModel.cjs +15 -0
  333. package/dist/profiles/connections/connectionQueryWorkspaceModel.cjs.map +1 -1
  334. package/dist/profiles/connections/connectionQueryWorkspaceModel.d.ts +22 -1
  335. package/dist/profiles/connections/connectionQueryWorkspaceModel.d.ts.map +1 -1
  336. package/dist/profiles/connections/connectionQueryWorkspaceModel.js +15 -0
  337. package/dist/profiles/connections/connectionQueryWorkspaceModel.js.map +1 -1
  338. package/dist/profiles/connections/index.d.ts +1 -0
  339. package/dist/profiles/connections/index.d.ts.map +1 -1
  340. package/dist/profiles/connections/inspectionStatus.cjs +44 -0
  341. package/dist/profiles/connections/inspectionStatus.cjs.map +1 -0
  342. package/dist/profiles/connections/inspectionStatus.d.ts +5 -0
  343. package/dist/profiles/connections/inspectionStatus.d.ts.map +1 -0
  344. package/dist/profiles/connections/inspectionStatus.js +44 -0
  345. package/dist/profiles/connections/inspectionStatus.js.map +1 -0
  346. package/dist/profiles/connections/useInspection.cjs +123 -0
  347. package/dist/profiles/connections/useInspection.cjs.map +1 -0
  348. package/dist/profiles/connections/useInspection.d.ts +35 -0
  349. package/dist/profiles/connections/useInspection.d.ts.map +1 -0
  350. package/dist/profiles/connections/useInspection.js +123 -0
  351. package/dist/profiles/connections/useInspection.js.map +1 -0
  352. package/dist/profiles/editor/profileBuilderWorkspace.cjs +55 -23
  353. package/dist/profiles/editor/profileBuilderWorkspace.cjs.map +1 -1
  354. package/dist/profiles/editor/profileBuilderWorkspace.d.ts.map +1 -1
  355. package/dist/profiles/editor/profileBuilderWorkspace.js +56 -24
  356. package/dist/profiles/editor/profileBuilderWorkspace.js.map +1 -1
  357. package/dist/profiles/elasticsearch/esQueryBuilder.cjs +12 -3
  358. package/dist/profiles/elasticsearch/esQueryBuilder.cjs.map +1 -1
  359. package/dist/profiles/elasticsearch/esQueryBuilder.d.ts +2 -2
  360. package/dist/profiles/elasticsearch/esQueryBuilder.d.ts.map +1 -1
  361. package/dist/profiles/elasticsearch/esQueryBuilder.js +12 -3
  362. package/dist/profiles/elasticsearch/esQueryBuilder.js.map +1 -1
  363. package/dist/profiles/fields/profileFieldEditor.cjs +137 -22
  364. package/dist/profiles/fields/profileFieldEditor.cjs.map +1 -1
  365. package/dist/profiles/fields/profileFieldEditor.d.ts.map +1 -1
  366. package/dist/profiles/fields/profileFieldEditor.js +137 -22
  367. package/dist/profiles/fields/profileFieldEditor.js.map +1 -1
  368. package/dist/profiles/fields/profileFieldFilterEditor.cjs +171 -82
  369. package/dist/profiles/fields/profileFieldFilterEditor.cjs.map +1 -1
  370. package/dist/profiles/fields/profileFieldFilterEditor.d.ts +0 -9
  371. package/dist/profiles/fields/profileFieldFilterEditor.d.ts.map +1 -1
  372. package/dist/profiles/fields/profileFieldFilterEditor.js +174 -85
  373. package/dist/profiles/fields/profileFieldFilterEditor.js.map +1 -1
  374. package/dist/profiles/fields/profileFieldIcons.cjs +6 -3
  375. package/dist/profiles/fields/profileFieldIcons.cjs.map +1 -1
  376. package/dist/profiles/fields/profileFieldIcons.js +6 -3
  377. package/dist/profiles/fields/profileFieldIcons.js.map +1 -1
  378. package/dist/profiles/query/profileSampleFilterLookup.cjs +34 -0
  379. package/dist/profiles/query/profileSampleFilterLookup.cjs.map +1 -0
  380. package/dist/profiles/query/profileSampleFilterLookup.d.ts +12 -0
  381. package/dist/profiles/query/profileSampleFilterLookup.d.ts.map +1 -0
  382. package/dist/profiles/query/profileSampleFilterLookup.js +34 -0
  383. package/dist/profiles/query/profileSampleFilterLookup.js.map +1 -0
  384. package/dist/profiles/query/profileSamplePayload.cjs +6 -4
  385. package/dist/profiles/query/profileSamplePayload.cjs.map +1 -1
  386. package/dist/profiles/query/profileSamplePayload.d.ts +11 -4
  387. package/dist/profiles/query/profileSamplePayload.d.ts.map +1 -1
  388. package/dist/profiles/query/profileSamplePayload.js +6 -4
  389. package/dist/profiles/query/profileSamplePayload.js.map +1 -1
  390. package/dist/profiles/query/profileSampleResult.cjs +26 -0
  391. package/dist/profiles/query/profileSampleResult.cjs.map +1 -0
  392. package/dist/profiles/query/profileSampleResult.d.ts +11 -0
  393. package/dist/profiles/query/profileSampleResult.d.ts.map +1 -0
  394. package/dist/profiles/query/profileSampleResult.js +26 -0
  395. package/dist/profiles/query/profileSampleResult.js.map +1 -0
  396. package/dist/profiles/query/queryTargetPicker.cjs +5 -3
  397. package/dist/profiles/query/queryTargetPicker.cjs.map +1 -1
  398. package/dist/profiles/query/queryTargetPicker.d.ts +3 -2
  399. package/dist/profiles/query/queryTargetPicker.d.ts.map +1 -1
  400. package/dist/profiles/query/queryTargetPicker.js +5 -3
  401. package/dist/profiles/query/queryTargetPicker.js.map +1 -1
  402. package/dist/profiles/wizard/profileWizard.cjs +14 -5
  403. package/dist/profiles/wizard/profileWizard.cjs.map +1 -1
  404. package/dist/profiles/wizard/profileWizard.d.ts.map +1 -1
  405. package/dist/profiles/wizard/profileWizard.js +15 -6
  406. package/dist/profiles/wizard/profileWizard.js.map +1 -1
  407. package/dist/profiles/wizard/profileWizardModel.cjs +35 -6
  408. package/dist/profiles/wizard/profileWizardModel.cjs.map +1 -1
  409. package/dist/profiles/wizard/profileWizardModel.d.ts +29 -4
  410. package/dist/profiles/wizard/profileWizardModel.d.ts.map +1 -1
  411. package/dist/profiles/wizard/profileWizardModel.js +35 -6
  412. package/dist/profiles/wizard/profileWizardModel.js.map +1 -1
  413. package/dist/profiles/wizard/profileWizardQueryStep.cjs +44 -11
  414. package/dist/profiles/wizard/profileWizardQueryStep.cjs.map +1 -1
  415. package/dist/profiles/wizard/profileWizardQueryStep.d.ts.map +1 -1
  416. package/dist/profiles/wizard/profileWizardQueryStep.js +46 -13
  417. package/dist/profiles/wizard/profileWizardQueryStep.js.map +1 -1
  418. package/dist/profiles/wizard/profileWizardSteps.cjs +33 -2
  419. package/dist/profiles/wizard/profileWizardSteps.cjs.map +1 -1
  420. package/dist/profiles/wizard/profileWizardSteps.d.ts +11 -2
  421. package/dist/profiles/wizard/profileWizardSteps.d.ts.map +1 -1
  422. package/dist/profiles/wizard/profileWizardSteps.js +33 -2
  423. package/dist/profiles/wizard/profileWizardSteps.js.map +1 -1
  424. package/dist/profiles.cjs +8 -2
  425. package/dist/profiles.cjs.map +1 -1
  426. package/dist/profiles.js +10 -4
  427. package/dist/profiles.js.map +1 -1
  428. package/dist/rpc/FilterForm.cjs +21 -237
  429. package/dist/rpc/FilterForm.cjs.map +1 -1
  430. package/dist/rpc/FilterForm.d.ts +3 -1
  431. package/dist/rpc/FilterForm.d.ts.map +1 -1
  432. package/dist/rpc/FilterForm.js +21 -237
  433. package/dist/rpc/FilterForm.js.map +1 -1
  434. package/dist/rpc/FilterFormFields.cjs +240 -0
  435. package/dist/rpc/FilterFormFields.cjs.map +1 -0
  436. package/dist/rpc/FilterFormFields.d.ts +12 -0
  437. package/dist/rpc/FilterFormFields.d.ts.map +1 -0
  438. package/dist/rpc/FilterFormFields.js +240 -0
  439. package/dist/rpc/FilterFormFields.js.map +1 -0
  440. package/dist/rpc/router.cjs +3 -2
  441. package/dist/rpc/router.cjs.map +1 -1
  442. package/dist/rpc/router.d.ts.map +1 -1
  443. package/dist/rpc/router.js +3 -2
  444. package/dist/rpc/router.js.map +1 -1
  445. package/dist/rpc/types.cjs.map +1 -1
  446. package/dist/rpc/types.d.ts +3 -1
  447. package/dist/rpc/types.d.ts.map +1 -1
  448. package/dist/rpc/types.js.map +1 -1
  449. package/dist/styles.css +1 -1
  450. package/package.json +6 -1
  451. package/dist/data/query-info/QueryInfoDialog.cjs +0 -106
  452. package/dist/data/query-info/QueryInfoDialog.cjs.map +0 -1
  453. package/dist/data/query-info/QueryInfoDialog.d.ts +0 -16
  454. package/dist/data/query-info/QueryInfoDialog.d.ts.map +0 -1
  455. package/dist/data/query-info/QueryInfoDialog.js +0 -106
  456. package/dist/data/query-info/QueryInfoDialog.js.map +0 -1
  457. package/dist/data/query-info/index.d.ts +0 -4
  458. package/dist/data/query-info/index.d.ts.map +0 -1
  459. package/dist/data/query-info/queryInfo.cjs +0 -42
  460. package/dist/data/query-info/queryInfo.cjs.map +0 -1
  461. package/dist/data/query-info/queryInfo.d.ts +0 -45
  462. package/dist/data/query-info/queryInfo.d.ts.map +0 -1
  463. package/dist/data/query-info/queryInfo.js +0 -42
  464. package/dist/data/query-info/queryInfo.js.map +0 -1
  465. package/dist/data/query-info/useQueryInfo.cjs +0 -48
  466. package/dist/data/query-info/useQueryInfo.cjs.map +0 -1
  467. package/dist/data/query-info/useQueryInfo.d.ts +0 -26
  468. package/dist/data/query-info/useQueryInfo.d.ts.map +0 -1
  469. package/dist/data/query-info/useQueryInfo.js +0 -48
  470. package/dist/data/query-info/useQueryInfo.js.map +0 -1
@@ -0,0 +1,316 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const react = require("react");
5
+ const button = require("../../components/button.cjs");
6
+ const DataTable = require("../../data/DataTable.cjs");
7
+ const debugClient = require("../debugClient.cjs");
8
+ const InspectionCaches = require("./InspectionCaches.cjs");
9
+ const CACHE_COLUMNS = [
10
+ { key: "policy", label: "Cache", shrink: true, minWidth: 180, filterable: true },
11
+ {
12
+ key: "cached",
13
+ label: "Result",
14
+ shrink: true,
15
+ minWidth: 90,
16
+ filterable: true,
17
+ render: (value) => value === true ? "hit" : "miss"
18
+ },
19
+ {
20
+ key: "elapsedMs",
21
+ label: "Waited",
22
+ align: "right",
23
+ shrink: true,
24
+ render: (value) => `${Number(value ?? 0).toFixed(1)}ms`,
25
+ sortValue: (value) => Number(value ?? 0)
26
+ },
27
+ {
28
+ key: "ageMs",
29
+ label: "Age",
30
+ align: "right",
31
+ shrink: true,
32
+ render: (value) => formatAge(Number(value ?? 0)),
33
+ sortValue: (value) => Number(value ?? 0)
34
+ },
35
+ { key: "state", label: "State", shrink: true, minWidth: 80 },
36
+ {
37
+ key: "refreshError",
38
+ label: "Note",
39
+ grow: true,
40
+ render: (value, row) => row.error || String(value ?? "")
41
+ }
42
+ ];
43
+ const PROBE_COLUMNS = [
44
+ { key: "column", label: "Column", shrink: true, minWidth: 160 },
45
+ { key: "field", label: "Field", shrink: true, minWidth: 160 },
46
+ { key: "distinct", label: "Distinct", align: "right", shrink: true },
47
+ { key: "limit", label: "Limit", align: "right", shrink: true },
48
+ {
49
+ key: "kind",
50
+ label: "Chose",
51
+ shrink: true,
52
+ minWidth: 110,
53
+ // An empty kind means the count came back under the limit and nothing had
54
+ // to change — which is an answer, so it is spelled out rather than blank.
55
+ render: (value) => String(value ?? "") === "" ? "left as-is" : String(value)
56
+ },
57
+ {
58
+ key: "cached",
59
+ label: "Counted",
60
+ shrink: true,
61
+ minWidth: 90,
62
+ render: (value) => value === true ? "from cache" : "this run"
63
+ }
64
+ ];
65
+ function InspectionTab({
66
+ record,
67
+ client,
68
+ inspections,
69
+ probes,
70
+ refreshInspection = false,
71
+ onRefreshInspectionChange,
72
+ caches
73
+ }) {
74
+ const loaded = useInspection(record, client, inspections, probes);
75
+ const [manualDetail, setManualDetail] = react.useState();
76
+ react.useEffect(() => setManualDetail(void 0), [record == null ? void 0 : record.id]);
77
+ const displayedInspections = (manualDetail == null ? void 0 : manualDetail.inspections) ?? loaded.inspections;
78
+ const displayedProbes = (manualDetail == null ? void 0 : manualDetail.probes) ?? loaded.probes;
79
+ return (
80
+ // Three sections stacked, so this scrolls as one region rather than
81
+ // bounding each table separately — a five-row list with its own scrollbar
82
+ // reads as truncated when it is complete.
83
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full min-h-0 flex-col gap-density-4 overflow-auto p-density-3", children: [
84
+ /* @__PURE__ */ jsxRuntime.jsx(
85
+ InspectionCaches.InspectionCaches,
86
+ {
87
+ ...client ? { client } : {},
88
+ refreshInspection,
89
+ onRefreshInspectionChange: onRefreshInspectionChange ?? (() => void 0),
90
+ ...caches !== void 0 ? { caches } : {}
91
+ }
92
+ ),
93
+ /* @__PURE__ */ jsxRuntime.jsx(
94
+ ManualInspection,
95
+ {
96
+ record,
97
+ operations: loaded.operations,
98
+ client,
99
+ onComplete: setManualDetail
100
+ }
101
+ ),
102
+ loaded.error ? /* @__PURE__ */ jsxRuntime.jsx(Empty, { className: "text-destructive", children: loaded.error }) : null,
103
+ !loaded.error && displayedInspections.length === 0 && displayedProbes.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(Empty, { children: record ? "This capture looked nothing up — every column it needed was already described." : "Select a capture in Queries to see the metadata it looked up." }) : null,
104
+ displayedInspections.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
105
+ /* @__PURE__ */ jsxRuntime.jsx(Heading, { children: "Metadata cache" }),
106
+ /* @__PURE__ */ jsxRuntime.jsx(
107
+ DataTable.DataTable,
108
+ {
109
+ data: displayedInspections.map((row, index) => ({
110
+ ...row,
111
+ id: `${row.key}-${index}`
112
+ })),
113
+ columns: CACHE_COLUMNS,
114
+ emptyMessage: "No cache lookups"
115
+ }
116
+ )
117
+ ] }) : null,
118
+ displayedProbes.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
119
+ /* @__PURE__ */ jsxRuntime.jsx(Heading, { children: "Column cardinality" }),
120
+ /* @__PURE__ */ jsxRuntime.jsx(
121
+ DataTable.DataTable,
122
+ {
123
+ data: displayedProbes.map((row, index) => ({
124
+ ...row,
125
+ id: `${row.column}-${index}`
126
+ })),
127
+ columns: PROBE_COLUMNS,
128
+ emptyMessage: "No cardinality probes"
129
+ }
130
+ )
131
+ ] }) : null
132
+ ] })
133
+ );
134
+ }
135
+ function ManualInspection({
136
+ record,
137
+ operations,
138
+ client,
139
+ onComplete
140
+ }) {
141
+ const [selected, setSelected] = react.useState(0);
142
+ const [columns, setColumns] = react.useState("");
143
+ const [refresh, setRefresh] = react.useState(true);
144
+ const [running, setRunning] = react.useState(false);
145
+ const [outcome, setOutcome] = react.useState();
146
+ react.useEffect(() => {
147
+ setSelected(0);
148
+ setColumns("");
149
+ setOutcome(void 0);
150
+ }, [record == null ? void 0 : record.id]);
151
+ const operation = operations[selected];
152
+ if (!record) {
153
+ return /* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
154
+ /* @__PURE__ */ jsxRuntime.jsx(Heading, { children: "Run inspection" }),
155
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground text-sm", children: "Select a capture first; its provider request supplies the connection and query." })
156
+ ] });
157
+ }
158
+ if (!operation) {
159
+ return /* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
160
+ /* @__PURE__ */ jsxRuntime.jsx(Heading, { children: "Run inspection" }),
161
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground text-sm", children: "This capture has no provider operation that can be inspected." })
162
+ ] });
163
+ }
164
+ const query = operation.request.rendered || operation.request.query || "";
165
+ const connection = operation.request.connection;
166
+ const request = {
167
+ provider: operation.provider,
168
+ ...connection ? { connection } : {},
169
+ query,
170
+ ...operation.request.options ? { options: operation.request.options } : {},
171
+ columns: parseColumns(columns),
172
+ refresh
173
+ };
174
+ const run = async () => {
175
+ var _a, _b;
176
+ setRunning(true);
177
+ setOutcome(void 0);
178
+ try {
179
+ const detail = await (client ?? new debugClient.DebugClient()).runInspection(request);
180
+ onComplete(detail);
181
+ const failure = detail.summary.error ?? ((_b = (_a = detail.operations) == null ? void 0 : _a.find((item) => item.error)) == null ? void 0 : _b.error);
182
+ setOutcome(
183
+ failure ? `Inspection completed with an error: ${failure}` : `Inspection ${detail.summary.id} completed.`
184
+ );
185
+ } catch (failure) {
186
+ setOutcome(failure instanceof Error ? failure.message : String(failure));
187
+ } finally {
188
+ setRunning(false);
189
+ }
190
+ };
191
+ return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "flex flex-col gap-density-2 rounded border border-border p-density-3", children: [
192
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center justify-between gap-density-2", children: [
193
+ /* @__PURE__ */ jsxRuntime.jsx(Heading, { children: "Run inspection" }),
194
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground text-xs", children: [
195
+ operation.provider,
196
+ " · ",
197
+ connection || "inline connection"
198
+ ] })
199
+ ] }),
200
+ operations.length > 1 ? /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "grid gap-density-1 text-xs", children: [
201
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "Provider operation" }),
202
+ /* @__PURE__ */ jsxRuntime.jsx(
203
+ "select",
204
+ {
205
+ className: "rounded border border-border bg-background px-density-2 py-density-1",
206
+ value: selected,
207
+ onChange: (event) => setSelected(Number(event.target.value)),
208
+ children: operations.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs("option", { value: index, children: [
209
+ index + 1,
210
+ ". ",
211
+ item.provider,
212
+ " · ",
213
+ item.request.connection || "inline connection"
214
+ ] }, `${item.provider}-${index}`))
215
+ }
216
+ )
217
+ ] }) : null,
218
+ /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "grid gap-density-1 text-xs", children: [
219
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "Columns to inspect" }),
220
+ /* @__PURE__ */ jsxRuntime.jsx(
221
+ "input",
222
+ {
223
+ "aria-label": "Columns to inspect",
224
+ className: "rounded border border-border bg-background px-density-2 py-density-1 font-mono",
225
+ value: columns,
226
+ placeholder: "Auto-detect, or enter comma-separated names",
227
+ onChange: (event) => setColumns(event.target.value)
228
+ }
229
+ )
230
+ ] }),
231
+ /* @__PURE__ */ jsxRuntime.jsx("code", { className: "max-h-20 overflow-auto whitespace-pre-wrap rounded bg-muted/40 p-density-2 text-xs", children: query }),
232
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center justify-between gap-density-2", children: [
233
+ /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-density-1 text-xs", children: [
234
+ /* @__PURE__ */ jsxRuntime.jsx(
235
+ "input",
236
+ {
237
+ type: "checkbox",
238
+ checked: refresh,
239
+ onChange: (event) => setRefresh(event.target.checked)
240
+ }
241
+ ),
242
+ "Refresh cached metadata"
243
+ ] }),
244
+ /* @__PURE__ */ jsxRuntime.jsx(button.Button, { size: "sm", disabled: running || query === "", onClick: () => void run(), children: running ? "Running inspection…" : "Run inspection" })
245
+ ] }),
246
+ outcome ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: outcome.includes("error") ? "text-destructive text-xs" : "text-muted-foreground text-xs", children: outcome }) : null
247
+ ] });
248
+ }
249
+ function parseColumns(value) {
250
+ return [...new Set(value.split(",").map((column) => column.trim()).filter(Boolean))];
251
+ }
252
+ function Heading({ children }) {
253
+ return /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-density-2 font-medium text-muted-foreground text-xs uppercase tracking-wide", children });
254
+ }
255
+ function Empty({ children, className }) {
256
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `p-density-6 text-center text-muted-foreground text-sm ${className ?? ""}`, children });
257
+ }
258
+ function useInspection(record, client, providedInspections, providedProbes) {
259
+ const [inspections, setInspections] = react.useState(providedInspections ?? []);
260
+ const [probes, setProbes] = react.useState(providedProbes ?? []);
261
+ const [operations, setOperations] = react.useState(
262
+ summaryOperations(record)
263
+ );
264
+ const [error, setError] = react.useState();
265
+ react.useEffect(() => {
266
+ if (providedInspections !== void 0 || providedProbes !== void 0) {
267
+ setInspections(providedInspections ?? []);
268
+ setProbes(providedProbes ?? []);
269
+ setOperations(summaryOperations(record));
270
+ return;
271
+ }
272
+ if (!record) {
273
+ setInspections([]);
274
+ setProbes([]);
275
+ setOperations([]);
276
+ return;
277
+ }
278
+ let cancelled = false;
279
+ setError(void 0);
280
+ setInspections([]);
281
+ setProbes([]);
282
+ setOperations(summaryOperations(record));
283
+ (client ?? new debugClient.DebugClient()).detail(record.id).then((detail) => {
284
+ if (cancelled) return;
285
+ setInspections(detail.inspections ?? []);
286
+ setProbes(detail.probes ?? []);
287
+ setOperations(detail.operations ?? summaryOperations(record));
288
+ }).catch((failure) => {
289
+ if (!cancelled) setError(failure instanceof Error ? failure.message : String(failure));
290
+ });
291
+ return () => {
292
+ cancelled = true;
293
+ };
294
+ }, [record, client, providedInspections, providedProbes]);
295
+ return { inspections, probes, operations, error };
296
+ }
297
+ function summaryOperations(record) {
298
+ return ((record == null ? void 0 : record.operations) ?? []).map((operation) => ({
299
+ provider: operation.provider,
300
+ request: {
301
+ ...operation.query ? { query: operation.query, rendered: operation.query } : {},
302
+ ...operation.connection ? { connection: operation.connection } : {},
303
+ ...operation.method ? { method: operation.method } : {},
304
+ ...operation.url ? { url: operation.url } : {}
305
+ },
306
+ ...operation.error ? { error: operation.error } : {}
307
+ }));
308
+ }
309
+ function formatAge(ageMs) {
310
+ if (ageMs < 1e3) return `${ageMs}ms`;
311
+ if (ageMs < 6e4) return `${(ageMs / 1e3).toFixed(0)}s`;
312
+ if (ageMs < 36e5) return `${(ageMs / 6e4).toFixed(0)}m`;
313
+ return `${(ageMs / 36e5).toFixed(1)}h`;
314
+ }
315
+ exports.InspectionTab = InspectionTab;
316
+ //# sourceMappingURL=InspectionTab.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InspectionTab.cjs","sources":["../../../src/devtools/tabs/InspectionTab.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { Button } from \"../../components/button\";\nimport { DataTable, type DataTableColumn } from \"../../data/DataTable\";\nimport {\n DebugClient,\n type ManualInspectionRequest,\n} from \"../debugClient\";\nimport type { QueryBrowserDiagnostics } from \"../../data/query-browser/QueryBrowser.types\";\nimport type {\n CardinalityProbe,\n ExecutionDetail,\n ExecutionSummary,\n InspectionCacheStats,\n InspectionRecord,\n} from \"../types\";\nimport { InspectionCaches } from \"./InspectionCaches\";\n\n/**\n * What the request paid to describe its own columns.\n *\n * Two questions live here, and both are otherwise unanswerable from outside the\n * server. \"Why did opening this profile take four seconds once and 200ms\n * after?\" is the cache table: a miss pays the whole fill, a hit pays nothing,\n * and the elapsed column is the difference. \"Why is this column a free-text box\n * instead of a dropdown?\" is the probe table: a distinct count above the lookup\n * limit is the entire reason, and reading the provider's source was previously\n * the only way to learn it.\n */\n\nexport type InspectionTabProps = {\n record?: ExecutionSummary | undefined;\n client?: DebugClient | undefined;\n /** Pre-loaded rows, for a story or a test that has no server. */\n inspections?: InspectionRecord[] | undefined;\n probes?: CardinalityProbe[] | undefined;\n /** Rebuild every metadata lookup on subsequent requests. */\n refreshInspection?: boolean | undefined;\n onRefreshInspectionChange?: ((refresh: boolean) => void) | undefined;\n /** Pre-loaded cache stats, for a story or a test that has no server. */\n caches?: InspectionCacheStats[] | undefined;\n};\n\ntype CacheRow = Record<string, unknown> & InspectionRecord & { id: string };\ntype ProbeRow = Record<string, unknown> & CardinalityProbe & { id: string };\n\nconst CACHE_COLUMNS: DataTableColumn<CacheRow>[] = [\n { key: \"policy\", label: \"Cache\", shrink: true, minWidth: 180, filterable: true },\n {\n key: \"cached\",\n label: \"Result\",\n shrink: true,\n minWidth: 90,\n filterable: true,\n render: (value) => (value === true ? \"hit\" : \"miss\"),\n },\n {\n key: \"elapsedMs\",\n label: \"Waited\",\n align: \"right\",\n shrink: true,\n render: (value) => `${Number(value ?? 0).toFixed(1)}ms`,\n sortValue: (value) => Number(value ?? 0),\n },\n {\n key: \"ageMs\",\n label: \"Age\",\n align: \"right\",\n shrink: true,\n render: (value) => formatAge(Number(value ?? 0)),\n sortValue: (value) => Number(value ?? 0),\n },\n { key: \"state\", label: \"State\", shrink: true, minWidth: 80 },\n {\n key: \"refreshError\",\n label: \"Note\",\n grow: true,\n render: (value, row) => row.error || String(value ?? \"\"),\n },\n];\n\nconst PROBE_COLUMNS: DataTableColumn<ProbeRow>[] = [\n { key: \"column\", label: \"Column\", shrink: true, minWidth: 160 },\n { key: \"field\", label: \"Field\", shrink: true, minWidth: 160 },\n { key: \"distinct\", label: \"Distinct\", align: \"right\", shrink: true },\n { key: \"limit\", label: \"Limit\", align: \"right\", shrink: true },\n {\n key: \"kind\",\n label: \"Chose\",\n shrink: true,\n minWidth: 110,\n // An empty kind means the count came back under the limit and nothing had\n // to change — which is an answer, so it is spelled out rather than blank.\n render: (value) => (String(value ?? \"\") === \"\" ? \"left as-is\" : String(value)),\n },\n {\n key: \"cached\",\n label: \"Counted\",\n shrink: true,\n minWidth: 90,\n render: (value) => (value === true ? \"from cache\" : \"this run\"),\n },\n];\n\nexport function InspectionTab({\n record,\n client,\n inspections,\n probes,\n refreshInspection = false,\n onRefreshInspectionChange,\n caches,\n}: InspectionTabProps) {\n const loaded = useInspection(record, client, inspections, probes);\n const [manualDetail, setManualDetail] = useState<ExecutionDetail | undefined>();\n\n useEffect(() => setManualDetail(undefined), [record?.id]);\n\n const displayedInspections = manualDetail?.inspections ?? loaded.inspections;\n const displayedProbes = manualDetail?.probes ?? loaded.probes;\n\n return (\n // Three sections stacked, so this scrolls as one region rather than\n // bounding each table separately — a five-row list with its own scrollbar\n // reads as truncated when it is complete.\n <div className=\"flex h-full min-h-0 flex-col gap-density-4 overflow-auto p-density-3\">\n {/* Always first, and always present: the caches are the server's state,\n not the selected capture's, so they are worth reading — and flushable —\n even before anything has run. */}\n <InspectionCaches\n {...(client ? { client } : {})}\n refreshInspection={refreshInspection}\n onRefreshInspectionChange={onRefreshInspectionChange ?? (() => undefined)}\n {...(caches !== undefined ? { caches } : {})}\n />\n\n <ManualInspection\n record={record}\n operations={loaded.operations}\n client={client}\n onComplete={setManualDetail}\n />\n\n {loaded.error ? <Empty className=\"text-destructive\">{loaded.error}</Empty> : null}\n {!loaded.error && displayedInspections.length === 0 && displayedProbes.length === 0 ? (\n <Empty>\n {record\n ? \"This capture looked nothing up — every column it needed was already described.\"\n : \"Select a capture in Queries to see the metadata it looked up.\"}\n </Empty>\n ) : null}\n\n {displayedInspections.length > 0 ? (\n <section>\n <Heading>Metadata cache</Heading>\n <DataTable<CacheRow>\n data={displayedInspections.map((row, index) => ({\n ...row,\n id: `${row.key}-${index}`,\n }))}\n columns={CACHE_COLUMNS}\n emptyMessage=\"No cache lookups\"\n />\n </section>\n ) : null}\n\n {displayedProbes.length > 0 ? (\n <section>\n <Heading>Column cardinality</Heading>\n <DataTable<ProbeRow>\n data={displayedProbes.map((row, index) => ({\n ...row,\n id: `${row.column}-${index}`,\n }))}\n columns={PROBE_COLUMNS}\n emptyMessage=\"No cardinality probes\"\n />\n </section>\n ) : null}\n </div>\n );\n}\n\nfunction ManualInspection({\n record,\n operations,\n client,\n onComplete,\n}: {\n record: ExecutionSummary | undefined;\n operations: QueryBrowserDiagnostics[];\n client: DebugClient | undefined;\n onComplete: (detail: ExecutionDetail) => void;\n}) {\n const [selected, setSelected] = useState(0);\n const [columns, setColumns] = useState(\"\");\n const [refresh, setRefresh] = useState(true);\n const [running, setRunning] = useState(false);\n const [outcome, setOutcome] = useState<string | undefined>();\n\n useEffect(() => {\n setSelected(0);\n setColumns(\"\");\n setOutcome(undefined);\n }, [record?.id]);\n\n const operation = operations[selected];\n if (!record) {\n return (\n <section>\n <Heading>Run inspection</Heading>\n <p className=\"text-muted-foreground text-sm\">\n Select a capture first; its provider request supplies the connection and query.\n </p>\n </section>\n );\n }\n if (!operation) {\n return (\n <section>\n <Heading>Run inspection</Heading>\n <p className=\"text-muted-foreground text-sm\">\n This capture has no provider operation that can be inspected.\n </p>\n </section>\n );\n }\n\n const query = operation.request.rendered || operation.request.query || \"\";\n const connection = operation.request.connection;\n const request: ManualInspectionRequest = {\n provider: operation.provider,\n ...(connection ? { connection } : {}),\n query,\n ...(operation.request.options ? { options: operation.request.options } : {}),\n columns: parseColumns(columns),\n refresh,\n };\n\n const run = async () => {\n setRunning(true);\n setOutcome(undefined);\n try {\n const detail = await (client ?? new DebugClient()).runInspection(request);\n onComplete(detail);\n const failure = detail.summary.error ?? detail.operations?.find((item) => item.error)?.error;\n setOutcome(\n failure\n ? `Inspection completed with an error: ${failure}`\n : `Inspection ${detail.summary.id} completed.`,\n );\n } catch (failure: unknown) {\n setOutcome(failure instanceof Error ? failure.message : String(failure));\n } finally {\n setRunning(false);\n }\n };\n\n return (\n <section className=\"flex flex-col gap-density-2 rounded border border-border p-density-3\">\n <div className=\"flex flex-wrap items-center justify-between gap-density-2\">\n <Heading>Run inspection</Heading>\n <span className=\"text-muted-foreground text-xs\">\n {operation.provider} · {connection || \"inline connection\"}\n </span>\n </div>\n {operations.length > 1 ? (\n <label className=\"grid gap-density-1 text-xs\">\n <span className=\"text-muted-foreground\">Provider operation</span>\n <select\n className=\"rounded border border-border bg-background px-density-2 py-density-1\"\n value={selected}\n onChange={(event) => setSelected(Number(event.target.value))}\n >\n {operations.map((item, index) => (\n <option key={`${item.provider}-${index}`} value={index}>\n {index + 1}. {item.provider} · {item.request.connection || \"inline connection\"}\n </option>\n ))}\n </select>\n </label>\n ) : null}\n <label className=\"grid gap-density-1 text-xs\">\n <span className=\"text-muted-foreground\">Columns to inspect</span>\n <input\n aria-label=\"Columns to inspect\"\n className=\"rounded border border-border bg-background px-density-2 py-density-1 font-mono\"\n value={columns}\n placeholder=\"Auto-detect, or enter comma-separated names\"\n onChange={(event) => setColumns(event.target.value)}\n />\n </label>\n <code className=\"max-h-20 overflow-auto whitespace-pre-wrap rounded bg-muted/40 p-density-2 text-xs\">\n {query}\n </code>\n <div className=\"flex flex-wrap items-center justify-between gap-density-2\">\n <label className=\"flex items-center gap-density-1 text-xs\">\n <input\n type=\"checkbox\"\n checked={refresh}\n onChange={(event) => setRefresh(event.target.checked)}\n />\n Refresh cached metadata\n </label>\n <Button size=\"sm\" disabled={running || query === \"\"} onClick={() => void run()}>\n {running ? \"Running inspection…\" : \"Run inspection\"}\n </Button>\n </div>\n {outcome ? (\n <p className={outcome.includes(\"error\") ? \"text-destructive text-xs\" : \"text-muted-foreground text-xs\"}>\n {outcome}\n </p>\n ) : null}\n </section>\n );\n}\n\nfunction parseColumns(value: string): string[] {\n return [...new Set(value.split(\",\").map((column) => column.trim()).filter(Boolean))];\n}\n\nfunction Heading({ children }: { children: React.ReactNode }) {\n return (\n <h3 className=\"mb-density-2 font-medium text-muted-foreground text-xs uppercase tracking-wide\">\n {children}\n </h3>\n );\n}\n\nfunction Empty({ children, className }: { children: React.ReactNode; className?: string }) {\n return (\n <div className={`p-density-6 text-center text-muted-foreground text-sm ${className ?? \"\"}`}>\n {children}\n </div>\n );\n}\n\nfunction useInspection(\n record: ExecutionSummary | undefined,\n client: DebugClient | undefined,\n providedInspections: InspectionRecord[] | undefined,\n providedProbes: CardinalityProbe[] | undefined,\n) {\n const [inspections, setInspections] = useState<InspectionRecord[]>(providedInspections ?? []);\n const [probes, setProbes] = useState<CardinalityProbe[]>(providedProbes ?? []);\n const [operations, setOperations] = useState<QueryBrowserDiagnostics[]>(\n summaryOperations(record),\n );\n const [error, setError] = useState<string | undefined>();\n\n useEffect(() => {\n if (providedInspections !== undefined || providedProbes !== undefined) {\n setInspections(providedInspections ?? []);\n setProbes(providedProbes ?? []);\n setOperations(summaryOperations(record));\n return;\n }\n if (!record) {\n setInspections([]);\n setProbes([]);\n setOperations([]);\n return;\n }\n let cancelled = false;\n setError(undefined);\n setInspections([]);\n setProbes([]);\n setOperations(summaryOperations(record));\n (client ?? new DebugClient())\n .detail(record.id)\n .then((detail) => {\n if (cancelled) return;\n setInspections(detail.inspections ?? []);\n setProbes(detail.probes ?? []);\n setOperations(detail.operations ?? summaryOperations(record));\n })\n .catch((failure: unknown) => {\n if (!cancelled) setError(failure instanceof Error ? failure.message : String(failure));\n });\n return () => {\n cancelled = true;\n };\n }, [record, client, providedInspections, providedProbes]);\n\n return { inspections, probes, operations, error };\n}\n\nfunction summaryOperations(record: ExecutionSummary | undefined): QueryBrowserDiagnostics[] {\n return (record?.operations ?? []).map((operation) => ({\n provider: operation.provider,\n request: {\n ...(operation.query ? { query: operation.query, rendered: operation.query } : {}),\n ...(operation.connection ? { connection: operation.connection } : {}),\n ...(operation.method ? { method: operation.method } : {}),\n ...(operation.url ? { url: operation.url } : {}),\n },\n ...(operation.error ? { error: operation.error } : {}),\n }));\n}\n\nfunction formatAge(ageMs: number): string {\n if (ageMs < 1000) return `${ageMs}ms`;\n if (ageMs < 60_000) return `${(ageMs / 1000).toFixed(0)}s`;\n if (ageMs < 3_600_000) return `${(ageMs / 60_000).toFixed(0)}m`;\n return `${(ageMs / 3_600_000).toFixed(1)}h`;\n}\n"],"names":["useState","useEffect","jsxs","jsx","InspectionCaches","DataTable","DebugClient","Button"],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { DebugClient } from '../debugClient';
2
+ import { CardinalityProbe, ExecutionSummary, InspectionCacheStats, InspectionRecord } from '../types';
3
+ /**
4
+ * What the request paid to describe its own columns.
5
+ *
6
+ * Two questions live here, and both are otherwise unanswerable from outside the
7
+ * server. "Why did opening this profile take four seconds once and 200ms
8
+ * after?" is the cache table: a miss pays the whole fill, a hit pays nothing,
9
+ * and the elapsed column is the difference. "Why is this column a free-text box
10
+ * instead of a dropdown?" is the probe table: a distinct count above the lookup
11
+ * limit is the entire reason, and reading the provider's source was previously
12
+ * the only way to learn it.
13
+ */
14
+ export type InspectionTabProps = {
15
+ record?: ExecutionSummary | undefined;
16
+ client?: DebugClient | undefined;
17
+ /** Pre-loaded rows, for a story or a test that has no server. */
18
+ inspections?: InspectionRecord[] | undefined;
19
+ probes?: CardinalityProbe[] | undefined;
20
+ /** Rebuild every metadata lookup on subsequent requests. */
21
+ refreshInspection?: boolean | undefined;
22
+ onRefreshInspectionChange?: ((refresh: boolean) => void) | undefined;
23
+ /** Pre-loaded cache stats, for a story or a test that has no server. */
24
+ caches?: InspectionCacheStats[] | undefined;
25
+ };
26
+ export declare function InspectionTab({ record, client, inspections, probes, refreshInspection, onRefreshInspectionChange, caches, }: InspectionTabProps): import("react/jsx-runtime").JSX.Element;
27
+ //# sourceMappingURL=InspectionTab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InspectionTab.d.ts","sourceRoot":"","sources":["../../../src/devtools/tabs/InspectionTab.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,WAAW,EAEZ,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EACV,gBAAgB,EAEhB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAGlB;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACtC,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC,iEAAiE;IACjE,WAAW,CAAC,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;IAC7C,MAAM,CAAC,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;IACxC,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACxC,yBAAyB,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACrE,wEAAwE;IACxE,MAAM,CAAC,EAAE,oBAAoB,EAAE,GAAG,SAAS,CAAC;CAC7C,CAAC;AA+DF,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,MAAM,EACN,WAAW,EACX,MAAM,EACN,iBAAyB,EACzB,yBAAyB,EACzB,MAAM,GACP,EAAE,kBAAkB,2CAqEpB"}