@flanksource/clicky-ui 0.3.5 → 0.3.7

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 (277) hide show
  1. package/README.md +42 -0
  2. package/dist/ai.cjs +15 -0
  3. package/dist/ai.cjs.map +1 -1
  4. package/dist/ai.js +15 -0
  5. package/dist/ai.js.map +1 -1
  6. package/dist/components/DateField.d.ts +1 -1
  7. package/dist/components/DatePicker.d.ts +1 -1
  8. package/dist/components/DateTimePicker.d.ts +1 -1
  9. package/dist/components/FormLookupProvider.cjs +12 -0
  10. package/dist/components/FormLookupProvider.cjs.map +1 -0
  11. package/dist/components/FormLookupProvider.d.ts +7 -0
  12. package/dist/components/FormLookupProvider.d.ts.map +1 -0
  13. package/dist/components/FormLookupProvider.js +12 -0
  14. package/dist/components/FormLookupProvider.js.map +1 -0
  15. package/dist/components/JsonSchemaForm.cjs +2 -2
  16. package/dist/components/JsonSchemaForm.cjs.map +1 -1
  17. package/dist/components/JsonSchemaForm.js +1 -1
  18. package/dist/components/JsonSchemaForm.js.map +1 -1
  19. package/dist/components/ListMenu.cjs +145 -0
  20. package/dist/components/ListMenu.cjs.map +1 -0
  21. package/dist/components/ListMenu.d.ts +54 -0
  22. package/dist/components/ListMenu.d.ts.map +1 -0
  23. package/dist/components/ListMenu.js +145 -0
  24. package/dist/components/ListMenu.js.map +1 -0
  25. package/dist/components/MdxEditorField.cjs +128 -0
  26. package/dist/components/MdxEditorField.cjs.map +1 -0
  27. package/dist/components/MdxEditorField.d.ts +4 -0
  28. package/dist/components/MdxEditorField.d.ts.map +1 -0
  29. package/dist/components/MdxEditorField.js +106 -0
  30. package/dist/components/MdxEditorField.js.map +1 -0
  31. package/dist/components/MdxEditorToolbar.cjs +76 -0
  32. package/dist/components/MdxEditorToolbar.cjs.map +1 -0
  33. package/dist/components/MdxEditorToolbar.d.ts +8 -0
  34. package/dist/components/MdxEditorToolbar.d.ts.map +1 -0
  35. package/dist/components/MdxEditorToolbar.js +76 -0
  36. package/dist/components/MdxEditorToolbar.js.map +1 -0
  37. package/dist/components/button-variants.d.ts +1 -1
  38. package/dist/components/button.d.ts +1 -1
  39. package/dist/components/form-lookup-context.cjs +1 -8
  40. package/dist/components/form-lookup-context.cjs.map +1 -1
  41. package/dist/components/form-lookup-context.d.ts +1 -5
  42. package/dist/components/form-lookup-context.d.ts.map +1 -1
  43. package/dist/components/form-lookup-context.js +1 -8
  44. package/dist/components/form-lookup-context.js.map +1 -1
  45. package/dist/components/jotai-bindings-core.cjs +197 -0
  46. package/dist/components/jotai-bindings-core.cjs.map +1 -0
  47. package/dist/components/jotai-bindings-core.d.ts +45 -0
  48. package/dist/components/jotai-bindings-core.d.ts.map +1 -0
  49. package/dist/components/jotai-bindings-core.js +197 -0
  50. package/dist/components/jotai-bindings-core.js.map +1 -0
  51. package/dist/components/jotai-bindings.cjs +17 -0
  52. package/dist/components/jotai-bindings.cjs.map +1 -0
  53. package/dist/components/jotai-bindings.d.ts +4 -0
  54. package/dist/components/jotai-bindings.d.ts.map +1 -0
  55. package/dist/components/jotai-bindings.js +17 -0
  56. package/dist/components/jotai-bindings.js.map +1 -0
  57. package/dist/components/json-schema-form-fields.cjs +37 -0
  58. package/dist/components/json-schema-form-fields.cjs.map +1 -1
  59. package/dist/components/json-schema-form-fields.d.ts +6 -0
  60. package/dist/components/json-schema-form-fields.d.ts.map +1 -1
  61. package/dist/components/json-schema-form-fields.js +38 -1
  62. package/dist/components/json-schema-form-fields.js.map +1 -1
  63. package/dist/components/json-schema-form-render.cjs +3 -1
  64. package/dist/components/json-schema-form-render.cjs.map +1 -1
  65. package/dist/components/json-schema-form-render.d.ts.map +1 -1
  66. package/dist/components/json-schema-form-render.js +4 -2
  67. package/dist/components/json-schema-form-render.js.map +1 -1
  68. package/dist/components/json-schema-form-resolve.cjs +9 -0
  69. package/dist/components/json-schema-form-resolve.cjs.map +1 -1
  70. package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
  71. package/dist/components/json-schema-form-resolve.js +9 -0
  72. package/dist/components/json-schema-form-resolve.js.map +1 -1
  73. package/dist/components/json-schema-form-types.d.ts +4 -1
  74. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  75. package/dist/components/mdx-editor-field-plugins.cjs +124 -0
  76. package/dist/components/mdx-editor-field-plugins.cjs.map +1 -0
  77. package/dist/components/mdx-editor-field-plugins.d.ts +6 -0
  78. package/dist/components/mdx-editor-field-plugins.d.ts.map +1 -0
  79. package/dist/components/mdx-editor-field-plugins.js +124 -0
  80. package/dist/components/mdx-editor-field-plugins.js.map +1 -0
  81. package/dist/components/mdx-editor-options.d.ts +77 -0
  82. package/dist/components/mdx-editor-options.d.ts.map +1 -0
  83. package/dist/components/use-list-menu-selection.cjs +77 -0
  84. package/dist/components/use-list-menu-selection.cjs.map +1 -0
  85. package/dist/components/use-list-menu-selection.d.ts +40 -0
  86. package/dist/components/use-list-menu-selection.d.ts.map +1 -0
  87. package/dist/components/use-list-menu-selection.js +77 -0
  88. package/dist/components/use-list-menu-selection.js.map +1 -0
  89. package/dist/components.cjs +10 -1
  90. package/dist/components.cjs.map +1 -1
  91. package/dist/components.d.ts +4 -1
  92. package/dist/components.d.ts.map +1 -1
  93. package/dist/components.js +10 -1
  94. package/dist/components.js.map +1 -1
  95. package/dist/data/MarkdownEditor.model.d.ts +1 -1
  96. package/dist/data/ProgressBars.cjs +194 -0
  97. package/dist/data/ProgressBars.cjs.map +1 -0
  98. package/dist/data/ProgressBars.d.ts +85 -0
  99. package/dist/data/ProgressBars.d.ts.map +1 -0
  100. package/dist/data/ProgressBars.js +194 -0
  101. package/dist/data/ProgressBars.js.map +1 -0
  102. package/dist/data/ProgressBars.model.cjs +27 -0
  103. package/dist/data/ProgressBars.model.cjs.map +1 -0
  104. package/dist/data/ProgressBars.model.d.ts +20 -0
  105. package/dist/data/ProgressBars.model.d.ts.map +1 -0
  106. package/dist/data/ProgressBars.model.js +27 -0
  107. package/dist/data/ProgressBars.model.js.map +1 -0
  108. package/dist/data/PromptBanner.cjs +199 -0
  109. package/dist/data/PromptBanner.cjs.map +1 -0
  110. package/dist/data/PromptBanner.d.ts +17 -0
  111. package/dist/data/PromptBanner.d.ts.map +1 -0
  112. package/dist/data/PromptBanner.js +199 -0
  113. package/dist/data/PromptBanner.js.map +1 -0
  114. package/dist/data/PromptBanner.model.cjs +132 -0
  115. package/dist/data/PromptBanner.model.cjs.map +1 -0
  116. package/dist/data/PromptBanner.model.d.ts +23 -0
  117. package/dist/data/PromptBanner.model.d.ts.map +1 -0
  118. package/dist/data/PromptBanner.model.js +132 -0
  119. package/dist/data/PromptBanner.model.js.map +1 -0
  120. package/dist/data/PromptDialog.cjs +43 -0
  121. package/dist/data/PromptDialog.cjs.map +1 -0
  122. package/dist/data/PromptDialog.d.ts +14 -0
  123. package/dist/data/PromptDialog.d.ts.map +1 -0
  124. package/dist/data/PromptDialog.js +43 -0
  125. package/dist/data/PromptDialog.js.map +1 -0
  126. package/dist/data/TaskManager.cjs +8 -1
  127. package/dist/data/TaskManager.cjs.map +1 -1
  128. package/dist/data/TaskManager.d.ts.map +1 -1
  129. package/dist/data/TaskManager.js +8 -1
  130. package/dist/data/TaskManager.js.map +1 -1
  131. package/dist/data/TaskProgress.cjs +15 -2
  132. package/dist/data/TaskProgress.cjs.map +1 -1
  133. package/dist/data/TaskProgress.d.ts +0 -10
  134. package/dist/data/TaskProgress.d.ts.map +1 -1
  135. package/dist/data/TaskProgress.js +15 -2
  136. package/dist/data/TaskProgress.js.map +1 -1
  137. package/dist/data/TimeseriesCoreBars.cjs +19 -173
  138. package/dist/data/TimeseriesCoreBars.cjs.map +1 -1
  139. package/dist/data/TimeseriesCoreBars.d.ts +9 -26
  140. package/dist/data/TimeseriesCoreBars.d.ts.map +1 -1
  141. package/dist/data/TimeseriesCoreBars.js +20 -174
  142. package/dist/data/TimeseriesCoreBars.js.map +1 -1
  143. package/dist/data/WorkloadCard.model.cjs.map +1 -1
  144. package/dist/data/WorkloadCard.model.d.ts +2 -2
  145. package/dist/data/WorkloadCard.model.d.ts.map +1 -1
  146. package/dist/data/WorkloadCard.model.js.map +1 -1
  147. package/dist/data/ai/ChatWindow.cjs +53 -9
  148. package/dist/data/ai/ChatWindow.cjs.map +1 -1
  149. package/dist/data/ai/ChatWindow.d.ts.map +1 -1
  150. package/dist/data/ai/ChatWindow.js +53 -9
  151. package/dist/data/ai/ChatWindow.js.map +1 -1
  152. package/dist/data/ai/SessionViewer.cjs +275 -0
  153. package/dist/data/ai/SessionViewer.cjs.map +1 -0
  154. package/dist/data/ai/SessionViewer.d.ts +33 -0
  155. package/dist/data/ai/SessionViewer.d.ts.map +1 -0
  156. package/dist/data/ai/SessionViewer.fixtures.d.ts +4 -0
  157. package/dist/data/ai/SessionViewer.fixtures.d.ts.map +1 -0
  158. package/dist/data/ai/SessionViewer.js +275 -0
  159. package/dist/data/ai/SessionViewer.js.map +1 -0
  160. package/dist/data/ai/SessionViewer.model.cjs +275 -0
  161. package/dist/data/ai/SessionViewer.model.cjs.map +1 -0
  162. package/dist/data/ai/SessionViewer.model.d.ts +87 -0
  163. package/dist/data/ai/SessionViewer.model.d.ts.map +1 -0
  164. package/dist/data/ai/SessionViewer.model.js +275 -0
  165. package/dist/data/ai/SessionViewer.model.js.map +1 -0
  166. package/dist/data/ai/SessionViewerMenu.cjs +190 -0
  167. package/dist/data/ai/SessionViewerMenu.cjs.map +1 -0
  168. package/dist/data/ai/SessionViewerMenu.d.ts +24 -0
  169. package/dist/data/ai/SessionViewerMenu.d.ts.map +1 -0
  170. package/dist/data/ai/SessionViewerMenu.js +190 -0
  171. package/dist/data/ai/SessionViewerMenu.js.map +1 -0
  172. package/dist/data/ai/ToolPreferences.cjs +232 -39
  173. package/dist/data/ai/ToolPreferences.cjs.map +1 -1
  174. package/dist/data/ai/ToolPreferences.d.ts +4 -7
  175. package/dist/data/ai/ToolPreferences.d.ts.map +1 -1
  176. package/dist/data/ai/ToolPreferences.js +234 -41
  177. package/dist/data/ai/ToolPreferences.js.map +1 -1
  178. package/dist/data/ai/index.d.ts +3 -0
  179. package/dist/data/ai/index.d.ts.map +1 -1
  180. package/dist/data/ai/session-categories.cjs +219 -0
  181. package/dist/data/ai/session-categories.cjs.map +1 -0
  182. package/dist/data/ai/session-categories.d.ts +36 -0
  183. package/dist/data/ai/session-categories.d.ts.map +1 -0
  184. package/dist/data/ai/session-categories.js +219 -0
  185. package/dist/data/ai/session-categories.js.map +1 -0
  186. package/dist/data/chat/clickyOperationsToTools.cjs +89 -3
  187. package/dist/data/chat/clickyOperationsToTools.cjs.map +1 -1
  188. package/dist/data/chat/clickyOperationsToTools.d.ts +1 -1
  189. package/dist/data/chat/clickyOperationsToTools.d.ts.map +1 -1
  190. package/dist/data/chat/clickyOperationsToTools.js +89 -3
  191. package/dist/data/chat/clickyOperationsToTools.js.map +1 -1
  192. package/dist/data/chat/types.cjs.map +1 -1
  193. package/dist/data/chat/types.d.ts +7 -1
  194. package/dist/data/chat/types.d.ts.map +1 -1
  195. package/dist/data/chat/types.js.map +1 -1
  196. package/dist/data/task-status.cjs +19 -12
  197. package/dist/data/task-status.cjs.map +1 -1
  198. package/dist/data/task-status.d.ts +2 -1
  199. package/dist/data/task-status.d.ts.map +1 -1
  200. package/dist/data/task-status.js +19 -12
  201. package/dist/data/task-status.js.map +1 -1
  202. package/dist/data/test-runner/TestRunner.fixtures.d.ts +11 -4
  203. package/dist/data/test-runner/TestRunner.fixtures.d.ts.map +1 -1
  204. package/dist/data/version-info.cjs +3 -3
  205. package/dist/data/version-info.cjs.map +1 -1
  206. package/dist/data/version-info.js +3 -3
  207. package/dist/data/version-info.js.map +1 -1
  208. package/dist/data.cjs +11 -2
  209. package/dist/data.cjs.map +1 -1
  210. package/dist/data.d.ts +6 -2
  211. package/dist/data.d.ts.map +1 -1
  212. package/dist/data.js +11 -2
  213. package/dist/data.js.map +1 -1
  214. package/dist/hooks/use-prompts.cjs +83 -0
  215. package/dist/hooks/use-prompts.cjs.map +1 -0
  216. package/dist/hooks/use-prompts.d.ts +43 -0
  217. package/dist/hooks/use-prompts.d.ts.map +1 -0
  218. package/dist/hooks/use-prompts.js +83 -0
  219. package/dist/hooks/use-prompts.js.map +1 -0
  220. package/dist/hooks.cjs +3 -0
  221. package/dist/hooks.cjs.map +1 -1
  222. package/dist/hooks.d.ts +1 -0
  223. package/dist/hooks.d.ts.map +1 -1
  224. package/dist/hooks.js +3 -0
  225. package/dist/hooks.js.map +1 -1
  226. package/dist/index.cjs +21 -3
  227. package/dist/index.cjs.map +1 -1
  228. package/dist/index.js +21 -3
  229. package/dist/index.js.map +1 -1
  230. package/dist/jotai.cjs +9 -0
  231. package/dist/jotai.cjs.map +1 -0
  232. package/dist/jotai.d.ts +4 -0
  233. package/dist/jotai.d.ts.map +1 -0
  234. package/dist/jotai.js +9 -0
  235. package/dist/jotai.js.map +1 -0
  236. package/dist/lib/utils.cjs +18 -1
  237. package/dist/lib/utils.cjs.map +1 -1
  238. package/dist/lib/utils.d.ts.map +1 -1
  239. package/dist/lib/utils.js +18 -1
  240. package/dist/lib/utils.js.map +1 -1
  241. package/dist/mdx-editor.cjs +5 -0
  242. package/dist/mdx-editor.cjs.map +1 -0
  243. package/dist/mdx-editor.css +2 -0
  244. package/dist/mdx-editor.d.ts +2 -0
  245. package/dist/mdx-editor.d.ts.map +1 -0
  246. package/dist/mdx-editor.js +5 -0
  247. package/dist/mdx-editor.js.map +1 -0
  248. package/dist/rpc/apiClient.cjs +1 -1
  249. package/dist/rpc/apiClient.cjs.map +1 -1
  250. package/dist/rpc/apiClient.js +1 -1
  251. package/dist/rpc/apiClient.js.map +1 -1
  252. package/dist/rpc/surfaceIconMap.cjs +12 -1
  253. package/dist/rpc/surfaceIconMap.cjs.map +1 -1
  254. package/dist/rpc/surfaceIconMap.d.ts.map +1 -1
  255. package/dist/rpc/surfaceIconMap.js +12 -1
  256. package/dist/rpc/surfaceIconMap.js.map +1 -1
  257. package/dist/rpc/types.cjs.map +1 -1
  258. package/dist/rpc/types.d.ts +1 -0
  259. package/dist/rpc/types.d.ts.map +1 -1
  260. package/dist/rpc/types.js.map +1 -1
  261. package/dist/styles.css +1 -1
  262. package/oxlint-plugins/README.md +148 -0
  263. package/oxlint-plugins/clicky-ui-no-adhoc-overlay.js +88 -0
  264. package/oxlint-plugins/clicky-ui-prefer-components.js +46 -0
  265. package/oxlint-plugins/clicky-ui-prefer-icons.js +121 -0
  266. package/oxlint-plugins/clicky-ui-prefer-tailwind.js +98 -0
  267. package/oxlint-plugins/clicky-ui-prefer-theme.js +134 -0
  268. package/oxlint-plugins/clicky-ui-shared.js +132 -0
  269. package/oxlint-plugins/clicky-ui.js +34 -0
  270. package/oxlint-plugins/no-iconify-names.js +37 -0
  271. package/package.json +21 -1
  272. package/dist/data/TimeseriesCoreBars.model.cjs +0 -27
  273. package/dist/data/TimeseriesCoreBars.model.cjs.map +0 -1
  274. package/dist/data/TimeseriesCoreBars.model.d.ts +0 -20
  275. package/dist/data/TimeseriesCoreBars.model.d.ts.map +0 -1
  276. package/dist/data/TimeseriesCoreBars.model.js +0 -27
  277. package/dist/data/TimeseriesCoreBars.model.js.map +0 -1
package/dist/data.d.ts CHANGED
@@ -40,12 +40,13 @@ export { TimeseriesPanel, type TimeseriesPanelProps, } from './data/TimeseriesPa
40
40
  export { resolveSeries, resolveBreakdown, mergeSeries, type BreakdownItem, type MergedRow, type ResolvedSeries, type TimeseriesPoint, type TimeseriesResponse, type TimeseriesSeries, } from './data/TimeseriesPanel.model';
41
41
  export { assignAxes, latestOf, type AxisAssignment, type AxisOrientation, type AxisSpec, } from './data/TimeseriesPanel.axes';
42
42
  export { TimeseriesGauge, type GaugeSeries, type TimeseriesGaugeProps, type TimeseriesGaugeShape, type TimeseriesGaugeVariant, } from './data/TimeseriesGauge';
43
- export { TimeseriesCoreBars, type CoreBarsUnit, type TimeseriesCoreBarsOrientation, type TimeseriesCoreBarsProps, type TimeseriesCoreBarsVariant, } from './data/TimeseriesCoreBars';
43
+ export { ProgressBars, type ProgressBarsOrientation, type ProgressBarsProps, type ProgressBarsStats, type ProgressBarsUnit, type ProgressBarsVariant, } from './data/ProgressBars';
44
+ export { deriveProgressBars, type ProgressBarFill, type ProgressBarsModel, } from './data/ProgressBars.model';
45
+ export { TimeseriesCoreBars, type TimeseriesCoreBarsProps, } from './data/TimeseriesCoreBars';
44
46
  export { GaugeHoverCard, type GaugeHoverCardProps, type GaugeHoverRow, } from './data/GaugeHoverCard';
45
47
  export { seriesStats, type SeriesStats } from './data/gauge-stats';
46
48
  export { WorkloadCard, type WorkloadCardProps, type WorkloadCardSize, type WorkloadCardVariant } from './data/WorkloadCard';
47
49
  export { formatReplicaCounts, workloadKindLabel, workloadStatusLabel, workloadStatusTone, type WorkloadCardCpuMetric, type WorkloadCardIcon, type WorkloadCardKind, type WorkloadCardMetrics, type WorkloadCardReplicas, type WorkloadCardResourceMetric, type WorkloadCardStatus, type WorkloadCardWorkload, } from './data/WorkloadCard.model';
48
- export { deriveCoreBars, type CoreBar, type CoreBarsModel, } from './data/TimeseriesCoreBars.model';
49
50
  export { StatusRows, StackedStatusBar, type StatusSegment, type StatusRenderLink, } from './data/StatusBreakdown';
50
51
  export { segment } from './data/status-breakdown-utils';
51
52
  export { Version, type VersionProps } from './data/Version';
@@ -62,6 +63,9 @@ export { type LogEntry, type TaskSnapshot, type TaskRunMeta, isTerminalStatus, a
62
63
  export { taskStatusColor, taskStatusIcon, taskStatusBg, logLevelColor, taskSegments, bucketTasks, } from './data/task-status';
63
64
  export { TaskProgress, type TaskProgressProps } from './data/TaskProgress';
64
65
  export { TaskManager, type TaskManagerProps } from './data/TaskManager';
66
+ export { PromptDialog, type PromptDialogProps } from './data/PromptDialog';
67
+ export { PromptBanner, type PromptBannerProps } from './data/PromptBanner';
68
+ export { usePrompts, answerPrompt, type PromptSnapshot, type PromptFilter, } from './hooks/use-prompts';
65
69
  export { DiagnosticsTree, type DiagnosticsTreeProps } from './data/diagnostics/DiagnosticsTree';
66
70
  export { DiagnosticsDetailPanel, type DiagnosticsDetailPanelProps, } from './data/diagnostics/DiagnosticsDetailPanel';
67
71
  export type { ProcessNode, StackCapture, RunMeta } from './data/diagnostics/types';
@@ -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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"}
package/dist/data.js CHANGED
@@ -39,12 +39,13 @@ import { TimeseriesPanel } from "./data/TimeseriesPanel.js";
39
39
  import { mergeSeries, resolveBreakdown, resolveSeries } from "./data/TimeseriesPanel.model.js";
40
40
  import { assignAxes, latestOf } from "./data/TimeseriesPanel.axes.js";
41
41
  import { TimeseriesGauge } from "./data/TimeseriesGauge.js";
42
+ import { ProgressBars } from "./data/ProgressBars.js";
43
+ import { deriveProgressBars } from "./data/ProgressBars.model.js";
42
44
  import { TimeseriesCoreBars } from "./data/TimeseriesCoreBars.js";
43
45
  import { GaugeHoverCard } from "./data/GaugeHoverCard.js";
44
46
  import { seriesStats } from "./data/gauge-stats.js";
45
47
  import { WorkloadCard } from "./data/WorkloadCard.js";
46
48
  import { formatReplicaCounts, workloadKindLabel, workloadStatusLabel, workloadStatusTone } from "./data/WorkloadCard.model.js";
47
- import { deriveCoreBars } from "./data/TimeseriesCoreBars.model.js";
48
49
  import { StackedStatusBar, StatusRows } from "./data/StatusBreakdown.js";
49
50
  import { segment } from "./data/status-breakdown-utils.js";
50
51
  import { Version } from "./data/Version.js";
@@ -59,6 +60,9 @@ import { allGroupsTerminal, isTerminalStatus } from "./data/TaskSnapshot.js";
59
60
  import { bucketTasks, logLevelColor, taskSegments, taskStatusBg, taskStatusColor, taskStatusIcon } from "./data/task-status.js";
60
61
  import { TaskProgress } from "./data/TaskProgress.js";
61
62
  import { TaskManager } from "./data/TaskManager.js";
63
+ import { PromptDialog } from "./data/PromptDialog.js";
64
+ import { PromptBanner } from "./data/PromptBanner.js";
65
+ import { answerPrompt, usePrompts } from "./hooks/use-prompts.js";
62
66
  import { DiagnosticsTree } from "./data/diagnostics/DiagnosticsTree.js";
63
67
  import { DiagnosticsDetailPanel } from "./data/diagnostics/DiagnosticsDetailPanel.js";
64
68
  import { countProcesses, findProcessByPID, processLabel, processStateColor, processStateIcon } from "./data/diagnostics/utils.js";
@@ -395,6 +399,9 @@ export {
395
399
  ObjectGraph,
396
400
  PrettyStackTrace,
397
401
  ProgressBar,
402
+ ProgressBars,
403
+ PromptBanner,
404
+ PromptDialog,
398
405
  Properties,
399
406
  RadialGauge,
400
407
  STATUS_TOKEN_GROUPS,
@@ -924,6 +931,7 @@ export {
924
931
  WorkloadCard,
925
932
  allGroupsTerminal,
926
933
  annotateRoutePaths,
934
+ answerPrompt,
927
935
  assignAxes,
928
936
  badgeVariants,
929
937
  bucketTasks,
@@ -947,7 +955,7 @@ export {
947
955
  createTestRunnerRegistry,
948
956
  cycleFilterState,
949
957
  decodeFilterState,
950
- deriveCoreBars,
958
+ deriveProgressBars,
951
959
  detectDumpFormat,
952
960
  emptyTestFilters,
953
961
  encodeFilterState,
@@ -1012,6 +1020,7 @@ export {
1012
1020
  taskStatusIcon,
1013
1021
  testStatus,
1014
1022
  totalDuration,
1023
+ usePrompts,
1015
1024
  useTagActions,
1016
1025
  useTagActionsValue,
1017
1026
  useTestRunner,
package/dist/data.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"data.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"data.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const react = require("react");
4
+ const DEFAULT_BASE = "/api/todos";
5
+ const DEFAULT_POLL_MS = 2e3;
6
+ function hasEventSource() {
7
+ return typeof globalThis !== "undefined" && typeof globalThis.EventSource !== "undefined";
8
+ }
9
+ function filterQuery(filter) {
10
+ const params = new URLSearchParams();
11
+ if (filter.owner) params.set("owner", filter.owner);
12
+ if (filter.kind) params.set("kind", filter.kind);
13
+ if (filter.state) params.set("state", filter.state);
14
+ for (const [k, v] of Object.entries(filter.labels ?? {})) params.append("label", `${k}=${v}`);
15
+ return params.toString();
16
+ }
17
+ async function answerPrompt(basePath, id, answer) {
18
+ const res = await fetch(`${basePath}/prompts/${encodeURIComponent(id)}/answer`, {
19
+ method: "POST",
20
+ headers: { "Content-Type": "application/json" },
21
+ body: JSON.stringify(answer)
22
+ });
23
+ if (!res.ok) {
24
+ throw new Error(await res.text() || `answer failed: ${res.status}`);
25
+ }
26
+ }
27
+ function usePrompts(options = {}) {
28
+ const {
29
+ owner,
30
+ kind,
31
+ state: stateFilter,
32
+ labels,
33
+ basePath = DEFAULT_BASE,
34
+ enabled = true,
35
+ pollMs = DEFAULT_POLL_MS,
36
+ forcePoll = false
37
+ } = options;
38
+ const [prompts, setPrompts] = react.useState([]);
39
+ const [status, setStatus] = react.useState("idle");
40
+ const labelsKey = JSON.stringify(labels ?? {});
41
+ react.useEffect(() => {
42
+ if (!enabled) return;
43
+ const query = filterQuery({ owner, kind, state: stateFilter, labels });
44
+ if (forcePoll || !hasEventSource()) {
45
+ let stopped = false;
46
+ let timer;
47
+ const tick = async () => {
48
+ try {
49
+ const res = await fetch(`${basePath}/prompts${query ? `?${query}` : ""}`, {
50
+ headers: { Accept: "application/json" }
51
+ });
52
+ if (res.ok) {
53
+ setPrompts(await res.json());
54
+ setStatus("polling");
55
+ }
56
+ } catch {
57
+ setStatus("connection lost — retrying");
58
+ }
59
+ if (!stopped) timer = setTimeout(tick, pollMs);
60
+ };
61
+ void tick();
62
+ return () => {
63
+ stopped = true;
64
+ if (timer) clearTimeout(timer);
65
+ };
66
+ }
67
+ const es = new EventSource(`${basePath}/prompts/stream${query ? `?${query}` : ""}`);
68
+ setStatus("connected");
69
+ es.addEventListener("prompts", (e) => {
70
+ try {
71
+ setPrompts(JSON.parse(e.data));
72
+ } catch {
73
+ }
74
+ });
75
+ es.onerror = () => setStatus("connection lost — retrying");
76
+ return () => es.close();
77
+ }, [owner, kind, stateFilter, labelsKey, basePath, enabled, pollMs, forcePoll]);
78
+ const pending = prompts.filter((p) => p.state === "pending");
79
+ return { prompts, pending, status };
80
+ }
81
+ exports.answerPrompt = answerPrompt;
82
+ exports.usePrompts = usePrompts;
83
+ //# sourceMappingURL=use-prompts.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-prompts.cjs","sources":["../../src/hooks/use-prompts.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport type { JsonSchemaObject } from \"../components/json-schema-form-types\";\n\n// use-prompts is the generic clicky-ui client for the clicky `prompt` manager\n// (the Go-side question/elicitation broker). Like use-task-runs it is SSE-first —\n// it subscribes to the manager's SSEHandler (event: prompts carrying the full\n// filtered listing) and falls back to polling the JSON endpoint. It speaks only\n// PromptSnapshot, no app concepts; producers (commit checks, tool approvals, AI\n// elicitation) are indistinguishable here.\n\n/** PromptSnapshot mirrors the Go prompt.PromptSnapshot wire shape. */\nexport interface PromptSnapshot {\n id: string;\n kind?: string;\n title: string;\n description?: string;\n schema: JsonSchemaObject;\n /** pending | answered | cancelled | expired */\n state: string;\n value?: Record<string, unknown>;\n cancelled?: boolean;\n owner?: string;\n labels?: Record<string, string>;\n createdAt?: string;\n resolvedAt?: string;\n}\n\nexport interface PromptFilter {\n owner?: string | undefined;\n kind?: string | undefined;\n state?: string | undefined;\n labels?: Record<string, string> | undefined;\n}\n\nexport interface UsePromptsOptions extends PromptFilter {\n /** Base path the prompt API is mounted under, e.g. \"/api/todos\". */\n basePath?: string | undefined;\n enabled?: boolean | undefined;\n pollMs?: number | undefined;\n forcePoll?: boolean | undefined;\n}\n\nexport interface UsePromptsResult {\n prompts: PromptSnapshot[];\n /** Pending prompts only (state === \"pending\"), newest first. */\n pending: PromptSnapshot[];\n status: string;\n}\n\nconst DEFAULT_BASE = \"/api/todos\";\nconst DEFAULT_POLL_MS = 2_000;\n\nfunction hasEventSource(): boolean {\n return typeof globalThis !== \"undefined\" && typeof globalThis.EventSource !== \"undefined\";\n}\n\nfunction filterQuery(filter: PromptFilter): string {\n const params = new URLSearchParams();\n if (filter.owner) params.set(\"owner\", filter.owner);\n if (filter.kind) params.set(\"kind\", filter.kind);\n if (filter.state) params.set(\"state\", filter.state);\n for (const [k, v] of Object.entries(filter.labels ?? {})) params.append(\"label\", `${k}=${v}`);\n return params.toString();\n}\n\n/** Resolve a prompt by id with an answer (or cancel it). */\nexport async function answerPrompt(\n basePath: string,\n id: string,\n answer: { values?: Record<string, unknown>; cancelled?: boolean },\n): Promise<void> {\n const res = await fetch(`${basePath}/prompts/${encodeURIComponent(id)}/answer`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(answer),\n });\n if (!res.ok) {\n throw new Error((await res.text()) || `answer failed: ${res.status}`);\n }\n}\n\n// usePrompts subscribes to the filtered prompt listing. The stream has no\n// completion terminal — a dashboard stays subscribed to observe new prompts.\nexport function usePrompts(options: UsePromptsOptions = {}): UsePromptsResult {\n const {\n owner,\n kind,\n state: stateFilter,\n labels,\n basePath = DEFAULT_BASE,\n enabled = true,\n pollMs = DEFAULT_POLL_MS,\n forcePoll = false,\n } = options;\n\n const [prompts, setPrompts] = useState<PromptSnapshot[]>([]);\n const [status, setStatus] = useState(\"idle\");\n\n const labelsKey = JSON.stringify(labels ?? {});\n useEffect(() => {\n if (!enabled) return;\n const query = filterQuery({ owner, kind, state: stateFilter, labels });\n\n if (forcePoll || !hasEventSource()) {\n let stopped = false;\n let timer: ReturnType<typeof setTimeout> | undefined;\n const tick = async () => {\n try {\n const res = await fetch(`${basePath}/prompts${query ? `?${query}` : \"\"}`, {\n headers: { Accept: \"application/json\" },\n });\n if (res.ok) {\n setPrompts((await res.json()) as PromptSnapshot[]);\n setStatus(\"polling\");\n }\n } catch {\n setStatus(\"connection lost — retrying\");\n }\n if (!stopped) timer = setTimeout(tick, pollMs);\n };\n void tick();\n return () => {\n stopped = true;\n if (timer) clearTimeout(timer);\n };\n }\n\n const es = new EventSource(`${basePath}/prompts/stream${query ? `?${query}` : \"\"}`);\n setStatus(\"connected\");\n es.addEventListener(\"prompts\", (e) => {\n try {\n setPrompts(JSON.parse((e as MessageEvent).data) as PromptSnapshot[]);\n } catch {\n /* ignore malformed frame */\n }\n });\n es.onerror = () => setStatus(\"connection lost — retrying\");\n return () => es.close();\n }, [owner, kind, stateFilter, labelsKey, basePath, enabled, pollMs, forcePoll]);\n\n const pending = prompts.filter((p) => p.state === \"pending\");\n return { prompts, pending, status };\n}\n"],"names":["useState","useEffect"],"mappings":";;;AAiDA,MAAM,eAAe;AACrB,MAAM,kBAAkB;AAExB,SAAS,iBAA0B;AACjC,SAAO,OAAO,eAAe,eAAe,OAAO,WAAW,gBAAgB;AAChF;AAEA,SAAS,YAAY,QAA8B;AACjD,QAAM,SAAS,IAAI,gBAAA;AACnB,MAAI,OAAO,MAAO,QAAO,IAAI,SAAS,OAAO,KAAK;AAClD,MAAI,OAAO,KAAM,QAAO,IAAI,QAAQ,OAAO,IAAI;AAC/C,MAAI,OAAO,MAAO,QAAO,IAAI,SAAS,OAAO,KAAK;AAClD,aAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,OAAO,UAAU,CAAA,CAAE,UAAU,OAAO,SAAS,GAAG,CAAC,IAAI,CAAC,EAAE;AAC5F,SAAO,OAAO,SAAA;AAChB;AAGA,eAAsB,aACpB,UACA,IACA,QACe;AACf,QAAM,MAAM,MAAM,MAAM,GAAG,QAAQ,YAAY,mBAAmB,EAAE,CAAC,WAAW;AAAA,IAC9E,QAAQ;AAAA,IACR,SAAS,EAAE,gBAAgB,mBAAA;AAAA,IAC3B,MAAM,KAAK,UAAU,MAAM;AAAA,EAAA,CAC5B;AACD,MAAI,CAAC,IAAI,IAAI;AACX,UAAM,IAAI,MAAO,MAAM,IAAI,UAAW,kBAAkB,IAAI,MAAM,EAAE;AAAA,EACtE;AACF;AAIO,SAAS,WAAW,UAA6B,IAAsB;AAC5E,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA,WAAW;AAAA,IACX,UAAU;AAAA,IACV,SAAS;AAAA,IACT,YAAY;AAAA,EAAA,IACV;AAEJ,QAAM,CAAC,SAAS,UAAU,IAAIA,MAAAA,SAA2B,CAAA,CAAE;AAC3D,QAAM,CAAC,QAAQ,SAAS,IAAIA,MAAAA,SAAS,MAAM;AAE3C,QAAM,YAAY,KAAK,UAAU,UAAU,CAAA,CAAE;AAC7CC,QAAAA,UAAU,MAAM;AACd,QAAI,CAAC,QAAS;AACd,UAAM,QAAQ,YAAY,EAAE,OAAO,MAAM,OAAO,aAAa,QAAQ;AAErE,QAAI,aAAa,CAAC,kBAAkB;AAClC,UAAI,UAAU;AACd,UAAI;AACJ,YAAM,OAAO,YAAY;AACvB,YAAI;AACF,gBAAM,MAAM,MAAM,MAAM,GAAG,QAAQ,WAAW,QAAQ,IAAI,KAAK,KAAK,EAAE,IAAI;AAAA,YACxE,SAAS,EAAE,QAAQ,mBAAA;AAAA,UAAmB,CACvC;AACD,cAAI,IAAI,IAAI;AACV,uBAAY,MAAM,IAAI,MAA2B;AACjD,sBAAU,SAAS;AAAA,UACrB;AAAA,QACF,QAAQ;AACN,oBAAU,4BAA4B;AAAA,QACxC;AACA,YAAI,CAAC,QAAS,SAAQ,WAAW,MAAM,MAAM;AAAA,MAC/C;AACA,WAAK,KAAA;AACL,aAAO,MAAM;AACX,kBAAU;AACV,YAAI,oBAAoB,KAAK;AAAA,MAC/B;AAAA,IACF;AAEA,UAAM,KAAK,IAAI,YAAY,GAAG,QAAQ,kBAAkB,QAAQ,IAAI,KAAK,KAAK,EAAE,EAAE;AAClF,cAAU,WAAW;AACrB,OAAG,iBAAiB,WAAW,CAAC,MAAM;AACpC,UAAI;AACF,mBAAW,KAAK,MAAO,EAAmB,IAAI,CAAqB;AAAA,MACrE,QAAQ;AAAA,MAER;AAAA,IACF,CAAC;AACD,OAAG,UAAU,MAAM,UAAU,4BAA4B;AACzD,WAAO,MAAM,GAAG,MAAA;AAAA,EAClB,GAAG,CAAC,OAAO,MAAM,aAAa,WAAW,UAAU,SAAS,QAAQ,SAAS,CAAC;AAE9E,QAAM,UAAU,QAAQ,OAAO,CAAC,MAAM,EAAE,UAAU,SAAS;AAC3D,SAAO,EAAE,SAAS,SAAS,OAAA;AAC7B;;;"}
@@ -0,0 +1,43 @@
1
+ import { JsonSchemaObject } from '../components/json-schema-form-types';
2
+ /** PromptSnapshot mirrors the Go prompt.PromptSnapshot wire shape. */
3
+ export interface PromptSnapshot {
4
+ id: string;
5
+ kind?: string;
6
+ title: string;
7
+ description?: string;
8
+ schema: JsonSchemaObject;
9
+ /** pending | answered | cancelled | expired */
10
+ state: string;
11
+ value?: Record<string, unknown>;
12
+ cancelled?: boolean;
13
+ owner?: string;
14
+ labels?: Record<string, string>;
15
+ createdAt?: string;
16
+ resolvedAt?: string;
17
+ }
18
+ export interface PromptFilter {
19
+ owner?: string | undefined;
20
+ kind?: string | undefined;
21
+ state?: string | undefined;
22
+ labels?: Record<string, string> | undefined;
23
+ }
24
+ export interface UsePromptsOptions extends PromptFilter {
25
+ /** Base path the prompt API is mounted under, e.g. "/api/todos". */
26
+ basePath?: string | undefined;
27
+ enabled?: boolean | undefined;
28
+ pollMs?: number | undefined;
29
+ forcePoll?: boolean | undefined;
30
+ }
31
+ export interface UsePromptsResult {
32
+ prompts: PromptSnapshot[];
33
+ /** Pending prompts only (state === "pending"), newest first. */
34
+ pending: PromptSnapshot[];
35
+ status: string;
36
+ }
37
+ /** Resolve a prompt by id with an answer (or cancel it). */
38
+ export declare function answerPrompt(basePath: string, id: string, answer: {
39
+ values?: Record<string, unknown>;
40
+ cancelled?: boolean;
41
+ }): Promise<void>;
42
+ export declare function usePrompts(options?: UsePromptsOptions): UsePromptsResult;
43
+ //# sourceMappingURL=use-prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-prompts.d.ts","sourceRoot":"","sources":["../../src/hooks/use-prompts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAS7E,sEAAsE;AACtE,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,gBAAgB,CAAC;IACzB,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CAC7C;AAED,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,gEAAgE;IAChE,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAkBD,4DAA4D;AAC5D,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAChE,OAAO,CAAC,IAAI,CAAC,CASf;AAID,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,gBAAgB,CA2D5E"}
@@ -0,0 +1,83 @@
1
+ import { useState, useEffect } from "react";
2
+ const DEFAULT_BASE = "/api/todos";
3
+ const DEFAULT_POLL_MS = 2e3;
4
+ function hasEventSource() {
5
+ return typeof globalThis !== "undefined" && typeof globalThis.EventSource !== "undefined";
6
+ }
7
+ function filterQuery(filter) {
8
+ const params = new URLSearchParams();
9
+ if (filter.owner) params.set("owner", filter.owner);
10
+ if (filter.kind) params.set("kind", filter.kind);
11
+ if (filter.state) params.set("state", filter.state);
12
+ for (const [k, v] of Object.entries(filter.labels ?? {})) params.append("label", `${k}=${v}`);
13
+ return params.toString();
14
+ }
15
+ async function answerPrompt(basePath, id, answer) {
16
+ const res = await fetch(`${basePath}/prompts/${encodeURIComponent(id)}/answer`, {
17
+ method: "POST",
18
+ headers: { "Content-Type": "application/json" },
19
+ body: JSON.stringify(answer)
20
+ });
21
+ if (!res.ok) {
22
+ throw new Error(await res.text() || `answer failed: ${res.status}`);
23
+ }
24
+ }
25
+ function usePrompts(options = {}) {
26
+ const {
27
+ owner,
28
+ kind,
29
+ state: stateFilter,
30
+ labels,
31
+ basePath = DEFAULT_BASE,
32
+ enabled = true,
33
+ pollMs = DEFAULT_POLL_MS,
34
+ forcePoll = false
35
+ } = options;
36
+ const [prompts, setPrompts] = useState([]);
37
+ const [status, setStatus] = useState("idle");
38
+ const labelsKey = JSON.stringify(labels ?? {});
39
+ useEffect(() => {
40
+ if (!enabled) return;
41
+ const query = filterQuery({ owner, kind, state: stateFilter, labels });
42
+ if (forcePoll || !hasEventSource()) {
43
+ let stopped = false;
44
+ let timer;
45
+ const tick = async () => {
46
+ try {
47
+ const res = await fetch(`${basePath}/prompts${query ? `?${query}` : ""}`, {
48
+ headers: { Accept: "application/json" }
49
+ });
50
+ if (res.ok) {
51
+ setPrompts(await res.json());
52
+ setStatus("polling");
53
+ }
54
+ } catch {
55
+ setStatus("connection lost — retrying");
56
+ }
57
+ if (!stopped) timer = setTimeout(tick, pollMs);
58
+ };
59
+ void tick();
60
+ return () => {
61
+ stopped = true;
62
+ if (timer) clearTimeout(timer);
63
+ };
64
+ }
65
+ const es = new EventSource(`${basePath}/prompts/stream${query ? `?${query}` : ""}`);
66
+ setStatus("connected");
67
+ es.addEventListener("prompts", (e) => {
68
+ try {
69
+ setPrompts(JSON.parse(e.data));
70
+ } catch {
71
+ }
72
+ });
73
+ es.onerror = () => setStatus("connection lost — retrying");
74
+ return () => es.close();
75
+ }, [owner, kind, stateFilter, labelsKey, basePath, enabled, pollMs, forcePoll]);
76
+ const pending = prompts.filter((p) => p.state === "pending");
77
+ return { prompts, pending, status };
78
+ }
79
+ export {
80
+ answerPrompt,
81
+ usePrompts
82
+ };
83
+ //# sourceMappingURL=use-prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-prompts.js","sources":["../../src/hooks/use-prompts.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport type { JsonSchemaObject } from \"../components/json-schema-form-types\";\n\n// use-prompts is the generic clicky-ui client for the clicky `prompt` manager\n// (the Go-side question/elicitation broker). Like use-task-runs it is SSE-first —\n// it subscribes to the manager's SSEHandler (event: prompts carrying the full\n// filtered listing) and falls back to polling the JSON endpoint. It speaks only\n// PromptSnapshot, no app concepts; producers (commit checks, tool approvals, AI\n// elicitation) are indistinguishable here.\n\n/** PromptSnapshot mirrors the Go prompt.PromptSnapshot wire shape. */\nexport interface PromptSnapshot {\n id: string;\n kind?: string;\n title: string;\n description?: string;\n schema: JsonSchemaObject;\n /** pending | answered | cancelled | expired */\n state: string;\n value?: Record<string, unknown>;\n cancelled?: boolean;\n owner?: string;\n labels?: Record<string, string>;\n createdAt?: string;\n resolvedAt?: string;\n}\n\nexport interface PromptFilter {\n owner?: string | undefined;\n kind?: string | undefined;\n state?: string | undefined;\n labels?: Record<string, string> | undefined;\n}\n\nexport interface UsePromptsOptions extends PromptFilter {\n /** Base path the prompt API is mounted under, e.g. \"/api/todos\". */\n basePath?: string | undefined;\n enabled?: boolean | undefined;\n pollMs?: number | undefined;\n forcePoll?: boolean | undefined;\n}\n\nexport interface UsePromptsResult {\n prompts: PromptSnapshot[];\n /** Pending prompts only (state === \"pending\"), newest first. */\n pending: PromptSnapshot[];\n status: string;\n}\n\nconst DEFAULT_BASE = \"/api/todos\";\nconst DEFAULT_POLL_MS = 2_000;\n\nfunction hasEventSource(): boolean {\n return typeof globalThis !== \"undefined\" && typeof globalThis.EventSource !== \"undefined\";\n}\n\nfunction filterQuery(filter: PromptFilter): string {\n const params = new URLSearchParams();\n if (filter.owner) params.set(\"owner\", filter.owner);\n if (filter.kind) params.set(\"kind\", filter.kind);\n if (filter.state) params.set(\"state\", filter.state);\n for (const [k, v] of Object.entries(filter.labels ?? {})) params.append(\"label\", `${k}=${v}`);\n return params.toString();\n}\n\n/** Resolve a prompt by id with an answer (or cancel it). */\nexport async function answerPrompt(\n basePath: string,\n id: string,\n answer: { values?: Record<string, unknown>; cancelled?: boolean },\n): Promise<void> {\n const res = await fetch(`${basePath}/prompts/${encodeURIComponent(id)}/answer`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(answer),\n });\n if (!res.ok) {\n throw new Error((await res.text()) || `answer failed: ${res.status}`);\n }\n}\n\n// usePrompts subscribes to the filtered prompt listing. The stream has no\n// completion terminal — a dashboard stays subscribed to observe new prompts.\nexport function usePrompts(options: UsePromptsOptions = {}): UsePromptsResult {\n const {\n owner,\n kind,\n state: stateFilter,\n labels,\n basePath = DEFAULT_BASE,\n enabled = true,\n pollMs = DEFAULT_POLL_MS,\n forcePoll = false,\n } = options;\n\n const [prompts, setPrompts] = useState<PromptSnapshot[]>([]);\n const [status, setStatus] = useState(\"idle\");\n\n const labelsKey = JSON.stringify(labels ?? {});\n useEffect(() => {\n if (!enabled) return;\n const query = filterQuery({ owner, kind, state: stateFilter, labels });\n\n if (forcePoll || !hasEventSource()) {\n let stopped = false;\n let timer: ReturnType<typeof setTimeout> | undefined;\n const tick = async () => {\n try {\n const res = await fetch(`${basePath}/prompts${query ? `?${query}` : \"\"}`, {\n headers: { Accept: \"application/json\" },\n });\n if (res.ok) {\n setPrompts((await res.json()) as PromptSnapshot[]);\n setStatus(\"polling\");\n }\n } catch {\n setStatus(\"connection lost — retrying\");\n }\n if (!stopped) timer = setTimeout(tick, pollMs);\n };\n void tick();\n return () => {\n stopped = true;\n if (timer) clearTimeout(timer);\n };\n }\n\n const es = new EventSource(`${basePath}/prompts/stream${query ? `?${query}` : \"\"}`);\n setStatus(\"connected\");\n es.addEventListener(\"prompts\", (e) => {\n try {\n setPrompts(JSON.parse((e as MessageEvent).data) as PromptSnapshot[]);\n } catch {\n /* ignore malformed frame */\n }\n });\n es.onerror = () => setStatus(\"connection lost — retrying\");\n return () => es.close();\n }, [owner, kind, stateFilter, labelsKey, basePath, enabled, pollMs, forcePoll]);\n\n const pending = prompts.filter((p) => p.state === \"pending\");\n return { prompts, pending, status };\n}\n"],"names":[],"mappings":";AAiDA,MAAM,eAAe;AACrB,MAAM,kBAAkB;AAExB,SAAS,iBAA0B;AACjC,SAAO,OAAO,eAAe,eAAe,OAAO,WAAW,gBAAgB;AAChF;AAEA,SAAS,YAAY,QAA8B;AACjD,QAAM,SAAS,IAAI,gBAAA;AACnB,MAAI,OAAO,MAAO,QAAO,IAAI,SAAS,OAAO,KAAK;AAClD,MAAI,OAAO,KAAM,QAAO,IAAI,QAAQ,OAAO,IAAI;AAC/C,MAAI,OAAO,MAAO,QAAO,IAAI,SAAS,OAAO,KAAK;AAClD,aAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,OAAO,UAAU,CAAA,CAAE,UAAU,OAAO,SAAS,GAAG,CAAC,IAAI,CAAC,EAAE;AAC5F,SAAO,OAAO,SAAA;AAChB;AAGA,eAAsB,aACpB,UACA,IACA,QACe;AACf,QAAM,MAAM,MAAM,MAAM,GAAG,QAAQ,YAAY,mBAAmB,EAAE,CAAC,WAAW;AAAA,IAC9E,QAAQ;AAAA,IACR,SAAS,EAAE,gBAAgB,mBAAA;AAAA,IAC3B,MAAM,KAAK,UAAU,MAAM;AAAA,EAAA,CAC5B;AACD,MAAI,CAAC,IAAI,IAAI;AACX,UAAM,IAAI,MAAO,MAAM,IAAI,UAAW,kBAAkB,IAAI,MAAM,EAAE;AAAA,EACtE;AACF;AAIO,SAAS,WAAW,UAA6B,IAAsB;AAC5E,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA,WAAW;AAAA,IACX,UAAU;AAAA,IACV,SAAS;AAAA,IACT,YAAY;AAAA,EAAA,IACV;AAEJ,QAAM,CAAC,SAAS,UAAU,IAAI,SAA2B,CAAA,CAAE;AAC3D,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,MAAM;AAE3C,QAAM,YAAY,KAAK,UAAU,UAAU,CAAA,CAAE;AAC7C,YAAU,MAAM;AACd,QAAI,CAAC,QAAS;AACd,UAAM,QAAQ,YAAY,EAAE,OAAO,MAAM,OAAO,aAAa,QAAQ;AAErE,QAAI,aAAa,CAAC,kBAAkB;AAClC,UAAI,UAAU;AACd,UAAI;AACJ,YAAM,OAAO,YAAY;AACvB,YAAI;AACF,gBAAM,MAAM,MAAM,MAAM,GAAG,QAAQ,WAAW,QAAQ,IAAI,KAAK,KAAK,EAAE,IAAI;AAAA,YACxE,SAAS,EAAE,QAAQ,mBAAA;AAAA,UAAmB,CACvC;AACD,cAAI,IAAI,IAAI;AACV,uBAAY,MAAM,IAAI,MAA2B;AACjD,sBAAU,SAAS;AAAA,UACrB;AAAA,QACF,QAAQ;AACN,oBAAU,4BAA4B;AAAA,QACxC;AACA,YAAI,CAAC,QAAS,SAAQ,WAAW,MAAM,MAAM;AAAA,MAC/C;AACA,WAAK,KAAA;AACL,aAAO,MAAM;AACX,kBAAU;AACV,YAAI,oBAAoB,KAAK;AAAA,MAC/B;AAAA,IACF;AAEA,UAAM,KAAK,IAAI,YAAY,GAAG,QAAQ,kBAAkB,QAAQ,IAAI,KAAK,KAAK,EAAE,EAAE;AAClF,cAAU,WAAW;AACrB,OAAG,iBAAiB,WAAW,CAAC,MAAM;AACpC,UAAI;AACF,mBAAW,KAAK,MAAO,EAAmB,IAAI,CAAqB;AAAA,MACrE,QAAQ;AAAA,MAER;AAAA,IACF,CAAC;AACD,OAAG,UAAU,MAAM,UAAU,4BAA4B;AACzD,WAAO,MAAM,GAAG,MAAA;AAAA,EAClB,GAAG,CAAC,OAAO,MAAM,aAAa,WAAW,UAAU,SAAS,QAAQ,SAAS,CAAC;AAE9E,QAAM,UAAU,QAAQ,OAAO,CAAC,MAAM,EAAE,UAAU,SAAS;AAC3D,SAAO,EAAE,SAAS,SAAS,OAAA;AAC7B;"}
package/dist/hooks.cjs CHANGED
@@ -7,6 +7,7 @@ const densityProvider = require("./hooks/density-provider.cjs");
7
7
  const useSort = require("./hooks/use-sort.cjs");
8
8
  const useHistoryRoute = require("./hooks/use-history-route.cjs");
9
9
  const useTaskRun = require("./hooks/use-task-run.cjs");
10
+ const usePrompts = require("./hooks/use-prompts.cjs");
10
11
  exports.useOptionalTheme = useTheme.useOptionalTheme;
11
12
  exports.useResolvedTheme = useTheme.useResolvedTheme;
12
13
  exports.useTheme = useTheme.useTheme;
@@ -19,4 +20,6 @@ exports.useSort = useSort.useSort;
19
20
  exports.useHistoryRoute = useHistoryRoute.useHistoryRoute;
20
21
  exports.useTaskRun = useTaskRun.useTaskRun;
21
22
  exports.useTaskRuns = useTaskRun.useTaskRuns;
23
+ exports.answerPrompt = usePrompts.answerPrompt;
24
+ exports.usePrompts = usePrompts.usePrompts;
22
25
  //# sourceMappingURL=hooks.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"hooks.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/hooks.d.ts CHANGED
@@ -5,4 +5,5 @@ export { DensityProvider, DensityValueProvider, type DensityProviderProps, } fro
5
5
  export { useSort, type SortDir, type SortState, type UseSortOptions, type UseSortReturn, } from './hooks/use-sort';
6
6
  export { useHistoryRoute, type UseHistoryRouteOptions } from './hooks/use-history-route';
7
7
  export { useTaskRun, useTaskRuns, type UseTaskRunOptions, type UseTaskRunResult, type UseTaskRunsOptions, type UseTaskRunsResult, type TaskTransportOptions, } from './hooks/use-task-run';
8
+ export { usePrompts, answerPrompt, type PromptSnapshot, type PromptFilter, type UsePromptsOptions, type UsePromptsResult, } from './hooks/use-prompts';
8
9
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,KAAK,EACV,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,KAAK,oBAAoB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,OAAO,EACP,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,EACL,UAAU,EACV,WAAW,EACX,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,KAAK,EACV,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,KAAK,oBAAoB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,OAAO,EACP,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,EACL,UAAU,EACV,WAAW,EACX,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,UAAU,EACV,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC"}
package/dist/hooks.js CHANGED
@@ -5,14 +5,17 @@ import { DensityProvider, DensityValueProvider } from "./hooks/density-provider.
5
5
  import { useSort } from "./hooks/use-sort.js";
6
6
  import { useHistoryRoute } from "./hooks/use-history-route.js";
7
7
  import { useTaskRun, useTaskRuns } from "./hooks/use-task-run.js";
8
+ import { answerPrompt, usePrompts } from "./hooks/use-prompts.js";
8
9
  export {
9
10
  DensityProvider,
10
11
  DensityValueProvider,
11
12
  ThemeProvider,
13
+ answerPrompt,
12
14
  useDensity,
13
15
  useDensityValue,
14
16
  useHistoryRoute,
15
17
  useOptionalTheme,
18
+ usePrompts,
16
19
  useResolvedTheme,
17
20
  useSort,
18
21
  useTaskRun,
package/dist/hooks.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
1
+ {"version":3,"file":"hooks.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
package/dist/index.cjs CHANGED
@@ -11,6 +11,7 @@ const densityProvider = require("./hooks/density-provider.cjs");
11
11
  const useSort = require("./hooks/use-sort.cjs");
12
12
  const useHistoryRoute = require("./hooks/use-history-route.cjs");
13
13
  const useTaskRun = require("./hooks/use-task-run.cjs");
14
+ const usePrompts = require("./hooks/use-prompts.cjs");
14
15
  const button = require("./components/button.cjs");
15
16
  const loading = require("./components/loading.cjs");
16
17
  const buttonVariants = require("./components/button-variants.cjs");
@@ -41,7 +42,10 @@ const SecretKeySelector = require("./components/SecretKeySelector.cjs");
41
42
  const themeSwitcher = require("./components/theme-switcher.cjs");
42
43
  const densitySwitcher = require("./components/density-switcher.cjs");
43
44
  const iconMenuPicker = require("./components/icon-menu-picker.cjs");
45
+ const ListMenu = require("./components/ListMenu.cjs");
46
+ const useListMenuSelection = require("./components/use-list-menu-selection.cjs");
44
47
  const JsonSchemaForm = require("./components/JsonSchemaForm.cjs");
48
+ const FormLookupProvider = require("./components/FormLookupProvider.cjs");
45
49
  const formLookupContext = require("./components/form-lookup-context.cjs");
46
50
  const jsonSchemaFormSize = require("./components/json-schema-form-size.cjs");
47
51
  const jsonSchemaFormPreferences = require("./components/json-schema-form-preferences.cjs");
@@ -101,12 +105,13 @@ const TimeseriesPanel = require("./data/TimeseriesPanel.cjs");
101
105
  const TimeseriesPanel_model = require("./data/TimeseriesPanel.model.cjs");
102
106
  const TimeseriesPanel_axes = require("./data/TimeseriesPanel.axes.cjs");
103
107
  const TimeseriesGauge = require("./data/TimeseriesGauge.cjs");
108
+ const ProgressBars = require("./data/ProgressBars.cjs");
109
+ const ProgressBars_model = require("./data/ProgressBars.model.cjs");
104
110
  const TimeseriesCoreBars = require("./data/TimeseriesCoreBars.cjs");
105
111
  const GaugeHoverCard = require("./data/GaugeHoverCard.cjs");
106
112
  const gaugeStats = require("./data/gauge-stats.cjs");
107
113
  const WorkloadCard = require("./data/WorkloadCard.cjs");
108
114
  const WorkloadCard_model = require("./data/WorkloadCard.model.cjs");
109
- const TimeseriesCoreBars_model = require("./data/TimeseriesCoreBars.model.cjs");
110
115
  const StatusBreakdown = require("./data/StatusBreakdown.cjs");
111
116
  const statusBreakdownUtils = require("./data/status-breakdown-utils.cjs");
112
117
  const Version = require("./data/Version.cjs");
@@ -121,6 +126,8 @@ const TaskSnapshot = require("./data/TaskSnapshot.cjs");
121
126
  const taskStatus = require("./data/task-status.cjs");
122
127
  const TaskProgress = require("./data/TaskProgress.cjs");
123
128
  const TaskManager = require("./data/TaskManager.cjs");
129
+ const PromptDialog = require("./data/PromptDialog.cjs");
130
+ const PromptBanner = require("./data/PromptBanner.cjs");
124
131
  const DiagnosticsTree = require("./data/diagnostics/DiagnosticsTree.cjs");
125
132
  const DiagnosticsDetailPanel = require("./data/diagnostics/DiagnosticsDetailPanel.cjs");
126
133
  const utils$1 = require("./data/diagnostics/utils.cjs");
@@ -476,6 +483,8 @@ exports.useSort = useSort.useSort;
476
483
  exports.useHistoryRoute = useHistoryRoute.useHistoryRoute;
477
484
  exports.useTaskRun = useTaskRun.useTaskRun;
478
485
  exports.useTaskRuns = useTaskRun.useTaskRuns;
486
+ exports.answerPrompt = usePrompts.answerPrompt;
487
+ exports.usePrompts = usePrompts.usePrompts;
479
488
  exports.Button = button.Button;
480
489
  exports.Loading = loading.Loading;
481
490
  exports.LoadingDots = loading.LoadingDots;
@@ -511,8 +520,14 @@ exports.SecretKeySelector = SecretKeySelector.SecretKeySelector;
511
520
  exports.ThemeSwitcher = themeSwitcher.ThemeSwitcher;
512
521
  exports.DensitySwitcher = densitySwitcher.DensitySwitcher;
513
522
  exports.IconMenuPicker = iconMenuPicker.IconMenuPicker;
523
+ exports.ListMenu = ListMenu.ListMenu;
524
+ exports.ListMenuActionBar = ListMenu.ListMenuActionBar;
525
+ exports.ListMenuHeader = ListMenu.ListMenuHeader;
526
+ exports.ListMenuItem = ListMenu.ListMenuItem;
527
+ exports.ListMenuSection = ListMenu.ListMenuSection;
528
+ exports.useListMenuSelection = useListMenuSelection.useListMenuSelection;
514
529
  exports.JsonSchemaForm = JsonSchemaForm.JsonSchemaForm;
515
- exports.FormLookupProvider = formLookupContext.FormLookupProvider;
530
+ exports.FormLookupProvider = FormLookupProvider.FormLookupProvider;
516
531
  exports.resolveLookupScope = formLookupContext.resolveLookupScope;
517
532
  exports.useLookupFetcher = formLookupContext.useLookupFetcher;
518
533
  exports.DEFAULT_FORM_SIZE = jsonSchemaFormSize.DEFAULT_FORM_SIZE;
@@ -605,6 +620,8 @@ exports.resolveSeries = TimeseriesPanel_model.resolveSeries;
605
620
  exports.assignAxes = TimeseriesPanel_axes.assignAxes;
606
621
  exports.latestOf = TimeseriesPanel_axes.latestOf;
607
622
  exports.TimeseriesGauge = TimeseriesGauge.TimeseriesGauge;
623
+ exports.ProgressBars = ProgressBars.ProgressBars;
624
+ exports.deriveProgressBars = ProgressBars_model.deriveProgressBars;
608
625
  exports.TimeseriesCoreBars = TimeseriesCoreBars.TimeseriesCoreBars;
609
626
  exports.GaugeHoverCard = GaugeHoverCard.GaugeHoverCard;
610
627
  exports.seriesStats = gaugeStats.seriesStats;
@@ -613,7 +630,6 @@ exports.formatReplicaCounts = WorkloadCard_model.formatReplicaCounts;
613
630
  exports.workloadKindLabel = WorkloadCard_model.workloadKindLabel;
614
631
  exports.workloadStatusLabel = WorkloadCard_model.workloadStatusLabel;
615
632
  exports.workloadStatusTone = WorkloadCard_model.workloadStatusTone;
616
- exports.deriveCoreBars = TimeseriesCoreBars_model.deriveCoreBars;
617
633
  exports.StackedStatusBar = StatusBreakdown.StackedStatusBar;
618
634
  exports.StatusRows = StatusBreakdown.StatusRows;
619
635
  exports.segment = statusBreakdownUtils.segment;
@@ -635,6 +651,8 @@ exports.taskStatusColor = taskStatus.taskStatusColor;
635
651
  exports.taskStatusIcon = taskStatus.taskStatusIcon;
636
652
  exports.TaskProgress = TaskProgress.TaskProgress;
637
653
  exports.TaskManager = TaskManager.TaskManager;
654
+ exports.PromptDialog = PromptDialog.PromptDialog;
655
+ exports.PromptBanner = PromptBanner.PromptBanner;
638
656
  exports.DiagnosticsTree = DiagnosticsTree.DiagnosticsTree;
639
657
  exports.DiagnosticsDetailPanel = DiagnosticsDetailPanel.DiagnosticsDetailPanel;
640
658
  exports.countProcesses = utils$1.countProcesses;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.js CHANGED
@@ -9,6 +9,7 @@ import { DensityProvider, DensityValueProvider } from "./hooks/density-provider.
9
9
  import { useSort } from "./hooks/use-sort.js";
10
10
  import { useHistoryRoute } from "./hooks/use-history-route.js";
11
11
  import { useTaskRun, useTaskRuns } from "./hooks/use-task-run.js";
12
+ import { answerPrompt, usePrompts } from "./hooks/use-prompts.js";
12
13
  import { Button } from "./components/button.js";
13
14
  import { Loading, LoadingDots } from "./components/loading.js";
14
15
  import { buttonVariants } from "./components/button-variants.js";
@@ -39,8 +40,11 @@ import { SecretKeySelector } from "./components/SecretKeySelector.js";
39
40
  import { ThemeSwitcher } from "./components/theme-switcher.js";
40
41
  import { DensitySwitcher } from "./components/density-switcher.js";
41
42
  import { IconMenuPicker } from "./components/icon-menu-picker.js";
43
+ import { ListMenu, ListMenuActionBar, ListMenuHeader, ListMenuItem, ListMenuSection } from "./components/ListMenu.js";
44
+ import { useListMenuSelection } from "./components/use-list-menu-selection.js";
42
45
  import { JsonSchemaForm } from "./components/JsonSchemaForm.js";
43
- import { FormLookupProvider, resolveLookupScope, useLookupFetcher } from "./components/form-lookup-context.js";
46
+ import { FormLookupProvider } from "./components/FormLookupProvider.js";
47
+ import { resolveLookupScope, useLookupFetcher } from "./components/form-lookup-context.js";
44
48
  import { DEFAULT_FORM_SIZE } from "./components/json-schema-form-size.js";
45
49
  import { DEFAULT_PREFERENCES_STORAGE_KEY, readPreferences, writePreferences } from "./components/json-schema-form-preferences.js";
46
50
  import { effectiveProperties, isOpenStringMap, matchesIf, resolveControl } from "./components/json-schema-form-resolve.js";
@@ -99,12 +103,13 @@ import { TimeseriesPanel } from "./data/TimeseriesPanel.js";
99
103
  import { mergeSeries, resolveBreakdown, resolveSeries } from "./data/TimeseriesPanel.model.js";
100
104
  import { assignAxes, latestOf } from "./data/TimeseriesPanel.axes.js";
101
105
  import { TimeseriesGauge } from "./data/TimeseriesGauge.js";
106
+ import { ProgressBars } from "./data/ProgressBars.js";
107
+ import { deriveProgressBars } from "./data/ProgressBars.model.js";
102
108
  import { TimeseriesCoreBars } from "./data/TimeseriesCoreBars.js";
103
109
  import { GaugeHoverCard } from "./data/GaugeHoverCard.js";
104
110
  import { seriesStats } from "./data/gauge-stats.js";
105
111
  import { WorkloadCard } from "./data/WorkloadCard.js";
106
112
  import { formatReplicaCounts, workloadKindLabel, workloadStatusLabel, workloadStatusTone } from "./data/WorkloadCard.model.js";
107
- import { deriveCoreBars } from "./data/TimeseriesCoreBars.model.js";
108
113
  import { StackedStatusBar, StatusRows } from "./data/StatusBreakdown.js";
109
114
  import { segment } from "./data/status-breakdown-utils.js";
110
115
  import { Version } from "./data/Version.js";
@@ -119,6 +124,8 @@ import { allGroupsTerminal, isTerminalStatus } from "./data/TaskSnapshot.js";
119
124
  import { bucketTasks, logLevelColor, taskSegments, taskStatusBg, taskStatusColor, taskStatusIcon } from "./data/task-status.js";
120
125
  import { TaskProgress } from "./data/TaskProgress.js";
121
126
  import { TaskManager } from "./data/TaskManager.js";
127
+ import { PromptDialog } from "./data/PromptDialog.js";
128
+ import { PromptBanner } from "./data/PromptBanner.js";
122
129
  import { DiagnosticsTree } from "./data/diagnostics/DiagnosticsTree.js";
123
130
  import { DiagnosticsDetailPanel } from "./data/diagnostics/DiagnosticsDetailPanel.js";
124
131
  import { countProcesses, findProcessByPID, processLabel, processStateColor, processStateIcon } from "./data/diagnostics/utils.js";
@@ -532,6 +539,11 @@ export {
532
539
  JvmStackTrace,
533
540
  KeyValueList,
534
541
  LabelIcon,
542
+ ListMenu,
543
+ ListMenuActionBar,
544
+ ListMenuHeader,
545
+ ListMenuItem,
546
+ ListMenuSection,
535
547
  Loading,
536
548
  LoadingDots,
537
549
  LogViewer,
@@ -555,6 +567,9 @@ export {
555
567
  Panel,
556
568
  PrettyStackTrace,
557
569
  ProgressBar,
570
+ ProgressBars,
571
+ PromptBanner,
572
+ PromptDialog,
558
573
  Properties,
559
574
  RadialGauge,
560
575
  RangeSlider,
@@ -1105,6 +1120,7 @@ export {
1105
1120
  WorkloadPicker,
1106
1121
  allGroupsTerminal,
1107
1122
  annotateRoutePaths,
1123
+ answerPrompt,
1108
1124
  applyCommentFilters,
1109
1125
  applyFilterExtensions,
1110
1126
  assignAxes,
@@ -1141,7 +1157,7 @@ export {
1141
1157
  defaultStatusValue,
1142
1158
  deriveAnchorCounts,
1143
1159
  deriveAnchorMeta,
1144
- deriveCoreBars,
1160
+ deriveProgressBars,
1145
1161
  detectDumpFormat,
1146
1162
  dottedAnchorResolver,
1147
1163
  effectiveProperties,
@@ -1258,6 +1274,7 @@ export {
1258
1274
  useDensityValue,
1259
1275
  useForm,
1260
1276
  useHistoryRoute,
1277
+ useListMenuSelection,
1261
1278
  useLookupFetcher,
1262
1279
  useMemoryRouter,
1263
1280
  useModalStack,
@@ -1265,6 +1282,7 @@ export {
1265
1282
  useOperationById,
1266
1283
  useOperations,
1267
1284
  useOptionalTheme,
1285
+ usePrompts,
1268
1286
  useResolvedTheme,
1269
1287
  useRouter,
1270
1288
  useSort,