@flanksource/clicky-ui 0.3.15 → 0.3.16

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 (754) hide show
  1. package/NOTICE.md +10 -0
  2. package/dist/ai.cjs +33 -4
  3. package/dist/ai.cjs.map +1 -1
  4. package/dist/ai.js +31 -2
  5. package/dist/ai.js.map +1 -1
  6. package/dist/chat.cjs +6 -0
  7. package/dist/chat.cjs.map +1 -1
  8. package/dist/chat.js +7 -1
  9. package/dist/chat.js.map +1 -1
  10. package/dist/components/Combobox.cjs +92 -170
  11. package/dist/components/Combobox.cjs.map +1 -1
  12. package/dist/components/Combobox.d.ts +2 -111
  13. package/dist/components/Combobox.d.ts.map +1 -1
  14. package/dist/components/Combobox.js +95 -173
  15. package/dist/components/Combobox.js.map +1 -1
  16. package/dist/components/ComboboxActions.cjs +70 -0
  17. package/dist/components/ComboboxActions.cjs.map +1 -0
  18. package/dist/components/ComboboxActions.d.ts +8 -0
  19. package/dist/components/ComboboxActions.d.ts.map +1 -0
  20. package/dist/components/ComboboxActions.js +70 -0
  21. package/dist/components/ComboboxActions.js.map +1 -0
  22. package/dist/components/ComboboxMenu.cjs +160 -0
  23. package/dist/components/ComboboxMenu.cjs.map +1 -0
  24. package/dist/components/ComboboxMenu.d.ts +22 -0
  25. package/dist/components/ComboboxMenu.d.ts.map +1 -0
  26. package/dist/components/ComboboxMenu.js +160 -0
  27. package/dist/components/ComboboxMenu.js.map +1 -0
  28. package/dist/components/EndpointSelector.cjs +407 -0
  29. package/dist/components/EndpointSelector.cjs.map +1 -0
  30. package/dist/components/EndpointSelector.d.ts +3 -0
  31. package/dist/components/EndpointSelector.d.ts.map +1 -0
  32. package/dist/components/EndpointSelector.js +407 -0
  33. package/dist/components/EndpointSelector.js.map +1 -0
  34. package/dist/components/EndpointSelector.model.d.ts +52 -0
  35. package/dist/components/EndpointSelector.model.d.ts.map +1 -0
  36. package/dist/components/FilterBar.cjs +12 -0
  37. package/dist/components/FilterBar.cjs.map +1 -1
  38. package/dist/components/FilterBar.d.ts +4 -0
  39. package/dist/components/FilterBar.d.ts.map +1 -1
  40. package/dist/components/FilterBar.js +12 -0
  41. package/dist/components/FilterBar.js.map +1 -1
  42. package/dist/components/InputField.cjs +11 -12
  43. package/dist/components/InputField.cjs.map +1 -1
  44. package/dist/components/InputField.d.ts +7 -0
  45. package/dist/components/InputField.d.ts.map +1 -1
  46. package/dist/components/InputField.js +12 -13
  47. package/dist/components/InputField.js.map +1 -1
  48. package/dist/components/JsonSchemaForm.cjs +22 -16
  49. package/dist/components/JsonSchemaForm.cjs.map +1 -1
  50. package/dist/components/JsonSchemaForm.d.ts +1 -1
  51. package/dist/components/JsonSchemaForm.d.ts.map +1 -1
  52. package/dist/components/JsonSchemaForm.js +22 -16
  53. package/dist/components/JsonSchemaForm.js.map +1 -1
  54. package/dist/components/MultiSelect.cjs +3 -3
  55. package/dist/components/MultiSelect.cjs.map +1 -1
  56. package/dist/components/MultiSelect.d.ts.map +1 -1
  57. package/dist/components/MultiSelect.js +3 -3
  58. package/dist/components/MultiSelect.js.map +1 -1
  59. package/dist/components/SecretKeySelector.cjs +150 -77
  60. package/dist/components/SecretKeySelector.cjs.map +1 -1
  61. package/dist/components/SecretKeySelector.d.ts.map +1 -1
  62. package/dist/components/SecretKeySelector.js +151 -78
  63. package/dist/components/SecretKeySelector.js.map +1 -1
  64. package/dist/components/WorkloadPicker.cjs +2 -1
  65. package/dist/components/WorkloadPicker.cjs.map +1 -1
  66. package/dist/components/WorkloadPicker.d.ts +6 -1
  67. package/dist/components/WorkloadPicker.d.ts.map +1 -1
  68. package/dist/components/WorkloadPicker.js +2 -1
  69. package/dist/components/WorkloadPicker.js.map +1 -1
  70. package/dist/components/combobox-types.d.ts +107 -0
  71. package/dist/components/combobox-types.d.ts.map +1 -0
  72. package/dist/components/combobox-utils.cjs +21 -0
  73. package/dist/components/combobox-utils.cjs.map +1 -0
  74. package/dist/components/combobox-utils.d.ts +15 -0
  75. package/dist/components/combobox-utils.d.ts.map +1 -0
  76. package/dist/components/combobox-utils.js +21 -0
  77. package/dist/components/combobox-utils.js.map +1 -0
  78. package/dist/components/endpoint-port.cjs +12 -0
  79. package/dist/components/endpoint-port.cjs.map +1 -0
  80. package/dist/components/endpoint-port.d.ts +4 -0
  81. package/dist/components/endpoint-port.d.ts.map +1 -0
  82. package/dist/components/endpoint-port.js +12 -0
  83. package/dist/components/endpoint-port.js.map +1 -0
  84. package/dist/components/json-schema-form-array.cjs +12 -23
  85. package/dist/components/json-schema-form-array.cjs.map +1 -1
  86. package/dist/components/json-schema-form-array.d.ts +1 -1
  87. package/dist/components/json-schema-form-array.d.ts.map +1 -1
  88. package/dist/components/json-schema-form-array.js +12 -23
  89. package/dist/components/json-schema-form-array.js.map +1 -1
  90. package/dist/components/json-schema-form-discriminator.cjs +6 -2
  91. package/dist/components/json-schema-form-discriminator.cjs.map +1 -1
  92. package/dist/components/json-schema-form-discriminator.d.ts.map +1 -1
  93. package/dist/components/json-schema-form-discriminator.js +6 -2
  94. package/dist/components/json-schema-form-discriminator.js.map +1 -1
  95. package/dist/components/json-schema-form-error-display.cjs +50 -0
  96. package/dist/components/json-schema-form-error-display.cjs.map +1 -0
  97. package/dist/components/json-schema-form-error-display.d.ts +12 -0
  98. package/dist/components/json-schema-form-error-display.d.ts.map +1 -0
  99. package/dist/components/json-schema-form-error-display.js +50 -0
  100. package/dist/components/json-schema-form-error-display.js.map +1 -0
  101. package/dist/components/json-schema-form-error-types.d.ts +26 -0
  102. package/dist/components/json-schema-form-error-types.d.ts.map +1 -0
  103. package/dist/components/json-schema-form-errors.cjs +169 -0
  104. package/dist/components/json-schema-form-errors.cjs.map +1 -0
  105. package/dist/components/json-schema-form-errors.d.ts +14 -0
  106. package/dist/components/json-schema-form-errors.d.ts.map +1 -0
  107. package/dist/components/json-schema-form-errors.js +169 -0
  108. package/dist/components/json-schema-form-errors.js.map +1 -0
  109. package/dist/components/json-schema-form-object.cjs +12 -2
  110. package/dist/components/json-schema-form-object.cjs.map +1 -1
  111. package/dist/components/json-schema-form-object.d.ts.map +1 -1
  112. package/dist/components/json-schema-form-object.js +12 -2
  113. package/dist/components/json-schema-form-object.js.map +1 -1
  114. package/dist/components/json-schema-form-refs.cjs +84 -19
  115. package/dist/components/json-schema-form-refs.cjs.map +1 -1
  116. package/dist/components/json-schema-form-refs.d.ts.map +1 -1
  117. package/dist/components/json-schema-form-refs.js +84 -19
  118. package/dist/components/json-schema-form-refs.js.map +1 -1
  119. package/dist/components/json-schema-form-render.cjs +33 -10
  120. package/dist/components/json-schema-form-render.cjs.map +1 -1
  121. package/dist/components/json-schema-form-render.d.ts.map +1 -1
  122. package/dist/components/json-schema-form-render.js +34 -11
  123. package/dist/components/json-schema-form-render.js.map +1 -1
  124. package/dist/components/json-schema-form-resolve.cjs +16 -4
  125. package/dist/components/json-schema-form-resolve.cjs.map +1 -1
  126. package/dist/components/json-schema-form-resolve.d.ts +1 -0
  127. package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
  128. package/dist/components/json-schema-form-resolve.js +17 -5
  129. package/dist/components/json-schema-form-resolve.js.map +1 -1
  130. package/dist/components/json-schema-form-types.d.ts +4 -3
  131. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  132. package/dist/components.cjs +13 -0
  133. package/dist/components.cjs.map +1 -1
  134. package/dist/components.d.ts +8 -1
  135. package/dist/components.d.ts.map +1 -1
  136. package/dist/components.js +15 -2
  137. package/dist/components.js.map +1 -1
  138. package/dist/data/DataTable.cjs +177 -6
  139. package/dist/data/DataTable.cjs.map +1 -1
  140. package/dist/data/DataTable.d.ts +39 -0
  141. package/dist/data/DataTable.d.ts.map +1 -1
  142. package/dist/data/DataTable.grouping.cjs +21 -0
  143. package/dist/data/DataTable.grouping.cjs.map +1 -0
  144. package/dist/data/DataTable.grouping.d.ts +26 -0
  145. package/dist/data/DataTable.grouping.d.ts.map +1 -0
  146. package/dist/data/DataTable.grouping.js +21 -0
  147. package/dist/data/DataTable.grouping.js.map +1 -0
  148. package/dist/data/DataTable.js +177 -6
  149. package/dist/data/DataTable.js.map +1 -1
  150. package/dist/data/Markdown.cjs +45 -1
  151. package/dist/data/Markdown.cjs.map +1 -1
  152. package/dist/data/Markdown.d.ts +3 -2
  153. package/dist/data/Markdown.d.ts.map +1 -1
  154. package/dist/data/Markdown.js +45 -1
  155. package/dist/data/Markdown.js.map +1 -1
  156. package/dist/data/MarkdownEditor.cjs +4 -3
  157. package/dist/data/MarkdownEditor.cjs.map +1 -1
  158. package/dist/data/MarkdownEditor.d.ts +6 -2
  159. package/dist/data/MarkdownEditor.d.ts.map +1 -1
  160. package/dist/data/MarkdownEditor.js +4 -3
  161. package/dist/data/MarkdownEditor.js.map +1 -1
  162. package/dist/data/StatStrip.cjs +99 -0
  163. package/dist/data/StatStrip.cjs.map +1 -0
  164. package/dist/data/StatStrip.d.ts +41 -0
  165. package/dist/data/StatStrip.d.ts.map +1 -0
  166. package/dist/data/StatStrip.js +99 -0
  167. package/dist/data/StatStrip.js.map +1 -0
  168. package/dist/data/TaskManager.cjs +20 -1
  169. package/dist/data/TaskManager.cjs.map +1 -1
  170. package/dist/data/TaskManager.d.ts +3 -1
  171. package/dist/data/TaskManager.d.ts.map +1 -1
  172. package/dist/data/TaskManager.js +20 -1
  173. package/dist/data/TaskManager.js.map +1 -1
  174. package/dist/data/TaskManagerButton.cjs +49 -0
  175. package/dist/data/TaskManagerButton.cjs.map +1 -0
  176. package/dist/data/TaskManagerButton.d.ts +8 -0
  177. package/dist/data/TaskManagerButton.d.ts.map +1 -0
  178. package/dist/data/TaskManagerButton.js +49 -0
  179. package/dist/data/TaskManagerButton.js.map +1 -0
  180. package/dist/data/TaskProcessDetails.cjs +113 -0
  181. package/dist/data/TaskProcessDetails.cjs.map +1 -0
  182. package/dist/data/TaskProcessDetails.d.ts +6 -0
  183. package/dist/data/TaskProcessDetails.d.ts.map +1 -0
  184. package/dist/data/TaskProcessDetails.js +113 -0
  185. package/dist/data/TaskProcessDetails.js.map +1 -0
  186. package/dist/data/TaskProgress.cjs +106 -19
  187. package/dist/data/TaskProgress.cjs.map +1 -1
  188. package/dist/data/TaskProgress.d.ts +4 -2
  189. package/dist/data/TaskProgress.d.ts.map +1 -1
  190. package/dist/data/TaskProgress.js +107 -20
  191. package/dist/data/TaskProgress.js.map +1 -1
  192. package/dist/data/TaskSnapshot.cjs.map +1 -1
  193. package/dist/data/TaskSnapshot.d.ts +43 -0
  194. package/dist/data/TaskSnapshot.d.ts.map +1 -1
  195. package/dist/data/TaskSnapshot.js.map +1 -1
  196. package/dist/data/Tree.cjs +91 -82
  197. package/dist/data/Tree.cjs.map +1 -1
  198. package/dist/data/Tree.d.ts +3 -1
  199. package/dist/data/Tree.d.ts.map +1 -1
  200. package/dist/data/Tree.js +91 -82
  201. package/dist/data/Tree.js.map +1 -1
  202. package/dist/data/TreeNode.cjs +3 -0
  203. package/dist/data/TreeNode.cjs.map +1 -1
  204. package/dist/data/TreeNode.d.ts +2 -1
  205. package/dist/data/TreeNode.d.ts.map +1 -1
  206. package/dist/data/TreeNode.js +3 -0
  207. package/dist/data/TreeNode.js.map +1 -1
  208. package/dist/data/ai/ChatWindow.cjs +9 -140
  209. package/dist/data/ai/ChatWindow.cjs.map +1 -1
  210. package/dist/data/ai/ChatWindow.d.ts +2 -40
  211. package/dist/data/ai/ChatWindow.d.ts.map +1 -1
  212. package/dist/data/ai/ChatWindow.js +6 -137
  213. package/dist/data/ai/ChatWindow.js.map +1 -1
  214. package/dist/data/ai/ChatWindow.models.cjs +11 -0
  215. package/dist/data/ai/ChatWindow.models.cjs.map +1 -0
  216. package/dist/data/ai/ChatWindow.models.d.ts +3 -0
  217. package/dist/data/ai/ChatWindow.models.d.ts.map +1 -0
  218. package/dist/data/ai/ChatWindow.models.js +11 -0
  219. package/dist/data/ai/ChatWindow.models.js.map +1 -0
  220. package/dist/data/ai/ChatWindow.preferences.cjs +57 -0
  221. package/dist/data/ai/ChatWindow.preferences.cjs.map +1 -0
  222. package/dist/data/ai/ChatWindow.preferences.d.ts +13 -0
  223. package/dist/data/ai/ChatWindow.preferences.d.ts.map +1 -0
  224. package/dist/data/ai/ChatWindow.preferences.js +57 -0
  225. package/dist/data/ai/ChatWindow.preferences.js.map +1 -0
  226. package/dist/data/ai/ChatWindow.tool-catalog.cjs +99 -0
  227. package/dist/data/ai/ChatWindow.tool-catalog.cjs.map +1 -0
  228. package/dist/data/ai/ChatWindow.tool-catalog.d.ts +3 -0
  229. package/dist/data/ai/ChatWindow.tool-catalog.d.ts.map +1 -0
  230. package/dist/data/ai/ChatWindow.tool-catalog.js +99 -0
  231. package/dist/data/ai/ChatWindow.tool-catalog.js.map +1 -0
  232. package/dist/data/ai/ChatWindow.types.d.ts +41 -0
  233. package/dist/data/ai/ChatWindow.types.d.ts.map +1 -0
  234. package/dist/data/ai/ContextBadges.cjs +76 -46
  235. package/dist/data/ai/ContextBadges.cjs.map +1 -1
  236. package/dist/data/ai/ContextBadges.d.ts.map +1 -1
  237. package/dist/data/ai/ContextBadges.js +77 -47
  238. package/dist/data/ai/ContextBadges.js.map +1 -1
  239. package/dist/data/ai/PromptPicker/PromptPicker.cjs +151 -32
  240. package/dist/data/ai/PromptPicker/PromptPicker.cjs.map +1 -1
  241. package/dist/data/ai/PromptPicker/PromptPicker.d.ts +7 -4
  242. package/dist/data/ai/PromptPicker/PromptPicker.d.ts.map +1 -1
  243. package/dist/data/ai/PromptPicker/PromptPicker.js +152 -33
  244. package/dist/data/ai/PromptPicker/PromptPicker.js.map +1 -1
  245. package/dist/data/ai/PromptPicker/PromptSourceRepair.cjs +133 -0
  246. package/dist/data/ai/PromptPicker/PromptSourceRepair.cjs.map +1 -0
  247. package/dist/data/ai/PromptPicker/PromptSourceRepair.d.ts +11 -0
  248. package/dist/data/ai/PromptPicker/PromptSourceRepair.d.ts.map +1 -0
  249. package/dist/data/ai/PromptPicker/PromptSourceRepair.js +133 -0
  250. package/dist/data/ai/PromptPicker/PromptSourceRepair.js.map +1 -0
  251. package/dist/data/ai/PromptPicker/index.d.ts +2 -1
  252. package/dist/data/ai/PromptPicker/index.d.ts.map +1 -1
  253. package/dist/data/ai/PromptPicker/types.cjs +7 -0
  254. package/dist/data/ai/PromptPicker/types.cjs.map +1 -0
  255. package/dist/data/ai/PromptPicker/types.d.ts +18 -2
  256. package/dist/data/ai/PromptPicker/types.d.ts.map +1 -1
  257. package/dist/data/ai/PromptPicker/types.js +7 -0
  258. package/dist/data/ai/PromptPicker/types.js.map +1 -0
  259. package/dist/data/ai/PromptRunEditor/index.cjs +82 -14
  260. package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
  261. package/dist/data/ai/PromptRunEditor/index.d.ts +5 -1
  262. package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
  263. package/dist/data/ai/PromptRunEditor/index.js +83 -15
  264. package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
  265. package/dist/data/ai/RuntimeBar.cjs +336 -0
  266. package/dist/data/ai/RuntimeBar.cjs.map +1 -0
  267. package/dist/data/ai/RuntimeBar.d.ts +27 -0
  268. package/dist/data/ai/RuntimeBar.d.ts.map +1 -0
  269. package/dist/data/ai/RuntimeBar.js +336 -0
  270. package/dist/data/ai/RuntimeBar.js.map +1 -0
  271. package/dist/data/ai/SessionChatComposer.cjs +56 -0
  272. package/dist/data/ai/SessionChatComposer.cjs.map +1 -0
  273. package/dist/data/ai/SessionChatComposer.d.ts +24 -0
  274. package/dist/data/ai/SessionChatComposer.d.ts.map +1 -0
  275. package/dist/data/ai/SessionChatComposer.js +56 -0
  276. package/dist/data/ai/SessionChatComposer.js.map +1 -0
  277. package/dist/data/ai/SessionInspector.cjs +222 -382
  278. package/dist/data/ai/SessionInspector.cjs.map +1 -1
  279. package/dist/data/ai/SessionInspector.collection-types.d.ts +55 -0
  280. package/dist/data/ai/SessionInspector.collection-types.d.ts.map +1 -0
  281. package/dist/data/ai/SessionInspector.collection.cjs +377 -0
  282. package/dist/data/ai/SessionInspector.collection.cjs.map +1 -0
  283. package/dist/data/ai/SessionInspector.collection.d.ts +15 -0
  284. package/dist/data/ai/SessionInspector.collection.d.ts.map +1 -0
  285. package/dist/data/ai/SessionInspector.collection.js +377 -0
  286. package/dist/data/ai/SessionInspector.collection.js.map +1 -0
  287. package/dist/data/ai/SessionInspector.d.ts +9 -4
  288. package/dist/data/ai/SessionInspector.d.ts.map +1 -1
  289. package/dist/data/ai/SessionInspector.files.cjs +162 -0
  290. package/dist/data/ai/SessionInspector.files.cjs.map +1 -0
  291. package/dist/data/ai/SessionInspector.files.d.ts +5 -0
  292. package/dist/data/ai/SessionInspector.files.d.ts.map +1 -0
  293. package/dist/data/ai/SessionInspector.files.js +162 -0
  294. package/dist/data/ai/SessionInspector.files.js.map +1 -0
  295. package/dist/data/ai/SessionInspector.hierarchy-state.cjs +148 -0
  296. package/dist/data/ai/SessionInspector.hierarchy-state.cjs.map +1 -0
  297. package/dist/data/ai/SessionInspector.hierarchy-state.d.ts +15 -0
  298. package/dist/data/ai/SessionInspector.hierarchy-state.d.ts.map +1 -0
  299. package/dist/data/ai/SessionInspector.hierarchy-state.js +148 -0
  300. package/dist/data/ai/SessionInspector.hierarchy-state.js.map +1 -0
  301. package/dist/data/ai/SessionInspector.hierarchy.cjs +256 -0
  302. package/dist/data/ai/SessionInspector.hierarchy.cjs.map +1 -0
  303. package/dist/data/ai/SessionInspector.hierarchy.d.ts +9 -0
  304. package/dist/data/ai/SessionInspector.hierarchy.d.ts.map +1 -0
  305. package/dist/data/ai/SessionInspector.hierarchy.js +256 -0
  306. package/dist/data/ai/SessionInspector.hierarchy.js.map +1 -0
  307. package/dist/data/ai/SessionInspector.js +224 -384
  308. package/dist/data/ai/SessionInspector.js.map +1 -1
  309. package/dist/data/ai/SessionInspector.model.cjs +125 -0
  310. package/dist/data/ai/SessionInspector.model.cjs.map +1 -0
  311. package/dist/data/ai/SessionInspector.model.d.ts +14 -0
  312. package/dist/data/ai/SessionInspector.model.d.ts.map +1 -0
  313. package/dist/data/ai/SessionInspector.model.js +125 -0
  314. package/dist/data/ai/SessionInspector.model.js.map +1 -0
  315. package/dist/data/ai/SessionInspector.panels.cjs +265 -0
  316. package/dist/data/ai/SessionInspector.panels.cjs.map +1 -0
  317. package/dist/data/ai/SessionInspector.panels.d.ts +10 -0
  318. package/dist/data/ai/SessionInspector.panels.d.ts.map +1 -0
  319. package/dist/data/ai/SessionInspector.panels.js +265 -0
  320. package/dist/data/ai/SessionInspector.panels.js.map +1 -0
  321. package/dist/data/ai/SessionInspector.plan.cjs +77 -0
  322. package/dist/data/ai/SessionInspector.plan.cjs.map +1 -0
  323. package/dist/data/ai/SessionInspector.plan.d.ts +6 -0
  324. package/dist/data/ai/SessionInspector.plan.d.ts.map +1 -0
  325. package/dist/data/ai/SessionInspector.plan.js +77 -0
  326. package/dist/data/ai/SessionInspector.plan.js.map +1 -0
  327. package/dist/data/ai/SessionInspector.summary.cjs +182 -0
  328. package/dist/data/ai/SessionInspector.summary.cjs.map +1 -0
  329. package/dist/data/ai/SessionInspector.summary.d.ts +8 -0
  330. package/dist/data/ai/SessionInspector.summary.d.ts.map +1 -0
  331. package/dist/data/ai/SessionInspector.summary.js +182 -0
  332. package/dist/data/ai/SessionInspector.summary.js.map +1 -0
  333. package/dist/data/ai/SessionInspector.transcript.cjs +94 -0
  334. package/dist/data/ai/SessionInspector.transcript.cjs.map +1 -0
  335. package/dist/data/ai/SessionInspector.transcript.d.ts +7 -0
  336. package/dist/data/ai/SessionInspector.transcript.d.ts.map +1 -0
  337. package/dist/data/ai/SessionInspector.transcript.js +94 -0
  338. package/dist/data/ai/SessionInspector.transcript.js.map +1 -0
  339. package/dist/data/ai/SessionInspector.turns.d.ts +11 -0
  340. package/dist/data/ai/SessionInspector.turns.d.ts.map +1 -0
  341. package/dist/data/ai/SessionViewer.cjs +86 -121
  342. package/dist/data/ai/SessionViewer.cjs.map +1 -1
  343. package/dist/data/ai/SessionViewer.d.ts +8 -1
  344. package/dist/data/ai/SessionViewer.d.ts.map +1 -1
  345. package/dist/data/ai/SessionViewer.fixtures.d.ts +2 -0
  346. package/dist/data/ai/SessionViewer.fixtures.d.ts.map +1 -1
  347. package/dist/data/ai/SessionViewer.header.cjs +110 -0
  348. package/dist/data/ai/SessionViewer.header.cjs.map +1 -0
  349. package/dist/data/ai/SessionViewer.header.d.ts +11 -0
  350. package/dist/data/ai/SessionViewer.header.d.ts.map +1 -0
  351. package/dist/data/ai/SessionViewer.header.js +110 -0
  352. package/dist/data/ai/SessionViewer.header.js.map +1 -0
  353. package/dist/data/ai/SessionViewer.js +87 -122
  354. package/dist/data/ai/SessionViewer.js.map +1 -1
  355. package/dist/data/ai/SessionViewer.model.cjs +109 -39
  356. package/dist/data/ai/SessionViewer.model.cjs.map +1 -1
  357. package/dist/data/ai/SessionViewer.model.d.ts +2 -0
  358. package/dist/data/ai/SessionViewer.model.d.ts.map +1 -1
  359. package/dist/data/ai/SessionViewer.model.js +109 -39
  360. package/dist/data/ai/SessionViewer.model.js.map +1 -1
  361. package/dist/data/ai/SessionViewer.row-metadata.cjs +132 -0
  362. package/dist/data/ai/SessionViewer.row-metadata.cjs.map +1 -0
  363. package/dist/data/ai/SessionViewer.row-metadata.d.ts +14 -0
  364. package/dist/data/ai/SessionViewer.row-metadata.d.ts.map +1 -0
  365. package/dist/data/ai/SessionViewer.row-metadata.js +132 -0
  366. package/dist/data/ai/SessionViewer.row-metadata.js.map +1 -0
  367. package/dist/data/ai/SessionViewer.row-time.cjs +15 -0
  368. package/dist/data/ai/SessionViewer.row-time.cjs.map +1 -0
  369. package/dist/data/ai/SessionViewer.row-time.d.ts +3 -0
  370. package/dist/data/ai/SessionViewer.row-time.d.ts.map +1 -0
  371. package/dist/data/ai/SessionViewer.row-time.js +15 -0
  372. package/dist/data/ai/SessionViewer.row-time.js.map +1 -0
  373. package/dist/data/ai/SessionViewer.rows.cjs +37 -424
  374. package/dist/data/ai/SessionViewer.rows.cjs.map +1 -1
  375. package/dist/data/ai/SessionViewer.rows.d.ts +5 -2
  376. package/dist/data/ai/SessionViewer.rows.d.ts.map +1 -1
  377. package/dist/data/ai/SessionViewer.rows.js +31 -418
  378. package/dist/data/ai/SessionViewer.rows.js.map +1 -1
  379. package/dist/data/ai/SessionViewer.tool-details.cjs +65 -0
  380. package/dist/data/ai/SessionViewer.tool-details.cjs.map +1 -0
  381. package/dist/data/ai/SessionViewer.tool-details.d.ts +20 -0
  382. package/dist/data/ai/SessionViewer.tool-details.d.ts.map +1 -0
  383. package/dist/data/ai/SessionViewer.tool-details.js +65 -0
  384. package/dist/data/ai/SessionViewer.tool-details.js.map +1 -0
  385. package/dist/data/ai/SessionViewer.tool-row.cjs +404 -0
  386. package/dist/data/ai/SessionViewer.tool-row.cjs.map +1 -0
  387. package/dist/data/ai/SessionViewer.tool-row.d.ts +12 -0
  388. package/dist/data/ai/SessionViewer.tool-row.d.ts.map +1 -0
  389. package/dist/data/ai/SessionViewer.tool-row.js +404 -0
  390. package/dist/data/ai/SessionViewer.tool-row.js.map +1 -0
  391. package/dist/data/ai/SessionViewer.unified.d.ts +10 -2
  392. package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -1
  393. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs +44 -26
  394. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs.map +1 -1
  395. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts.map +1 -1
  396. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js +47 -29
  397. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js.map +1 -1
  398. package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs +45 -153
  399. package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs.map +1 -1
  400. package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts.map +1 -1
  401. package/dist/data/ai/SpecRuntimeEditor/ModelSection.js +51 -159
  402. package/dist/data/ai/SpecRuntimeEditor/ModelSection.js.map +1 -1
  403. package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs +0 -1
  404. package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs.map +1 -1
  405. package/dist/data/ai/SpecRuntimeEditor/PromptSection.d.ts.map +1 -1
  406. package/dist/data/ai/SpecRuntimeEditor/PromptSection.js +0 -1
  407. package/dist/data/ai/SpecRuntimeEditor/PromptSection.js.map +1 -1
  408. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.cjs +0 -5
  409. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.cjs.map +1 -1
  410. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.d.ts.map +1 -1
  411. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.js +0 -5
  412. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.js.map +1 -1
  413. package/dist/data/ai/SpecRuntimeEditor/summaries.cjs.map +1 -1
  414. package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts.map +1 -1
  415. package/dist/data/ai/SpecRuntimeEditor/summaries.js.map +1 -1
  416. package/dist/data/ai/SpecRuntimeEditor/update.cjs +19 -6
  417. package/dist/data/ai/SpecRuntimeEditor/update.cjs.map +1 -1
  418. package/dist/data/ai/SpecRuntimeEditor/update.d.ts +5 -2
  419. package/dist/data/ai/SpecRuntimeEditor/update.d.ts.map +1 -1
  420. package/dist/data/ai/SpecRuntimeEditor/update.js +19 -6
  421. package/dist/data/ai/SpecRuntimeEditor/update.js.map +1 -1
  422. package/dist/data/ai/SpecRuntimeEditor.model.cjs +67 -10
  423. package/dist/data/ai/SpecRuntimeEditor.model.cjs.map +1 -1
  424. package/dist/data/ai/SpecRuntimeEditor.model.d.ts +31 -4
  425. package/dist/data/ai/SpecRuntimeEditor.model.d.ts.map +1 -1
  426. package/dist/data/ai/SpecRuntimeEditor.model.js +67 -10
  427. package/dist/data/ai/SpecRuntimeEditor.model.js.map +1 -1
  428. package/dist/data/ai/ToolPreferences.cjs +2 -1
  429. package/dist/data/ai/ToolPreferences.cjs.map +1 -1
  430. package/dist/data/ai/ToolPreferences.d.ts.map +1 -1
  431. package/dist/data/ai/ToolPreferences.js +2 -1
  432. package/dist/data/ai/ToolPreferences.js.map +1 -1
  433. package/dist/data/ai/agent-action-icons.cjs +7 -10
  434. package/dist/data/ai/agent-action-icons.cjs.map +1 -1
  435. package/dist/data/ai/agent-action-icons.d.ts +1 -2
  436. package/dist/data/ai/agent-action-icons.d.ts.map +1 -1
  437. package/dist/data/ai/agent-action-icons.js +8 -11
  438. package/dist/data/ai/agent-action-icons.js.map +1 -1
  439. package/dist/data/ai/context.cjs.map +1 -1
  440. package/dist/data/ai/context.d.ts +4 -0
  441. package/dist/data/ai/context.d.ts.map +1 -1
  442. package/dist/data/ai/context.js.map +1 -1
  443. package/dist/data/ai/examples/sessions/claude-complete.cjs +513 -0
  444. package/dist/data/ai/examples/sessions/claude-complete.cjs.map +1 -0
  445. package/dist/data/ai/examples/sessions/claude-complete.d.ts +3 -0
  446. package/dist/data/ai/examples/sessions/claude-complete.d.ts.map +1 -0
  447. package/dist/data/ai/examples/sessions/claude-complete.js +513 -0
  448. package/dist/data/ai/examples/sessions/claude-complete.js.map +1 -0
  449. package/dist/data/ai/examples/sessions/claude.cjs +252 -0
  450. package/dist/data/ai/examples/sessions/claude.cjs.map +1 -0
  451. package/dist/data/ai/examples/sessions/claude.d.ts +3 -0
  452. package/dist/data/ai/examples/sessions/claude.d.ts.map +1 -0
  453. package/dist/data/ai/examples/sessions/claude.js +252 -0
  454. package/dist/data/ai/examples/sessions/claude.js.map +1 -0
  455. package/dist/data/ai/examples/sessions/codex-complete.cjs +394 -0
  456. package/dist/data/ai/examples/sessions/codex-complete.cjs.map +1 -0
  457. package/dist/data/ai/examples/sessions/codex-complete.d.ts +3 -0
  458. package/dist/data/ai/examples/sessions/codex-complete.d.ts.map +1 -0
  459. package/dist/data/ai/examples/sessions/codex-complete.js +394 -0
  460. package/dist/data/ai/examples/sessions/codex-complete.js.map +1 -0
  461. package/dist/data/ai/examples/sessions/codex.cjs +236 -0
  462. package/dist/data/ai/examples/sessions/codex.cjs.map +1 -0
  463. package/dist/data/ai/examples/sessions/codex.d.ts +3 -0
  464. package/dist/data/ai/examples/sessions/codex.d.ts.map +1 -0
  465. package/dist/data/ai/examples/sessions/codex.js +236 -0
  466. package/dist/data/ai/examples/sessions/codex.js.map +1 -0
  467. package/dist/data/ai/examples/sessions/index.cjs +21 -0
  468. package/dist/data/ai/examples/sessions/index.cjs.map +1 -0
  469. package/dist/data/ai/examples/sessions/index.d.ts +10 -0
  470. package/dist/data/ai/examples/sessions/index.d.ts.map +1 -0
  471. package/dist/data/ai/examples/sessions/index.js +21 -0
  472. package/dist/data/ai/examples/sessions/index.js.map +1 -0
  473. package/dist/data/ai/index.d.ts +8 -3
  474. package/dist/data/ai/index.d.ts.map +1 -1
  475. package/dist/data/ai/runtime-mode.cjs +62 -0
  476. package/dist/data/ai/runtime-mode.cjs.map +1 -1
  477. package/dist/data/ai/runtime-mode.d.ts +27 -0
  478. package/dist/data/ai/runtime-mode.d.ts.map +1 -1
  479. package/dist/data/ai/runtime-mode.js +62 -0
  480. package/dist/data/ai/runtime-mode.js.map +1 -1
  481. package/dist/data/cells/EntityCell.cjs +64 -0
  482. package/dist/data/cells/EntityCell.cjs.map +1 -0
  483. package/dist/data/cells/EntityCell.d.ts +27 -0
  484. package/dist/data/cells/EntityCell.d.ts.map +1 -0
  485. package/dist/data/cells/EntityCell.js +64 -0
  486. package/dist/data/cells/EntityCell.js.map +1 -0
  487. package/dist/data/chat/Attachment.cjs +53 -13
  488. package/dist/data/chat/Attachment.cjs.map +1 -1
  489. package/dist/data/chat/Attachment.d.ts +9 -3
  490. package/dist/data/chat/Attachment.d.ts.map +1 -1
  491. package/dist/data/chat/Attachment.js +54 -14
  492. package/dist/data/chat/Attachment.js.map +1 -1
  493. package/dist/data/chat/Chat.cjs +25 -17
  494. package/dist/data/chat/Chat.cjs.map +1 -1
  495. package/dist/data/chat/Chat.d.ts +8 -4
  496. package/dist/data/chat/Chat.d.ts.map +1 -1
  497. package/dist/data/chat/Chat.js +22 -14
  498. package/dist/data/chat/Chat.js.map +1 -1
  499. package/dist/data/chat/ContextMeter.cjs +142 -39
  500. package/dist/data/chat/ContextMeter.cjs.map +1 -1
  501. package/dist/data/chat/ContextMeter.d.ts +4 -1
  502. package/dist/data/chat/ContextMeter.d.ts.map +1 -1
  503. package/dist/data/chat/ContextMeter.js +143 -40
  504. package/dist/data/chat/ContextMeter.js.map +1 -1
  505. package/dist/data/chat/Conversation.cjs +55 -3
  506. package/dist/data/chat/Conversation.cjs.map +1 -1
  507. package/dist/data/chat/Conversation.d.ts +5 -1
  508. package/dist/data/chat/Conversation.d.ts.map +1 -1
  509. package/dist/data/chat/Conversation.js +55 -3
  510. package/dist/data/chat/Conversation.js.map +1 -1
  511. package/dist/data/chat/ModelSelector.cjs +8 -10
  512. package/dist/data/chat/ModelSelector.cjs.map +1 -1
  513. package/dist/data/chat/ModelSelector.d.ts.map +1 -1
  514. package/dist/data/chat/ModelSelector.js +9 -11
  515. package/dist/data/chat/ModelSelector.js.map +1 -1
  516. package/dist/data/chat/PromptInput.cjs +56 -5
  517. package/dist/data/chat/PromptInput.cjs.map +1 -1
  518. package/dist/data/chat/PromptInput.d.ts +10 -1
  519. package/dist/data/chat/PromptInput.d.ts.map +1 -1
  520. package/dist/data/chat/PromptInput.js +57 -6
  521. package/dist/data/chat/PromptInput.js.map +1 -1
  522. package/dist/data/chat/attachment-upload.cjs +33 -0
  523. package/dist/data/chat/attachment-upload.cjs.map +1 -0
  524. package/dist/data/chat/attachment-upload.d.ts +21 -0
  525. package/dist/data/chat/attachment-upload.d.ts.map +1 -0
  526. package/dist/data/chat/attachment-upload.js +33 -0
  527. package/dist/data/chat/attachment-upload.js.map +1 -0
  528. package/dist/data/chat/effort-icons.cjs +36 -6
  529. package/dist/data/chat/effort-icons.cjs.map +1 -1
  530. package/dist/data/chat/effort-icons.d.ts +6 -3
  531. package/dist/data/chat/effort-icons.d.ts.map +1 -1
  532. package/dist/data/chat/effort-icons.js +37 -7
  533. package/dist/data/chat/effort-icons.js.map +1 -1
  534. package/dist/data/chat/index.d.ts +3 -1
  535. package/dist/data/chat/index.d.ts.map +1 -1
  536. package/dist/data/chat/models.cjs +8 -0
  537. package/dist/data/chat/models.cjs.map +1 -0
  538. package/dist/data/chat/models.d.ts +11 -0
  539. package/dist/data/chat/models.d.ts.map +1 -0
  540. package/dist/data/chat/models.js +8 -0
  541. package/dist/data/chat/models.js.map +1 -0
  542. package/dist/data/chat/provider-icons.cjs +49 -16
  543. package/dist/data/chat/provider-icons.cjs.map +1 -1
  544. package/dist/data/chat/provider-icons.d.ts +2 -0
  545. package/dist/data/chat/provider-icons.d.ts.map +1 -1
  546. package/dist/data/chat/provider-icons.js +50 -17
  547. package/dist/data/chat/provider-icons.js.map +1 -1
  548. package/dist/data/chat/types.cjs.map +1 -1
  549. package/dist/data/chat/types.d.ts +9 -0
  550. package/dist/data/chat/types.d.ts.map +1 -1
  551. package/dist/data/chat/types.js.map +1 -1
  552. package/dist/data/examples/markdown-preview-mock.cjs +45 -0
  553. package/dist/data/examples/markdown-preview-mock.cjs.map +1 -0
  554. package/dist/data/examples/markdown-preview-mock.d.ts +23 -0
  555. package/dist/data/examples/markdown-preview-mock.d.ts.map +1 -0
  556. package/dist/data/examples/markdown-preview-mock.js +45 -0
  557. package/dist/data/examples/markdown-preview-mock.js.map +1 -0
  558. package/dist/data/examples/markdown-syntax.cjs +36 -0
  559. package/dist/data/examples/markdown-syntax.cjs.map +1 -0
  560. package/dist/data/examples/markdown-syntax.d.ts +12 -0
  561. package/dist/data/examples/markdown-syntax.d.ts.map +1 -0
  562. package/dist/data/examples/markdown-syntax.js +36 -0
  563. package/dist/data/examples/markdown-syntax.js.map +1 -0
  564. package/dist/data/examples/markdown-syntax.md.cjs +4 -0
  565. package/dist/data/examples/markdown-syntax.md.cjs.map +1 -0
  566. package/dist/data/examples/markdown-syntax.md.js +5 -0
  567. package/dist/data/examples/markdown-syntax.md.js.map +1 -0
  568. package/dist/data/task-process-details.cjs +48 -0
  569. package/dist/data/task-process-details.cjs.map +1 -0
  570. package/dist/data/task-process-details.d.ts +5 -0
  571. package/dist/data/task-process-details.d.ts.map +1 -0
  572. package/dist/data/task-process-details.js +48 -0
  573. package/dist/data/task-process-details.js.map +1 -0
  574. package/dist/data/version-info.cjs +2 -2
  575. package/dist/data/version-info.js +2 -2
  576. package/dist/data.cjs +30 -0
  577. package/dist/data.cjs.map +1 -1
  578. package/dist/data.d.ts +7 -1
  579. package/dist/data.d.ts.map +1 -1
  580. package/dist/data.js +30 -0
  581. package/dist/data.js.map +1 -1
  582. package/dist/hooks/use-hotkey.cjs +98 -0
  583. package/dist/hooks/use-hotkey.cjs.map +1 -0
  584. package/dist/hooks/use-hotkey.d.ts +42 -0
  585. package/dist/hooks/use-hotkey.d.ts.map +1 -0
  586. package/dist/hooks/use-hotkey.js +98 -0
  587. package/dist/hooks/use-hotkey.js.map +1 -0
  588. package/dist/hooks/use-task-run.cjs +23 -1
  589. package/dist/hooks/use-task-run.cjs.map +1 -1
  590. package/dist/hooks/use-task-run.d.ts.map +1 -1
  591. package/dist/hooks/use-task-run.js +23 -1
  592. package/dist/hooks/use-task-run.js.map +1 -1
  593. package/dist/hooks.cjs +4 -0
  594. package/dist/hooks.cjs.map +1 -1
  595. package/dist/hooks.d.ts +1 -0
  596. package/dist/hooks.d.ts.map +1 -1
  597. package/dist/hooks.js +4 -0
  598. package/dist/hooks.js.map +1 -1
  599. package/dist/icons/components/UiBank.cjs +15 -0
  600. package/dist/icons/components/UiBank.cjs.map +1 -0
  601. package/dist/icons/components/UiBank.d.ts +15 -0
  602. package/dist/icons/components/UiBank.d.ts.map +1 -0
  603. package/dist/icons/components/UiBank.js +15 -0
  604. package/dist/icons/components/UiBank.js.map +1 -0
  605. package/dist/icons/components/UiChartOfAccounts.cjs +15 -0
  606. package/dist/icons/components/UiChartOfAccounts.cjs.map +1 -0
  607. package/dist/icons/components/UiChartOfAccounts.d.ts +15 -0
  608. package/dist/icons/components/UiChartOfAccounts.d.ts.map +1 -0
  609. package/dist/icons/components/UiChartOfAccounts.js +15 -0
  610. package/dist/icons/components/UiChartOfAccounts.js.map +1 -0
  611. package/dist/icons/components/UiCloudUpload.cjs +15 -0
  612. package/dist/icons/components/UiCloudUpload.cjs.map +1 -0
  613. package/dist/icons/components/UiCloudUpload.d.ts +15 -0
  614. package/dist/icons/components/UiCloudUpload.d.ts.map +1 -0
  615. package/dist/icons/components/UiCloudUpload.js +15 -0
  616. package/dist/icons/components/UiCloudUpload.js.map +1 -0
  617. package/dist/icons/components/UiLedger.cjs +15 -0
  618. package/dist/icons/components/UiLedger.cjs.map +1 -0
  619. package/dist/icons/components/UiLedger.d.ts +15 -0
  620. package/dist/icons/components/UiLedger.d.ts.map +1 -0
  621. package/dist/icons/components/UiLedger.js +15 -0
  622. package/dist/icons/components/UiLedger.js.map +1 -0
  623. package/dist/icons/components/UiReceipt.cjs +15 -0
  624. package/dist/icons/components/UiReceipt.cjs.map +1 -0
  625. package/dist/icons/components/UiReceipt.d.ts +15 -0
  626. package/dist/icons/components/UiReceipt.d.ts.map +1 -0
  627. package/dist/icons/components/UiReceipt.js +15 -0
  628. package/dist/icons/components/UiReceipt.js.map +1 -0
  629. package/dist/icons/index.d.ts +10 -0
  630. package/dist/icons/index.d.ts.map +1 -1
  631. package/dist/icons.cjs +15 -0
  632. package/dist/icons.cjs.map +1 -1
  633. package/dist/icons.js +15 -0
  634. package/dist/icons.js.map +1 -1
  635. package/dist/index.cjs +47 -0
  636. package/dist/index.cjs.map +1 -1
  637. package/dist/index.js +49 -2
  638. package/dist/index.js.map +1 -1
  639. package/dist/layout/AppShell.cjs +270 -238
  640. package/dist/layout/AppShell.cjs.map +1 -1
  641. package/dist/layout/AppShell.d.ts +9 -0
  642. package/dist/layout/AppShell.d.ts.map +1 -1
  643. package/dist/layout/AppShell.debug.cjs +53 -0
  644. package/dist/layout/AppShell.debug.cjs.map +1 -0
  645. package/dist/layout/AppShell.debug.d.ts +6 -0
  646. package/dist/layout/AppShell.debug.d.ts.map +1 -0
  647. package/dist/layout/AppShell.debug.js +53 -0
  648. package/dist/layout/AppShell.debug.js.map +1 -0
  649. package/dist/layout/AppShell.js +269 -237
  650. package/dist/layout/AppShell.js.map +1 -1
  651. package/dist/layout/AppShell.nav.cjs +90 -0
  652. package/dist/layout/AppShell.nav.cjs.map +1 -0
  653. package/dist/layout/AppShell.nav.d.ts +7 -0
  654. package/dist/layout/AppShell.nav.d.ts.map +1 -0
  655. package/dist/layout/AppShell.nav.js +90 -0
  656. package/dist/layout/AppShell.nav.js.map +1 -0
  657. package/dist/layout/AppSidebar.cjs +35 -5
  658. package/dist/layout/AppSidebar.cjs.map +1 -1
  659. package/dist/layout/AppSidebar.d.ts +4 -1
  660. package/dist/layout/AppSidebar.d.ts.map +1 -1
  661. package/dist/layout/AppSidebar.js +35 -5
  662. package/dist/layout/AppSidebar.js.map +1 -1
  663. package/dist/layout/Panel.cjs +25 -41
  664. package/dist/layout/Panel.cjs.map +1 -1
  665. package/dist/layout/Panel.d.ts +2 -1
  666. package/dist/layout/Panel.d.ts.map +1 -1
  667. package/dist/layout/Panel.js +26 -42
  668. package/dist/layout/Panel.js.map +1 -1
  669. package/dist/layout/PanelFrame.cjs +56 -0
  670. package/dist/layout/PanelFrame.cjs.map +1 -0
  671. package/dist/layout/PanelFrame.d.ts +15 -0
  672. package/dist/layout/PanelFrame.d.ts.map +1 -0
  673. package/dist/layout/PanelFrame.js +56 -0
  674. package/dist/layout/PanelFrame.js.map +1 -0
  675. package/dist/layout/Section.cjs +51 -41
  676. package/dist/layout/Section.cjs.map +1 -1
  677. package/dist/layout/Section.d.ts +3 -2
  678. package/dist/layout/Section.d.ts.map +1 -1
  679. package/dist/layout/Section.js +51 -41
  680. package/dist/layout/Section.js.map +1 -1
  681. package/dist/layout/content-width.cjs +8 -0
  682. package/dist/layout/content-width.cjs.map +1 -0
  683. package/dist/layout/content-width.d.ts +3 -0
  684. package/dist/layout/content-width.d.ts.map +1 -0
  685. package/dist/layout/content-width.js +8 -0
  686. package/dist/layout/content-width.js.map +1 -0
  687. package/dist/overlay/CommandPalette.cjs +207 -0
  688. package/dist/overlay/CommandPalette.cjs.map +1 -0
  689. package/dist/overlay/CommandPalette.d.ts +71 -0
  690. package/dist/overlay/CommandPalette.d.ts.map +1 -0
  691. package/dist/overlay/CommandPalette.js +207 -0
  692. package/dist/overlay/CommandPalette.js.map +1 -0
  693. package/dist/overlay/CommandPalette.model.cjs +70 -0
  694. package/dist/overlay/CommandPalette.model.cjs.map +1 -0
  695. package/dist/overlay/CommandPalette.model.d.ts +71 -0
  696. package/dist/overlay/CommandPalette.model.d.ts.map +1 -0
  697. package/dist/overlay/CommandPalette.model.js +70 -0
  698. package/dist/overlay/CommandPalette.model.js.map +1 -0
  699. package/dist/overlay/CommandPaletteList.cjs +88 -0
  700. package/dist/overlay/CommandPaletteList.cjs.map +1 -0
  701. package/dist/overlay/CommandPaletteList.d.ts +23 -0
  702. package/dist/overlay/CommandPaletteList.d.ts.map +1 -0
  703. package/dist/overlay/CommandPaletteList.js +88 -0
  704. package/dist/overlay/CommandPaletteList.js.map +1 -0
  705. package/dist/overlay/CommandPaletteTrigger.cjs +36 -0
  706. package/dist/overlay/CommandPaletteTrigger.cjs.map +1 -0
  707. package/dist/overlay/CommandPaletteTrigger.d.ts +22 -0
  708. package/dist/overlay/CommandPaletteTrigger.d.ts.map +1 -0
  709. package/dist/overlay/CommandPaletteTrigger.js +36 -0
  710. package/dist/overlay/CommandPaletteTrigger.js.map +1 -0
  711. package/dist/overlay/Modal.cjs +12 -5
  712. package/dist/overlay/Modal.cjs.map +1 -1
  713. package/dist/overlay/Modal.d.ts.map +1 -1
  714. package/dist/overlay/Modal.js +12 -5
  715. package/dist/overlay/Modal.js.map +1 -1
  716. package/dist/overlay/modalStack.js +1 -1
  717. package/dist/overlay/zIndex.cjs +2 -0
  718. package/dist/overlay/zIndex.cjs.map +1 -1
  719. package/dist/overlay/zIndex.js +2 -0
  720. package/dist/overlay/zIndex.js.map +1 -1
  721. package/dist/rpc/EntityExplorerApp.cjs +6 -0
  722. package/dist/rpc/EntityExplorerApp.cjs.map +1 -1
  723. package/dist/rpc/EntityExplorerApp.d.ts.map +1 -1
  724. package/dist/rpc/EntityExplorerApp.js +6 -0
  725. package/dist/rpc/EntityExplorerApp.js.map +1 -1
  726. package/dist/rpc/OperationCatalog.cjs +49 -52
  727. package/dist/rpc/OperationCatalog.cjs.map +1 -1
  728. package/dist/rpc/OperationCatalog.d.ts +17 -2
  729. package/dist/rpc/OperationCatalog.d.ts.map +1 -1
  730. package/dist/rpc/OperationCatalog.js +49 -52
  731. package/dist/rpc/OperationCatalog.js.map +1 -1
  732. package/dist/rpc/clickyMetadata.cjs +2 -1
  733. package/dist/rpc/clickyMetadata.cjs.map +1 -1
  734. package/dist/rpc/clickyMetadata.d.ts.map +1 -1
  735. package/dist/rpc/clickyMetadata.js +2 -1
  736. package/dist/rpc/clickyMetadata.js.map +1 -1
  737. package/dist/rpc/rpc-story-fixtures/orders.fixture.d.ts.map +1 -1
  738. package/dist/rpc/rpc-story-fixtures/services.fixture.d.ts.map +1 -1
  739. package/dist/rpc/rpc-story-fixtures/surface-fixture.d.ts +25 -2
  740. package/dist/rpc/rpc-story-fixtures/surface-fixture.d.ts.map +1 -1
  741. package/dist/rpc/rpc-story-fixtures/widgets.fixture.d.ts.map +1 -1
  742. package/dist/rpc/rpc-story.fixtures.d.ts +2 -1
  743. package/dist/rpc/rpc-story.fixtures.d.ts.map +1 -1
  744. package/dist/rpc/types.cjs.map +1 -1
  745. package/dist/rpc/types.d.ts +1 -0
  746. package/dist/rpc/types.d.ts.map +1 -1
  747. package/dist/rpc/types.js.map +1 -1
  748. package/dist/styles.css +1 -1
  749. package/dist/tailwind-preset.cjs +11 -0
  750. package/dist/tailwind-preset.cjs.map +1 -1
  751. package/dist/tailwind-preset.d.ts.map +1 -1
  752. package/dist/tailwind-preset.js +11 -0
  753. package/dist/tailwind-preset.js.map +1 -1
  754. package/package.json +2 -2
@@ -0,0 +1,77 @@
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 MdxEditorField = require("../../components/MdxEditorField.cjs");
7
+ const Icon = require("../Icon.cjs");
8
+ const Markdown = require("../Markdown.cjs");
9
+ const UiFileText = require("../../icons/components/UiFileText.cjs");
10
+ const UiCheck = require("../../icons/components/UiCheck.cjs");
11
+ const UiEdit = require("../../icons/components/UiEdit.cjs");
12
+ function SessionPlanPanel({
13
+ plan,
14
+ onChange
15
+ }) {
16
+ var _a;
17
+ const [editing, setEditing] = react.useState(false);
18
+ const [content, setContent] = react.useState((plan == null ? void 0 : plan.content) ?? "");
19
+ react.useEffect(() => setContent((plan == null ? void 0 : plan.content) ?? ""), [plan == null ? void 0 : plan.content]);
20
+ if (!plan) {
21
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-md border border-dashed border-border p-density-6 text-center text-sm text-muted-foreground", children: "No plan metadata." });
22
+ }
23
+ const updateContent = (next) => {
24
+ setContent(next);
25
+ onChange == null ? void 0 : onChange(next);
26
+ };
27
+ return /* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
28
+ /* @__PURE__ */ jsxRuntime.jsxs("header", { className: "flex min-w-0 items-center gap-density-2 border-b border-border px-density-1 pb-density-2", children: [
29
+ /* @__PURE__ */ jsxRuntime.jsx(
30
+ Icon.Icon,
31
+ {
32
+ icon: UiFileText.UiFileText,
33
+ className: "size-4 shrink-0 text-muted-foreground"
34
+ }
35
+ ),
36
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
37
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate font-mono text-xs text-foreground", children: plan.path || plan.slug || "Session plan" }),
38
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-[11px] text-muted-foreground", children: [
39
+ ((_a = plan.events) == null ? void 0 : _a.length) ?? 0,
40
+ " events",
41
+ plan.explicit ? " · explicit" : ""
42
+ ] })
43
+ ] }),
44
+ /* @__PURE__ */ jsxRuntime.jsxs(
45
+ button.Button,
46
+ {
47
+ type: "button",
48
+ variant: "ghost",
49
+ size: "sm",
50
+ "aria-label": editing ? "Done editing plan" : "Edit plan",
51
+ onClick: () => setEditing((value) => !value),
52
+ children: [
53
+ /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: editing ? UiCheck.UiCheck : UiEdit.UiEdit }),
54
+ editing ? "Done" : "Edit"
55
+ ]
56
+ }
57
+ )
58
+ ] }),
59
+ editing ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-density-3", children: /* @__PURE__ */ jsxRuntime.jsx(
60
+ MdxEditorField.MdxEditorField,
61
+ {
62
+ value: content,
63
+ onChange: updateContent,
64
+ "aria-label": "Plan markdown",
65
+ toolbar: true,
66
+ headings: true,
67
+ lists: true,
68
+ links: true,
69
+ codeBlocks: true,
70
+ codeMirror: true,
71
+ className: "min-h-80"
72
+ }
73
+ ) }) : content ? /* @__PURE__ */ jsxRuntime.jsx(Markdown.Markdown, { text: content, className: "px-density-1 py-density-4" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-density-6 text-center text-sm text-muted-foreground", children: "The plan is empty." })
74
+ ] });
75
+ }
76
+ exports.SessionPlanPanel = SessionPlanPanel;
77
+ //# sourceMappingURL=SessionInspector.plan.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionInspector.plan.cjs","sources":["../../../src/data/ai/SessionInspector.plan.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { UiCheck, UiEdit, UiFileText } from \"../../icons\";\nimport { Button } from \"../../components/button\";\nimport { MdxEditorField } from \"../../components/MdxEditorField\";\nimport { Icon } from \"../Icon\";\nimport { Markdown } from \"../Markdown\";\nimport type { SessionPlan } from \"./SessionViewer.unified\";\n\nexport function SessionPlanPanel({\n plan,\n onChange,\n}: {\n plan: SessionPlan | undefined;\n onChange?: (content: string) => void;\n}) {\n const [editing, setEditing] = useState(false);\n const [content, setContent] = useState(plan?.content ?? \"\");\n\n useEffect(() => setContent(plan?.content ?? \"\"), [plan?.content]);\n\n if (!plan) {\n return (\n <div className=\"rounded-md border border-dashed border-border p-density-6 text-center text-sm text-muted-foreground\">\n No plan metadata.\n </div>\n );\n }\n\n const updateContent = (next: string) => {\n setContent(next);\n onChange?.(next);\n };\n\n return (\n <section>\n <header className=\"flex min-w-0 items-center gap-density-2 border-b border-border px-density-1 pb-density-2\">\n <Icon\n icon={UiFileText}\n className=\"size-4 shrink-0 text-muted-foreground\"\n />\n <div className=\"min-w-0 flex-1\">\n <div className=\"truncate font-mono text-xs text-foreground\">\n {plan.path || plan.slug || \"Session plan\"}\n </div>\n <div className=\"text-[11px] text-muted-foreground\">\n {plan.events?.length ?? 0} events\n {plan.explicit ? \" · explicit\" : \"\"}\n </div>\n </div>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n aria-label={editing ? \"Done editing plan\" : \"Edit plan\"}\n onClick={() => setEditing((value) => !value)}\n >\n <Icon icon={editing ? UiCheck : UiEdit} />\n {editing ? \"Done\" : \"Edit\"}\n </Button>\n </header>\n {editing ? (\n <div className=\"pt-density-3\">\n <MdxEditorField\n value={content}\n onChange={updateContent}\n aria-label=\"Plan markdown\"\n toolbar\n headings\n lists\n links\n codeBlocks\n codeMirror\n className=\"min-h-80\"\n />\n </div>\n ) : content ? (\n <Markdown text={content} className=\"px-density-1 py-density-4\" />\n ) : (\n <div className=\"p-density-6 text-center text-sm text-muted-foreground\">\n The plan is empty.\n </div>\n )}\n </section>\n );\n}\n"],"names":["useState","useEffect","jsx","jsxs","Icon","UiFileText","Button","UiCheck","UiEdit","MdxEditorField","Markdown"],"mappings":";;;;;;;;;;;AAQO,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AACF,GAGG;;AACD,QAAM,CAAC,SAAS,UAAU,IAAIA,MAAAA,SAAS,KAAK;AAC5C,QAAM,CAAC,SAAS,UAAU,IAAIA,MAAAA,UAAS,6BAAM,YAAW,EAAE;AAE1DC,kBAAU,MAAM,YAAW,6BAAM,YAAW,EAAE,GAAG,CAAC,6BAAM,OAAO,CAAC;AAEhE,MAAI,CAAC,MAAM;AACT,WACEC,2BAAAA,IAAC,OAAA,EAAI,WAAU,uGAAsG,UAAA,qBAErH;AAAA,EAEJ;AAEA,QAAM,gBAAgB,CAAC,SAAiB;AACtC,eAAW,IAAI;AACf,yCAAW;AAAA,EACb;AAEA,yCACG,WAAA,EACC,UAAA;AAAA,IAAAC,2BAAAA,KAAC,UAAA,EAAO,WAAU,4FAChB,UAAA;AAAA,MAAAD,2BAAAA;AAAAA,QAACE,KAAAA;AAAAA,QAAA;AAAA,UACC,MAAMC,WAAAA;AAAAA,UACN,WAAU;AAAA,QAAA;AAAA,MAAA;AAAA,MAEZF,2BAAAA,KAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,QAAAD,2BAAAA,IAAC,SAAI,WAAU,8CACZ,eAAK,QAAQ,KAAK,QAAQ,eAAA,CAC7B;AAAA,QACAC,2BAAAA,KAAC,OAAA,EAAI,WAAU,qCACZ,UAAA;AAAA,YAAA,UAAK,WAAL,mBAAa,WAAU;AAAA,UAAE;AAAA,UACzB,KAAK,WAAW,gBAAgB;AAAA,QAAA,EAAA,CACnC;AAAA,MAAA,GACF;AAAA,MACAA,2BAAAA;AAAAA,QAACG,OAAAA;AAAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,cAAY,UAAU,sBAAsB;AAAA,UAC5C,SAAS,MAAM,WAAW,CAAC,UAAU,CAAC,KAAK;AAAA,UAE3C,UAAA;AAAA,YAAAJ,2BAAAA,IAACE,KAAAA,MAAA,EAAK,MAAM,UAAUG,QAAAA,UAAUC,OAAAA,QAAQ;AAAA,YACvC,UAAU,SAAS;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACtB,GACF;AAAA,IACC,UACCN,2BAAAA,IAAC,OAAA,EAAI,WAAU,gBACb,UAAAA,2BAAAA;AAAAA,MAACO,eAAAA;AAAAA,MAAA;AAAA,QACC,OAAO;AAAA,QACP,UAAU;AAAA,QACV,cAAW;AAAA,QACX,SAAO;AAAA,QACP,UAAQ;AAAA,QACR,OAAK;AAAA,QACL,OAAK;AAAA,QACL,YAAU;AAAA,QACV,YAAU;AAAA,QACV,WAAU;AAAA,MAAA;AAAA,IAAA,EACZ,CACF,IACE,UACFP,2BAAAA,IAACQ,SAAAA,YAAS,MAAM,SAAS,WAAU,4BAAA,CAA4B,IAE/DR,2BAAAA,IAAC,OAAA,EAAI,WAAU,yDAAwD,UAAA,qBAAA,CAEvE;AAAA,EAAA,GAEJ;AAEJ;;"}
@@ -0,0 +1,6 @@
1
+ import { SessionPlan } from './SessionViewer.unified';
2
+ export declare function SessionPlanPanel({ plan, onChange, }: {
3
+ plan: SessionPlan | undefined;
4
+ onChange?: (content: string) => void;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=SessionInspector.plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionInspector.plan.d.ts","sourceRoot":"","sources":["../../../src/data/ai/SessionInspector.plan.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,WAAW,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC,2CAsEA"}
@@ -0,0 +1,77 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect } from "react";
3
+ import { Button } from "../../components/button.js";
4
+ import { MdxEditorField } from "../../components/MdxEditorField.js";
5
+ import { Icon } from "../Icon.js";
6
+ import { Markdown } from "../Markdown.js";
7
+ import { UiFileText } from "../../icons/components/UiFileText.js";
8
+ import { UiCheck } from "../../icons/components/UiCheck.js";
9
+ import { UiEdit } from "../../icons/components/UiEdit.js";
10
+ function SessionPlanPanel({
11
+ plan,
12
+ onChange
13
+ }) {
14
+ var _a;
15
+ const [editing, setEditing] = useState(false);
16
+ const [content, setContent] = useState((plan == null ? void 0 : plan.content) ?? "");
17
+ useEffect(() => setContent((plan == null ? void 0 : plan.content) ?? ""), [plan == null ? void 0 : plan.content]);
18
+ if (!plan) {
19
+ return /* @__PURE__ */ jsx("div", { className: "rounded-md border border-dashed border-border p-density-6 text-center text-sm text-muted-foreground", children: "No plan metadata." });
20
+ }
21
+ const updateContent = (next) => {
22
+ setContent(next);
23
+ onChange == null ? void 0 : onChange(next);
24
+ };
25
+ return /* @__PURE__ */ jsxs("section", { children: [
26
+ /* @__PURE__ */ jsxs("header", { className: "flex min-w-0 items-center gap-density-2 border-b border-border px-density-1 pb-density-2", children: [
27
+ /* @__PURE__ */ jsx(
28
+ Icon,
29
+ {
30
+ icon: UiFileText,
31
+ className: "size-4 shrink-0 text-muted-foreground"
32
+ }
33
+ ),
34
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
35
+ /* @__PURE__ */ jsx("div", { className: "truncate font-mono text-xs text-foreground", children: plan.path || plan.slug || "Session plan" }),
36
+ /* @__PURE__ */ jsxs("div", { className: "text-[11px] text-muted-foreground", children: [
37
+ ((_a = plan.events) == null ? void 0 : _a.length) ?? 0,
38
+ " events",
39
+ plan.explicit ? " · explicit" : ""
40
+ ] })
41
+ ] }),
42
+ /* @__PURE__ */ jsxs(
43
+ Button,
44
+ {
45
+ type: "button",
46
+ variant: "ghost",
47
+ size: "sm",
48
+ "aria-label": editing ? "Done editing plan" : "Edit plan",
49
+ onClick: () => setEditing((value) => !value),
50
+ children: [
51
+ /* @__PURE__ */ jsx(Icon, { icon: editing ? UiCheck : UiEdit }),
52
+ editing ? "Done" : "Edit"
53
+ ]
54
+ }
55
+ )
56
+ ] }),
57
+ editing ? /* @__PURE__ */ jsx("div", { className: "pt-density-3", children: /* @__PURE__ */ jsx(
58
+ MdxEditorField,
59
+ {
60
+ value: content,
61
+ onChange: updateContent,
62
+ "aria-label": "Plan markdown",
63
+ toolbar: true,
64
+ headings: true,
65
+ lists: true,
66
+ links: true,
67
+ codeBlocks: true,
68
+ codeMirror: true,
69
+ className: "min-h-80"
70
+ }
71
+ ) }) : content ? /* @__PURE__ */ jsx(Markdown, { text: content, className: "px-density-1 py-density-4" }) : /* @__PURE__ */ jsx("div", { className: "p-density-6 text-center text-sm text-muted-foreground", children: "The plan is empty." })
72
+ ] });
73
+ }
74
+ export {
75
+ SessionPlanPanel
76
+ };
77
+ //# sourceMappingURL=SessionInspector.plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionInspector.plan.js","sources":["../../../src/data/ai/SessionInspector.plan.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { UiCheck, UiEdit, UiFileText } from \"../../icons\";\nimport { Button } from \"../../components/button\";\nimport { MdxEditorField } from \"../../components/MdxEditorField\";\nimport { Icon } from \"../Icon\";\nimport { Markdown } from \"../Markdown\";\nimport type { SessionPlan } from \"./SessionViewer.unified\";\n\nexport function SessionPlanPanel({\n plan,\n onChange,\n}: {\n plan: SessionPlan | undefined;\n onChange?: (content: string) => void;\n}) {\n const [editing, setEditing] = useState(false);\n const [content, setContent] = useState(plan?.content ?? \"\");\n\n useEffect(() => setContent(plan?.content ?? \"\"), [plan?.content]);\n\n if (!plan) {\n return (\n <div className=\"rounded-md border border-dashed border-border p-density-6 text-center text-sm text-muted-foreground\">\n No plan metadata.\n </div>\n );\n }\n\n const updateContent = (next: string) => {\n setContent(next);\n onChange?.(next);\n };\n\n return (\n <section>\n <header className=\"flex min-w-0 items-center gap-density-2 border-b border-border px-density-1 pb-density-2\">\n <Icon\n icon={UiFileText}\n className=\"size-4 shrink-0 text-muted-foreground\"\n />\n <div className=\"min-w-0 flex-1\">\n <div className=\"truncate font-mono text-xs text-foreground\">\n {plan.path || plan.slug || \"Session plan\"}\n </div>\n <div className=\"text-[11px] text-muted-foreground\">\n {plan.events?.length ?? 0} events\n {plan.explicit ? \" · explicit\" : \"\"}\n </div>\n </div>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n aria-label={editing ? \"Done editing plan\" : \"Edit plan\"}\n onClick={() => setEditing((value) => !value)}\n >\n <Icon icon={editing ? UiCheck : UiEdit} />\n {editing ? \"Done\" : \"Edit\"}\n </Button>\n </header>\n {editing ? (\n <div className=\"pt-density-3\">\n <MdxEditorField\n value={content}\n onChange={updateContent}\n aria-label=\"Plan markdown\"\n toolbar\n headings\n lists\n links\n codeBlocks\n codeMirror\n className=\"min-h-80\"\n />\n </div>\n ) : content ? (\n <Markdown text={content} className=\"px-density-1 py-density-4\" />\n ) : (\n <div className=\"p-density-6 text-center text-sm text-muted-foreground\">\n The plan is empty.\n </div>\n )}\n </section>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;AAQO,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AACF,GAGG;;AACD,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAC5C,QAAM,CAAC,SAAS,UAAU,IAAI,UAAS,6BAAM,YAAW,EAAE;AAE1D,YAAU,MAAM,YAAW,6BAAM,YAAW,EAAE,GAAG,CAAC,6BAAM,OAAO,CAAC;AAEhE,MAAI,CAAC,MAAM;AACT,WACE,oBAAC,OAAA,EAAI,WAAU,uGAAsG,UAAA,qBAErH;AAAA,EAEJ;AAEA,QAAM,gBAAgB,CAAC,SAAiB;AACtC,eAAW,IAAI;AACf,yCAAW;AAAA,EACb;AAEA,8BACG,WAAA,EACC,UAAA;AAAA,IAAA,qBAAC,UAAA,EAAO,WAAU,4FAChB,UAAA;AAAA,MAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAM;AAAA,UACN,WAAU;AAAA,QAAA;AAAA,MAAA;AAAA,MAEZ,qBAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,QAAA,oBAAC,SAAI,WAAU,8CACZ,eAAK,QAAQ,KAAK,QAAQ,eAAA,CAC7B;AAAA,QACA,qBAAC,OAAA,EAAI,WAAU,qCACZ,UAAA;AAAA,YAAA,UAAK,WAAL,mBAAa,WAAU;AAAA,UAAE;AAAA,UACzB,KAAK,WAAW,gBAAgB;AAAA,QAAA,EAAA,CACnC;AAAA,MAAA,GACF;AAAA,MACA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,cAAY,UAAU,sBAAsB;AAAA,UAC5C,SAAS,MAAM,WAAW,CAAC,UAAU,CAAC,KAAK;AAAA,UAE3C,UAAA;AAAA,YAAA,oBAAC,MAAA,EAAK,MAAM,UAAU,UAAU,QAAQ;AAAA,YACvC,UAAU,SAAS;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACtB,GACF;AAAA,IACC,UACC,oBAAC,OAAA,EAAI,WAAU,gBACb,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO;AAAA,QACP,UAAU;AAAA,QACV,cAAW;AAAA,QACX,SAAO;AAAA,QACP,UAAQ;AAAA,QACR,OAAK;AAAA,QACL,OAAK;AAAA,QACL,YAAU;AAAA,QACV,YAAU;AAAA,QACV,WAAU;AAAA,MAAA;AAAA,IAAA,EACZ,CACF,IACE,UACF,oBAAC,YAAS,MAAM,SAAS,WAAU,4BAAA,CAA4B,IAE/D,oBAAC,OAAA,EAAI,WAAU,yDAAwD,UAAA,qBAAA,CAEvE;AAAA,EAAA,GAEJ;AAEJ;"}
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const Icon = require("../Icon.cjs");
5
+ const effortIcons = require("../chat/effort-icons.cjs");
6
+ const providerIcons = require("../chat/provider-icons.cjs");
7
+ const agentActionIcons = require("./agent-action-icons.cjs");
8
+ const sessionCost = require("./session-cost.cjs");
9
+ const SessionInspector_model = require("./SessionInspector.model.cjs");
10
+ const SessionViewer_header = require("./SessionViewer.header.cjs");
11
+ const SessionViewer_model = require("./SessionViewer.model.cjs");
12
+ const UiRobotAi = require("../../icons/components/UiRobotAi.cjs");
13
+ const UiTimer = require("../../icons/components/UiTimer.cjs");
14
+ const UiClock = require("../../icons/components/UiClock.cjs");
15
+ const UiServerProcess = require("../../icons/components/UiServerProcess.cjs");
16
+ const UiFingerprint = require("../../icons/components/UiFingerprint.cjs");
17
+ const UiCoins = require("../../icons/components/UiCoins.cjs");
18
+ const tokens = require("../../lib/tokens.cjs");
19
+ function SessionInspectorHeader({
20
+ session
21
+ }) {
22
+ var _a, _b, _c;
23
+ const provider = SessionInspector_model.runtimeDescriptor(session.backend);
24
+ const providerId = session.provider || (provider == null ? void 0 : provider.family);
25
+ const ProviderIcon = providerIcons.providerIcon(providerId) ?? UiRobotAi.UiRobotAi;
26
+ const providerColor = providerIcons.providerIconColor(providerId);
27
+ const effortValue = (_a = session.reasoningEffort) == null ? void 0 : _a.trim();
28
+ const effort = effortValue ? agentActionIcons.effortIcon(effortValue) : void 0;
29
+ const title = ((_b = session.title) == null ? void 0 : _b.trim()) || ((_c = session.initialPrompt) == null ? void 0 : _c.trim()) || session.model || (provider == null ? void 0 : provider.family) || session.provider || "Session";
30
+ const metadata = SessionViewer_model.getSessionMetadata(session);
31
+ const showMeter = Boolean(metadata == null ? void 0 : metadata.context);
32
+ return /* @__PURE__ */ jsxRuntime.jsx("header", { className: "shrink-0 border-b border-border bg-muted/20 px-density-2 py-density-3", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-start gap-density-3", children: [
33
+ showMeter && metadata ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "-ml-1.5 shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(SessionViewer_header.SessionContextMeter, { metadata, mode: "gauge" }) }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mt-0.5 inline-flex size-9 shrink-0 items-center justify-center rounded-lg border border-border bg-background text-foreground shadow-sm", children: /* @__PURE__ */ jsxRuntime.jsx(
34
+ Icon.Icon,
35
+ {
36
+ icon: ProviderIcon,
37
+ size: "md",
38
+ ...providerColor ? { className: providerColor } : {}
39
+ }
40
+ ) }),
41
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
42
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-density-2", children: [
43
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "min-w-0 max-w-full truncate text-base font-semibold tracking-tight text-foreground", children: title }),
44
+ effortValue ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex shrink-0 items-center gap-1 rounded-full border border-border bg-background px-2 py-0.5 text-xs max-sm:basis-full max-sm:border-0 max-sm:bg-transparent max-sm:px-0", children: [
45
+ effort ? /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: effort.icon, size: "xs" }) : null,
46
+ effortIcons.effortLevelLabel(effortValue)
47
+ ] }) : null
48
+ ] }),
49
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1 flex flex-wrap items-center gap-x-density-3 gap-y-1 text-xs text-muted-foreground", children: session.startedAt ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1", children: [
50
+ /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiTimer.UiTimer, size: "xs" }),
51
+ SessionInspector_model.durationLabel(session.startedAt, session.endedAt)
52
+ ] }) : null })
53
+ ] })
54
+ ] }) });
55
+ }
56
+ function SessionInspectorSidebar({
57
+ session
58
+ }) {
59
+ var _a;
60
+ const runtime = SessionInspector_model.runtimeDescriptor(session.backend);
61
+ const RuntimeIcon = (runtime == null ? void 0 : runtime.icon) ?? UiRobotAi.UiRobotAi;
62
+ const usage = session.usage ?? session.cost;
63
+ const tokens$1 = sessionCost.tokenTotal(usage);
64
+ const cost = sessionCost.costTotal(session.cost);
65
+ return /* @__PURE__ */ jsxRuntime.jsxs("aside", { className: "border-t border-border bg-muted/10 p-density-4 lg:min-h-0 lg:overflow-auto lg:border-l lg:border-t-0", children: [
66
+ /* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
67
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: "Session details" }),
68
+ /* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "mt-density-3 space-y-density-3", children: [
69
+ /* @__PURE__ */ jsxRuntime.jsx(
70
+ DetailRow,
71
+ {
72
+ icon: UiClock.UiClock,
73
+ label: "Started",
74
+ value: SessionInspector_model.formatDate(session.startedAt)
75
+ }
76
+ ),
77
+ /* @__PURE__ */ jsxRuntime.jsx(
78
+ DetailRow,
79
+ {
80
+ icon: UiRobotAi.UiRobotAi,
81
+ label: "Connection",
82
+ value: session.provider || session.source
83
+ }
84
+ ),
85
+ /* @__PURE__ */ jsxRuntime.jsx("div", { "data-testid": "session-runtime-mode", children: /* @__PURE__ */ jsxRuntime.jsx(
86
+ DetailRow,
87
+ {
88
+ icon: RuntimeIcon,
89
+ label: "Mode",
90
+ value: (runtime == null ? void 0 : runtime.mode) || session.backend,
91
+ ...(runtime == null ? void 0 : runtime.title) ? { title: runtime.title } : {}
92
+ }
93
+ ) }),
94
+ /* @__PURE__ */ jsxRuntime.jsx(
95
+ DetailRow,
96
+ {
97
+ icon: UiServerProcess.UiServerProcess,
98
+ label: "PID",
99
+ value: (_a = session.live) == null ? void 0 : _a.pid
100
+ }
101
+ ),
102
+ /* @__PURE__ */ jsxRuntime.jsx(
103
+ DetailRow,
104
+ {
105
+ icon: UiFingerprint.UiFingerprint,
106
+ label: "Session ID",
107
+ value: session.id,
108
+ mono: true
109
+ }
110
+ )
111
+ ] })
112
+ ] }),
113
+ /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "mt-density-5 rounded-lg border border-border bg-background p-density-3 shadow-sm", children: [
114
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-density-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: [
115
+ /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiCoins.UiCoins, size: "xs" }),
116
+ "Usage"
117
+ ] }),
118
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-density-3 grid grid-cols-2 gap-density-3", children: [
119
+ /* @__PURE__ */ jsxRuntime.jsx(
120
+ UsageMetric,
121
+ {
122
+ label: "Tokens",
123
+ value: tokens$1 ? preciseTokens(tokens$1) : "-"
124
+ }
125
+ ),
126
+ /* @__PURE__ */ jsxRuntime.jsx(UsageMetric, { label: "Cost", value: cost ? tokens.formatCost(cost) : "-" }),
127
+ /* @__PURE__ */ jsxRuntime.jsx(
128
+ UsageMetric,
129
+ {
130
+ label: "Input",
131
+ value: (usage == null ? void 0 : usage.inputTokens) ? tokens.compactTokens(usage.inputTokens) : "-"
132
+ }
133
+ ),
134
+ /* @__PURE__ */ jsxRuntime.jsx(
135
+ UsageMetric,
136
+ {
137
+ label: "Output",
138
+ value: (usage == null ? void 0 : usage.outputTokens) ? tokens.compactTokens(usage.outputTokens) : "-"
139
+ }
140
+ )
141
+ ] })
142
+ ] })
143
+ ] });
144
+ }
145
+ function DetailRow({
146
+ icon,
147
+ label,
148
+ value,
149
+ title,
150
+ mono = false
151
+ }) {
152
+ if (value === void 0 || value === null || value === "") return null;
153
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1rem_minmax(0,1fr)] gap-x-density-2", children: [
154
+ /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon, size: "xs", className: "mt-0.5 text-muted-foreground" }),
155
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
156
+ /* @__PURE__ */ jsxRuntime.jsx("dt", { className: "text-[11px] text-muted-foreground", children: label }),
157
+ /* @__PURE__ */ jsxRuntime.jsx(
158
+ "dd",
159
+ {
160
+ className: mono ? "truncate font-mono text-xs text-foreground" : "truncate text-sm text-foreground",
161
+ title,
162
+ children: value
163
+ }
164
+ )
165
+ ] })
166
+ ] });
167
+ }
168
+ function UsageMetric({ label, value }) {
169
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
170
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[11px] text-muted-foreground", children: label }),
171
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-0.5 text-sm font-semibold tabular-nums text-foreground", children: value })
172
+ ] });
173
+ }
174
+ function preciseTokens(value) {
175
+ if (value >= 1e3 && value < 1e4 && value % 1e3 !== 0) {
176
+ return `${(value / 1e3).toFixed(1)}k`;
177
+ }
178
+ return tokens.compactTokens(value);
179
+ }
180
+ exports.SessionInspectorHeader = SessionInspectorHeader;
181
+ exports.SessionInspectorSidebar = SessionInspectorSidebar;
182
+ //# sourceMappingURL=SessionInspector.summary.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionInspector.summary.cjs","sources":["../../../src/data/ai/SessionInspector.summary.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport {\n UiClock,\n UiCoins,\n UiFingerprint,\n UiRobotAi,\n UiServerProcess,\n UiTimer,\n} from \"../../icons\";\nimport { Icon, type StaticIconComponent } from \"../Icon\";\nimport { effortLevelLabel } from \"../chat/effort-icons\";\nimport { providerIcon, providerIconColor } from \"../chat/provider-icons\";\nimport { effortIcon } from \"./agent-action-icons\";\nimport {\n compactTokens,\n costTotal,\n formatCost,\n tokenTotal,\n} from \"./session-cost\";\nimport {\n durationLabel,\n formatDate,\n runtimeDescriptor,\n} from \"./SessionInspector.model\";\nimport { SessionContextMeter } from \"./SessionViewer.header\";\nimport { getSessionMetadata } from \"./SessionViewer.model\";\nimport type { UnifiedSessionInput } from \"./SessionViewer.unified\";\n\nexport function SessionInspectorHeader({\n session,\n}: {\n session: UnifiedSessionInput;\n}) {\n const provider = runtimeDescriptor(session.backend);\n const providerId = session.provider || provider?.family;\n const ProviderIcon = providerIcon(providerId) ?? UiRobotAi;\n const providerColor = providerIconColor(providerId);\n const effortValue = session.reasoningEffort?.trim();\n const effort = effortValue ? effortIcon(effortValue) : undefined;\n const title =\n session.title?.trim() ||\n session.initialPrompt?.trim() ||\n session.model ||\n provider?.family ||\n session.provider ||\n \"Session\";\n const metadata = getSessionMetadata(session);\n const showMeter = Boolean(metadata?.context);\n\n return (\n <header className=\"shrink-0 border-b border-border bg-muted/20 px-density-2 py-density-3\">\n <div className=\"flex min-w-0 items-start gap-density-3\">\n {showMeter && metadata ? (\n <div className=\"-ml-1.5 shrink-0\">\n <SessionContextMeter metadata={metadata} mode=\"gauge\" />\n </div>\n ) : (\n <span className=\"mt-0.5 inline-flex size-9 shrink-0 items-center justify-center rounded-lg border border-border bg-background text-foreground shadow-sm\">\n <Icon\n icon={ProviderIcon}\n size=\"md\"\n {...(providerColor ? { className: providerColor } : {})}\n />\n </span>\n )}\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex flex-wrap items-center gap-density-2\">\n <h2 className=\"min-w-0 max-w-full truncate text-base font-semibold tracking-tight text-foreground\">\n {title}\n </h2>\n {effortValue ? (\n <span className=\"inline-flex shrink-0 items-center gap-1 rounded-full border border-border bg-background px-2 py-0.5 text-xs max-sm:basis-full max-sm:border-0 max-sm:bg-transparent max-sm:px-0\">\n {effort ? <Icon icon={effort.icon} size=\"xs\" /> : null}\n {effortLevelLabel(effortValue)}\n </span>\n ) : null}\n </div>\n <div className=\"mt-1 flex flex-wrap items-center gap-x-density-3 gap-y-1 text-xs text-muted-foreground\">\n {session.startedAt ? (\n <span className=\"inline-flex items-center gap-1\">\n <Icon icon={UiTimer} size=\"xs\" />\n {durationLabel(session.startedAt, session.endedAt)}\n </span>\n ) : null}\n </div>\n </div>\n </div>\n </header>\n );\n}\n\nexport function SessionInspectorSidebar({\n session,\n}: {\n session: UnifiedSessionInput;\n}) {\n const runtime = runtimeDescriptor(session.backend);\n const RuntimeIcon = runtime?.icon ?? UiRobotAi;\n const usage = session.usage ?? session.cost;\n const tokens = tokenTotal(usage);\n const cost = costTotal(session.cost);\n\n return (\n <aside className=\"border-t border-border bg-muted/10 p-density-4 lg:min-h-0 lg:overflow-auto lg:border-l lg:border-t-0\">\n <section>\n <h3 className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Session details\n </h3>\n <dl className=\"mt-density-3 space-y-density-3\">\n <DetailRow\n icon={UiClock}\n label=\"Started\"\n value={formatDate(session.startedAt)}\n />\n <DetailRow\n icon={UiRobotAi}\n label=\"Connection\"\n value={session.provider || session.source}\n />\n <div data-testid=\"session-runtime-mode\">\n <DetailRow\n icon={RuntimeIcon}\n label=\"Mode\"\n value={runtime?.mode || session.backend}\n {...(runtime?.title ? { title: runtime.title } : {})}\n />\n </div>\n <DetailRow\n icon={UiServerProcess}\n label=\"PID\"\n value={session.live?.pid}\n />\n <DetailRow\n icon={UiFingerprint}\n label=\"Session ID\"\n value={session.id}\n mono\n />\n </dl>\n </section>\n\n <section className=\"mt-density-5 rounded-lg border border-border bg-background p-density-3 shadow-sm\">\n <div className=\"flex items-center gap-density-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n <Icon icon={UiCoins} size=\"xs\" />\n Usage\n </div>\n <div className=\"mt-density-3 grid grid-cols-2 gap-density-3\">\n <UsageMetric\n label=\"Tokens\"\n value={tokens ? preciseTokens(tokens) : \"-\"}\n />\n <UsageMetric label=\"Cost\" value={cost ? formatCost(cost) : \"-\"} />\n <UsageMetric\n label=\"Input\"\n value={usage?.inputTokens ? compactTokens(usage.inputTokens) : \"-\"}\n />\n <UsageMetric\n label=\"Output\"\n value={\n usage?.outputTokens ? compactTokens(usage.outputTokens) : \"-\"\n }\n />\n </div>\n </section>\n </aside>\n );\n}\n\nfunction DetailRow({\n icon,\n label,\n value,\n title,\n mono = false,\n}: {\n icon: StaticIconComponent;\n label: string;\n value: ReactNode;\n title?: string;\n mono?: boolean;\n}) {\n if (value === undefined || value === null || value === \"\") return null;\n return (\n <div className=\"grid grid-cols-[1rem_minmax(0,1fr)] gap-x-density-2\">\n <Icon icon={icon} size=\"xs\" className=\"mt-0.5 text-muted-foreground\" />\n <div className=\"min-w-0\">\n <dt className=\"text-[11px] text-muted-foreground\">{label}</dt>\n <dd\n className={\n mono\n ? \"truncate font-mono text-xs text-foreground\"\n : \"truncate text-sm text-foreground\"\n }\n title={title}\n >\n {value}\n </dd>\n </div>\n </div>\n );\n}\n\nfunction UsageMetric({ label, value }: { label: string; value: ReactNode }) {\n return (\n <div>\n <div className=\"text-[11px] text-muted-foreground\">{label}</div>\n <div className=\"mt-0.5 text-sm font-semibold tabular-nums text-foreground\">\n {value}\n </div>\n </div>\n );\n}\n\nfunction preciseTokens(value: number) {\n if (value >= 1_000 && value < 10_000 && value % 1_000 !== 0) {\n return `${(value / 1_000).toFixed(1)}k`;\n }\n return compactTokens(value);\n}\n"],"names":["runtimeDescriptor","providerIcon","UiRobotAi","providerIconColor","effortIcon","getSessionMetadata","jsxs","jsx","SessionContextMeter","Icon","effortLevelLabel","UiTimer","durationLabel","tokens","tokenTotal","costTotal","UiClock","formatDate","UiServerProcess","UiFingerprint","UiCoins","formatCost","compactTokens"],"mappings":";;;;;;;;;;;;;;;;;;AA4BO,SAAS,uBAAuB;AAAA,EACrC;AACF,GAEG;;AACD,QAAM,WAAWA,uBAAAA,kBAAkB,QAAQ,OAAO;AAClD,QAAM,aAAa,QAAQ,aAAY,qCAAU;AACjD,QAAM,eAAeC,cAAAA,aAAa,UAAU,KAAKC,UAAAA;AACjD,QAAM,gBAAgBC,cAAAA,kBAAkB,UAAU;AAClD,QAAM,eAAc,aAAQ,oBAAR,mBAAyB;AAC7C,QAAM,SAAS,cAAcC,4BAAW,WAAW,IAAI;AACvD,QAAM,UACJ,aAAQ,UAAR,mBAAe,aACf,aAAQ,kBAAR,mBAAuB,WACvB,QAAQ,UACR,qCAAU,WACV,QAAQ,YACR;AACF,QAAM,WAAWC,oBAAAA,mBAAmB,OAAO;AAC3C,QAAM,YAAY,QAAQ,qCAAU,OAAO;AAE3C,wCACG,UAAA,EAAO,WAAU,yEAChB,UAAAC,2BAAAA,KAAC,OAAA,EAAI,WAAU,0CACZ,UAAA;AAAA,IAAA,aAAa,WACZC,2BAAAA,IAAC,OAAA,EAAI,WAAU,oBACb,UAAAA,2BAAAA,IAACC,0CAAA,EAAoB,UAAoB,MAAK,SAAQ,EAAA,CACxD,IAEAD,2BAAAA,IAAC,QAAA,EAAK,WAAU,0IACd,UAAAA,2BAAAA;AAAAA,MAACE,KAAAA;AAAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,MAAK;AAAA,QACJ,GAAI,gBAAgB,EAAE,WAAW,kBAAkB,CAAA;AAAA,MAAC;AAAA,IAAA,GAEzD;AAAA,IAEFH,2BAAAA,KAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,MAAAA,2BAAAA,KAAC,OAAA,EAAI,WAAU,6CACb,UAAA;AAAA,QAAAC,2BAAAA,IAAC,MAAA,EAAG,WAAU,sFACX,UAAA,OACH;AAAA,QACC,cACCD,2BAAAA,KAAC,QAAA,EAAK,WAAU,mLACb,UAAA;AAAA,UAAA,wCAAUG,KAAAA,MAAA,EAAK,MAAM,OAAO,MAAM,MAAK,MAAK,IAAK;AAAA,UACjDC,YAAAA,iBAAiB,WAAW;AAAA,QAAA,EAAA,CAC/B,IACE;AAAA,MAAA,GACN;AAAA,MACAH,2BAAAA,IAAC,SAAI,WAAU,0FACZ,kBAAQ,YACPD,2BAAAA,KAAC,QAAA,EAAK,WAAU,kCACd,UAAA;AAAA,QAAAC,2BAAAA,IAACE,KAAAA,MAAA,EAAK,MAAME,QAAAA,SAAS,MAAK,MAAK;AAAA,QAC9BC,uBAAAA,cAAc,QAAQ,WAAW,QAAQ,OAAO;AAAA,MAAA,EAAA,CACnD,IACE,KAAA,CACN;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAEJ;AAEO,SAAS,wBAAwB;AAAA,EACtC;AACF,GAEG;;AACD,QAAM,UAAUZ,uBAAAA,kBAAkB,QAAQ,OAAO;AACjD,QAAM,eAAc,mCAAS,SAAQE,UAAAA;AACrC,QAAM,QAAQ,QAAQ,SAAS,QAAQ;AACvC,QAAMW,WAASC,YAAAA,WAAW,KAAK;AAC/B,QAAM,OAAOC,YAAAA,UAAU,QAAQ,IAAI;AAEnC,SACET,2BAAAA,KAAC,SAAA,EAAM,WAAU,wGACf,UAAA;AAAA,IAAAA,gCAAC,WAAA,EACC,UAAA;AAAA,MAAAC,2BAAAA,IAAC,MAAA,EAAG,WAAU,uEAAsE,UAAA,mBAEpF;AAAA,MACAD,2BAAAA,KAAC,MAAA,EAAG,WAAU,kCACZ,UAAA;AAAA,QAAAC,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAMS,QAAAA;AAAAA,YACN,OAAM;AAAA,YACN,OAAOC,uBAAAA,WAAW,QAAQ,SAAS;AAAA,UAAA;AAAA,QAAA;AAAA,QAErCV,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAML,UAAAA;AAAAA,YACN,OAAM;AAAA,YACN,OAAO,QAAQ,YAAY,QAAQ;AAAA,UAAA;AAAA,QAAA;AAAA,QAErCK,2BAAAA,IAAC,OAAA,EAAI,eAAY,wBACf,UAAAA,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAM;AAAA,YACN,OAAM;AAAA,YACN,QAAO,mCAAS,SAAQ,QAAQ;AAAA,YAC/B,IAAI,mCAAS,SAAQ,EAAE,OAAO,QAAQ,MAAA,IAAU,CAAA;AAAA,UAAC;AAAA,QAAA,GAEtD;AAAA,QACAA,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAMW,gBAAAA;AAAAA,YACN,OAAM;AAAA,YACN,QAAO,aAAQ,SAAR,mBAAc;AAAA,UAAA;AAAA,QAAA;AAAA,QAEvBX,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAMY,cAAAA;AAAAA,YACN,OAAM;AAAA,YACN,OAAO,QAAQ;AAAA,YACf,MAAI;AAAA,UAAA;AAAA,QAAA;AAAA,MACN,EAAA,CACF;AAAA,IAAA,GACF;AAAA,IAEAb,2BAAAA,KAAC,WAAA,EAAQ,WAAU,oFACjB,UAAA;AAAA,MAAAA,2BAAAA,KAAC,OAAA,EAAI,WAAU,uGACb,UAAA;AAAA,QAAAC,2BAAAA,IAACE,KAAAA,MAAA,EAAK,MAAMW,QAAAA,SAAS,MAAK,MAAK;AAAA,QAAE;AAAA,MAAA,GAEnC;AAAA,MACAd,2BAAAA,KAAC,OAAA,EAAI,WAAU,+CACb,UAAA;AAAA,QAAAC,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,OAAOM,WAAS,cAAcA,QAAM,IAAI;AAAA,UAAA;AAAA,QAAA;AAAA,QAE1CN,2BAAAA,IAAC,eAAY,OAAM,QAAO,OAAO,OAAOc,kBAAW,IAAI,IAAI,KAAK;AAAA,QAChEd,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,QAAO,+BAAO,eAAce,OAAAA,cAAc,MAAM,WAAW,IAAI;AAAA,UAAA;AAAA,QAAA;AAAA,QAEjEf,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,QACE,+BAAO,gBAAee,OAAAA,cAAc,MAAM,YAAY,IAAI;AAAA,UAAA;AAAA,QAAA;AAAA,MAE9D,EAAA,CACF;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;AAEA,SAAS,UAAU;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AACT,GAMG;AACD,MAAI,UAAU,UAAa,UAAU,QAAQ,UAAU,GAAI,QAAO;AAClE,SACEhB,2BAAAA,KAAC,OAAA,EAAI,WAAU,uDACb,UAAA;AAAA,IAAAC,2BAAAA,IAACE,KAAAA,MAAA,EAAK,MAAY,MAAK,MAAK,WAAU,gCAA+B;AAAA,IACrEH,2BAAAA,KAAC,OAAA,EAAI,WAAU,WACb,UAAA;AAAA,MAAAC,2BAAAA,IAAC,MAAA,EAAG,WAAU,qCAAqC,UAAA,OAAM;AAAA,MACzDA,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,WACE,OACI,+CACA;AAAA,UAEN;AAAA,UAEC,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACH,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;AAEA,SAAS,YAAY,EAAE,OAAO,SAA8C;AAC1E,yCACG,OAAA,EACC,UAAA;AAAA,IAAAA,2BAAAA,IAAC,OAAA,EAAI,WAAU,qCAAqC,UAAA,OAAM;AAAA,IAC1DA,2BAAAA,IAAC,OAAA,EAAI,WAAU,6DACZ,UAAA,MAAA,CACH;AAAA,EAAA,GACF;AAEJ;AAEA,SAAS,cAAc,OAAe;AACpC,MAAI,SAAS,OAAS,QAAQ,OAAU,QAAQ,QAAU,GAAG;AAC3D,WAAO,IAAI,QAAQ,KAAO,QAAQ,CAAC,CAAC;AAAA,EACtC;AACA,SAAOe,OAAAA,cAAc,KAAK;AAC5B;;;"}
@@ -0,0 +1,8 @@
1
+ import { UnifiedSessionInput } from './SessionViewer.unified';
2
+ export declare function SessionInspectorHeader({ session, }: {
3
+ session: UnifiedSessionInput;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ export declare function SessionInspectorSidebar({ session, }: {
6
+ session: UnifiedSessionInput;
7
+ }): import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=SessionInspector.summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionInspector.summary.d.ts","sourceRoot":"","sources":["../../../src/data/ai/SessionInspector.summary.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,GACR,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;CAC9B,2CAyDA;AAED,wBAAgB,uBAAuB,CAAC,EACtC,OAAO,GACR,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;CAC9B,2CAuEA"}
@@ -0,0 +1,182 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Icon } from "../Icon.js";
3
+ import { effortLevelLabel } from "../chat/effort-icons.js";
4
+ import { providerIcon, providerIconColor } from "../chat/provider-icons.js";
5
+ import { effortIcon } from "./agent-action-icons.js";
6
+ import { tokenTotal, costTotal } from "./session-cost.js";
7
+ import { runtimeDescriptor, durationLabel, formatDate } from "./SessionInspector.model.js";
8
+ import { SessionContextMeter } from "./SessionViewer.header.js";
9
+ import { getSessionMetadata } from "./SessionViewer.model.js";
10
+ import { UiRobotAi } from "../../icons/components/UiRobotAi.js";
11
+ import { UiTimer } from "../../icons/components/UiTimer.js";
12
+ import { UiClock } from "../../icons/components/UiClock.js";
13
+ import { UiServerProcess } from "../../icons/components/UiServerProcess.js";
14
+ import { UiFingerprint } from "../../icons/components/UiFingerprint.js";
15
+ import { UiCoins } from "../../icons/components/UiCoins.js";
16
+ import { formatCost, compactTokens } from "../../lib/tokens.js";
17
+ function SessionInspectorHeader({
18
+ session
19
+ }) {
20
+ var _a, _b, _c;
21
+ const provider = runtimeDescriptor(session.backend);
22
+ const providerId = session.provider || (provider == null ? void 0 : provider.family);
23
+ const ProviderIcon = providerIcon(providerId) ?? UiRobotAi;
24
+ const providerColor = providerIconColor(providerId);
25
+ const effortValue = (_a = session.reasoningEffort) == null ? void 0 : _a.trim();
26
+ const effort = effortValue ? effortIcon(effortValue) : void 0;
27
+ const title = ((_b = session.title) == null ? void 0 : _b.trim()) || ((_c = session.initialPrompt) == null ? void 0 : _c.trim()) || session.model || (provider == null ? void 0 : provider.family) || session.provider || "Session";
28
+ const metadata = getSessionMetadata(session);
29
+ const showMeter = Boolean(metadata == null ? void 0 : metadata.context);
30
+ return /* @__PURE__ */ jsx("header", { className: "shrink-0 border-b border-border bg-muted/20 px-density-2 py-density-3", children: /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-start gap-density-3", children: [
31
+ showMeter && metadata ? /* @__PURE__ */ jsx("div", { className: "-ml-1.5 shrink-0", children: /* @__PURE__ */ jsx(SessionContextMeter, { metadata, mode: "gauge" }) }) : /* @__PURE__ */ jsx("span", { className: "mt-0.5 inline-flex size-9 shrink-0 items-center justify-center rounded-lg border border-border bg-background text-foreground shadow-sm", children: /* @__PURE__ */ jsx(
32
+ Icon,
33
+ {
34
+ icon: ProviderIcon,
35
+ size: "md",
36
+ ...providerColor ? { className: providerColor } : {}
37
+ }
38
+ ) }),
39
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
40
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-density-2", children: [
41
+ /* @__PURE__ */ jsx("h2", { className: "min-w-0 max-w-full truncate text-base font-semibold tracking-tight text-foreground", children: title }),
42
+ effortValue ? /* @__PURE__ */ jsxs("span", { className: "inline-flex shrink-0 items-center gap-1 rounded-full border border-border bg-background px-2 py-0.5 text-xs max-sm:basis-full max-sm:border-0 max-sm:bg-transparent max-sm:px-0", children: [
43
+ effort ? /* @__PURE__ */ jsx(Icon, { icon: effort.icon, size: "xs" }) : null,
44
+ effortLevelLabel(effortValue)
45
+ ] }) : null
46
+ ] }),
47
+ /* @__PURE__ */ jsx("div", { className: "mt-1 flex flex-wrap items-center gap-x-density-3 gap-y-1 text-xs text-muted-foreground", children: session.startedAt ? /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1", children: [
48
+ /* @__PURE__ */ jsx(Icon, { icon: UiTimer, size: "xs" }),
49
+ durationLabel(session.startedAt, session.endedAt)
50
+ ] }) : null })
51
+ ] })
52
+ ] }) });
53
+ }
54
+ function SessionInspectorSidebar({
55
+ session
56
+ }) {
57
+ var _a;
58
+ const runtime = runtimeDescriptor(session.backend);
59
+ const RuntimeIcon = (runtime == null ? void 0 : runtime.icon) ?? UiRobotAi;
60
+ const usage = session.usage ?? session.cost;
61
+ const tokens = tokenTotal(usage);
62
+ const cost = costTotal(session.cost);
63
+ return /* @__PURE__ */ jsxs("aside", { className: "border-t border-border bg-muted/10 p-density-4 lg:min-h-0 lg:overflow-auto lg:border-l lg:border-t-0", children: [
64
+ /* @__PURE__ */ jsxs("section", { children: [
65
+ /* @__PURE__ */ jsx("h3", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: "Session details" }),
66
+ /* @__PURE__ */ jsxs("dl", { className: "mt-density-3 space-y-density-3", children: [
67
+ /* @__PURE__ */ jsx(
68
+ DetailRow,
69
+ {
70
+ icon: UiClock,
71
+ label: "Started",
72
+ value: formatDate(session.startedAt)
73
+ }
74
+ ),
75
+ /* @__PURE__ */ jsx(
76
+ DetailRow,
77
+ {
78
+ icon: UiRobotAi,
79
+ label: "Connection",
80
+ value: session.provider || session.source
81
+ }
82
+ ),
83
+ /* @__PURE__ */ jsx("div", { "data-testid": "session-runtime-mode", children: /* @__PURE__ */ jsx(
84
+ DetailRow,
85
+ {
86
+ icon: RuntimeIcon,
87
+ label: "Mode",
88
+ value: (runtime == null ? void 0 : runtime.mode) || session.backend,
89
+ ...(runtime == null ? void 0 : runtime.title) ? { title: runtime.title } : {}
90
+ }
91
+ ) }),
92
+ /* @__PURE__ */ jsx(
93
+ DetailRow,
94
+ {
95
+ icon: UiServerProcess,
96
+ label: "PID",
97
+ value: (_a = session.live) == null ? void 0 : _a.pid
98
+ }
99
+ ),
100
+ /* @__PURE__ */ jsx(
101
+ DetailRow,
102
+ {
103
+ icon: UiFingerprint,
104
+ label: "Session ID",
105
+ value: session.id,
106
+ mono: true
107
+ }
108
+ )
109
+ ] })
110
+ ] }),
111
+ /* @__PURE__ */ jsxs("section", { className: "mt-density-5 rounded-lg border border-border bg-background p-density-3 shadow-sm", children: [
112
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-density-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: [
113
+ /* @__PURE__ */ jsx(Icon, { icon: UiCoins, size: "xs" }),
114
+ "Usage"
115
+ ] }),
116
+ /* @__PURE__ */ jsxs("div", { className: "mt-density-3 grid grid-cols-2 gap-density-3", children: [
117
+ /* @__PURE__ */ jsx(
118
+ UsageMetric,
119
+ {
120
+ label: "Tokens",
121
+ value: tokens ? preciseTokens(tokens) : "-"
122
+ }
123
+ ),
124
+ /* @__PURE__ */ jsx(UsageMetric, { label: "Cost", value: cost ? formatCost(cost) : "-" }),
125
+ /* @__PURE__ */ jsx(
126
+ UsageMetric,
127
+ {
128
+ label: "Input",
129
+ value: (usage == null ? void 0 : usage.inputTokens) ? compactTokens(usage.inputTokens) : "-"
130
+ }
131
+ ),
132
+ /* @__PURE__ */ jsx(
133
+ UsageMetric,
134
+ {
135
+ label: "Output",
136
+ value: (usage == null ? void 0 : usage.outputTokens) ? compactTokens(usage.outputTokens) : "-"
137
+ }
138
+ )
139
+ ] })
140
+ ] })
141
+ ] });
142
+ }
143
+ function DetailRow({
144
+ icon,
145
+ label,
146
+ value,
147
+ title,
148
+ mono = false
149
+ }) {
150
+ if (value === void 0 || value === null || value === "") return null;
151
+ return /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[1rem_minmax(0,1fr)] gap-x-density-2", children: [
152
+ /* @__PURE__ */ jsx(Icon, { icon, size: "xs", className: "mt-0.5 text-muted-foreground" }),
153
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
154
+ /* @__PURE__ */ jsx("dt", { className: "text-[11px] text-muted-foreground", children: label }),
155
+ /* @__PURE__ */ jsx(
156
+ "dd",
157
+ {
158
+ className: mono ? "truncate font-mono text-xs text-foreground" : "truncate text-sm text-foreground",
159
+ title,
160
+ children: value
161
+ }
162
+ )
163
+ ] })
164
+ ] });
165
+ }
166
+ function UsageMetric({ label, value }) {
167
+ return /* @__PURE__ */ jsxs("div", { children: [
168
+ /* @__PURE__ */ jsx("div", { className: "text-[11px] text-muted-foreground", children: label }),
169
+ /* @__PURE__ */ jsx("div", { className: "mt-0.5 text-sm font-semibold tabular-nums text-foreground", children: value })
170
+ ] });
171
+ }
172
+ function preciseTokens(value) {
173
+ if (value >= 1e3 && value < 1e4 && value % 1e3 !== 0) {
174
+ return `${(value / 1e3).toFixed(1)}k`;
175
+ }
176
+ return compactTokens(value);
177
+ }
178
+ export {
179
+ SessionInspectorHeader,
180
+ SessionInspectorSidebar
181
+ };
182
+ //# sourceMappingURL=SessionInspector.summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionInspector.summary.js","sources":["../../../src/data/ai/SessionInspector.summary.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport {\n UiClock,\n UiCoins,\n UiFingerprint,\n UiRobotAi,\n UiServerProcess,\n UiTimer,\n} from \"../../icons\";\nimport { Icon, type StaticIconComponent } from \"../Icon\";\nimport { effortLevelLabel } from \"../chat/effort-icons\";\nimport { providerIcon, providerIconColor } from \"../chat/provider-icons\";\nimport { effortIcon } from \"./agent-action-icons\";\nimport {\n compactTokens,\n costTotal,\n formatCost,\n tokenTotal,\n} from \"./session-cost\";\nimport {\n durationLabel,\n formatDate,\n runtimeDescriptor,\n} from \"./SessionInspector.model\";\nimport { SessionContextMeter } from \"./SessionViewer.header\";\nimport { getSessionMetadata } from \"./SessionViewer.model\";\nimport type { UnifiedSessionInput } from \"./SessionViewer.unified\";\n\nexport function SessionInspectorHeader({\n session,\n}: {\n session: UnifiedSessionInput;\n}) {\n const provider = runtimeDescriptor(session.backend);\n const providerId = session.provider || provider?.family;\n const ProviderIcon = providerIcon(providerId) ?? UiRobotAi;\n const providerColor = providerIconColor(providerId);\n const effortValue = session.reasoningEffort?.trim();\n const effort = effortValue ? effortIcon(effortValue) : undefined;\n const title =\n session.title?.trim() ||\n session.initialPrompt?.trim() ||\n session.model ||\n provider?.family ||\n session.provider ||\n \"Session\";\n const metadata = getSessionMetadata(session);\n const showMeter = Boolean(metadata?.context);\n\n return (\n <header className=\"shrink-0 border-b border-border bg-muted/20 px-density-2 py-density-3\">\n <div className=\"flex min-w-0 items-start gap-density-3\">\n {showMeter && metadata ? (\n <div className=\"-ml-1.5 shrink-0\">\n <SessionContextMeter metadata={metadata} mode=\"gauge\" />\n </div>\n ) : (\n <span className=\"mt-0.5 inline-flex size-9 shrink-0 items-center justify-center rounded-lg border border-border bg-background text-foreground shadow-sm\">\n <Icon\n icon={ProviderIcon}\n size=\"md\"\n {...(providerColor ? { className: providerColor } : {})}\n />\n </span>\n )}\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex flex-wrap items-center gap-density-2\">\n <h2 className=\"min-w-0 max-w-full truncate text-base font-semibold tracking-tight text-foreground\">\n {title}\n </h2>\n {effortValue ? (\n <span className=\"inline-flex shrink-0 items-center gap-1 rounded-full border border-border bg-background px-2 py-0.5 text-xs max-sm:basis-full max-sm:border-0 max-sm:bg-transparent max-sm:px-0\">\n {effort ? <Icon icon={effort.icon} size=\"xs\" /> : null}\n {effortLevelLabel(effortValue)}\n </span>\n ) : null}\n </div>\n <div className=\"mt-1 flex flex-wrap items-center gap-x-density-3 gap-y-1 text-xs text-muted-foreground\">\n {session.startedAt ? (\n <span className=\"inline-flex items-center gap-1\">\n <Icon icon={UiTimer} size=\"xs\" />\n {durationLabel(session.startedAt, session.endedAt)}\n </span>\n ) : null}\n </div>\n </div>\n </div>\n </header>\n );\n}\n\nexport function SessionInspectorSidebar({\n session,\n}: {\n session: UnifiedSessionInput;\n}) {\n const runtime = runtimeDescriptor(session.backend);\n const RuntimeIcon = runtime?.icon ?? UiRobotAi;\n const usage = session.usage ?? session.cost;\n const tokens = tokenTotal(usage);\n const cost = costTotal(session.cost);\n\n return (\n <aside className=\"border-t border-border bg-muted/10 p-density-4 lg:min-h-0 lg:overflow-auto lg:border-l lg:border-t-0\">\n <section>\n <h3 className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Session details\n </h3>\n <dl className=\"mt-density-3 space-y-density-3\">\n <DetailRow\n icon={UiClock}\n label=\"Started\"\n value={formatDate(session.startedAt)}\n />\n <DetailRow\n icon={UiRobotAi}\n label=\"Connection\"\n value={session.provider || session.source}\n />\n <div data-testid=\"session-runtime-mode\">\n <DetailRow\n icon={RuntimeIcon}\n label=\"Mode\"\n value={runtime?.mode || session.backend}\n {...(runtime?.title ? { title: runtime.title } : {})}\n />\n </div>\n <DetailRow\n icon={UiServerProcess}\n label=\"PID\"\n value={session.live?.pid}\n />\n <DetailRow\n icon={UiFingerprint}\n label=\"Session ID\"\n value={session.id}\n mono\n />\n </dl>\n </section>\n\n <section className=\"mt-density-5 rounded-lg border border-border bg-background p-density-3 shadow-sm\">\n <div className=\"flex items-center gap-density-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n <Icon icon={UiCoins} size=\"xs\" />\n Usage\n </div>\n <div className=\"mt-density-3 grid grid-cols-2 gap-density-3\">\n <UsageMetric\n label=\"Tokens\"\n value={tokens ? preciseTokens(tokens) : \"-\"}\n />\n <UsageMetric label=\"Cost\" value={cost ? formatCost(cost) : \"-\"} />\n <UsageMetric\n label=\"Input\"\n value={usage?.inputTokens ? compactTokens(usage.inputTokens) : \"-\"}\n />\n <UsageMetric\n label=\"Output\"\n value={\n usage?.outputTokens ? compactTokens(usage.outputTokens) : \"-\"\n }\n />\n </div>\n </section>\n </aside>\n );\n}\n\nfunction DetailRow({\n icon,\n label,\n value,\n title,\n mono = false,\n}: {\n icon: StaticIconComponent;\n label: string;\n value: ReactNode;\n title?: string;\n mono?: boolean;\n}) {\n if (value === undefined || value === null || value === \"\") return null;\n return (\n <div className=\"grid grid-cols-[1rem_minmax(0,1fr)] gap-x-density-2\">\n <Icon icon={icon} size=\"xs\" className=\"mt-0.5 text-muted-foreground\" />\n <div className=\"min-w-0\">\n <dt className=\"text-[11px] text-muted-foreground\">{label}</dt>\n <dd\n className={\n mono\n ? \"truncate font-mono text-xs text-foreground\"\n : \"truncate text-sm text-foreground\"\n }\n title={title}\n >\n {value}\n </dd>\n </div>\n </div>\n );\n}\n\nfunction UsageMetric({ label, value }: { label: string; value: ReactNode }) {\n return (\n <div>\n <div className=\"text-[11px] text-muted-foreground\">{label}</div>\n <div className=\"mt-0.5 text-sm font-semibold tabular-nums text-foreground\">\n {value}\n </div>\n </div>\n );\n}\n\nfunction preciseTokens(value: number) {\n if (value >= 1_000 && value < 10_000 && value % 1_000 !== 0) {\n return `${(value / 1_000).toFixed(1)}k`;\n }\n return compactTokens(value);\n}\n"],"names":[],"mappings":"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"}