@flanksource/clicky-ui 0.3.17 → 0.3.18

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 (822) hide show
  1. package/dist/ai.cjs +12 -6
  2. package/dist/ai.cjs.map +1 -1
  3. package/dist/ai.js +10 -4
  4. package/dist/ai.js.map +1 -1
  5. package/dist/chat.cjs +36 -0
  6. package/dist/chat.cjs.map +1 -1
  7. package/dist/chat.js +37 -1
  8. package/dist/chat.js.map +1 -1
  9. package/dist/components/Combobox.cjs +122 -153
  10. package/dist/components/Combobox.cjs.map +1 -1
  11. package/dist/components/Combobox.d.ts.map +1 -1
  12. package/dist/components/Combobox.js +124 -155
  13. package/dist/components/Combobox.js.map +1 -1
  14. package/dist/components/ComboboxControl.cjs +145 -0
  15. package/dist/components/ComboboxControl.cjs.map +1 -0
  16. package/dist/components/ComboboxControl.d.ts +37 -0
  17. package/dist/components/ComboboxControl.d.ts.map +1 -0
  18. package/dist/components/ComboboxControl.js +145 -0
  19. package/dist/components/ComboboxControl.js.map +1 -0
  20. package/dist/components/ComboboxMenu.cjs +31 -14
  21. package/dist/components/ComboboxMenu.cjs.map +1 -1
  22. package/dist/components/ComboboxMenu.d.ts.map +1 -1
  23. package/dist/components/ComboboxMenu.js +31 -14
  24. package/dist/components/ComboboxMenu.js.map +1 -1
  25. package/dist/components/ComboboxTags.cjs +40 -0
  26. package/dist/components/ComboboxTags.cjs.map +1 -0
  27. package/dist/components/ComboboxTags.d.ts +8 -0
  28. package/dist/components/ComboboxTags.d.ts.map +1 -0
  29. package/dist/components/ComboboxTags.js +40 -0
  30. package/dist/components/ComboboxTags.js.map +1 -0
  31. package/dist/components/ErrorWrapper.cjs +168 -0
  32. package/dist/components/ErrorWrapper.cjs.map +1 -0
  33. package/dist/components/ErrorWrapper.d.ts +19 -0
  34. package/dist/components/ErrorWrapper.d.ts.map +1 -0
  35. package/dist/components/ErrorWrapper.js +168 -0
  36. package/dist/components/ErrorWrapper.js.map +1 -0
  37. package/dist/components/FilterBar.cjs +64 -2
  38. package/dist/components/FilterBar.cjs.map +1 -1
  39. package/dist/components/FilterBar.d.ts +18 -1
  40. package/dist/components/FilterBar.d.ts.map +1 -1
  41. package/dist/components/FilterBar.js +64 -2
  42. package/dist/components/FilterBar.js.map +1 -1
  43. package/dist/components/JSONPathField.cjs +91 -0
  44. package/dist/components/JSONPathField.cjs.map +1 -0
  45. package/dist/components/JSONPathField.d.ts +19 -0
  46. package/dist/components/JSONPathField.d.ts.map +1 -0
  47. package/dist/components/JSONPathField.js +91 -0
  48. package/dist/components/JSONPathField.js.map +1 -0
  49. package/dist/components/JsonSchemaForm.cjs +8 -4
  50. package/dist/components/JsonSchemaForm.cjs.map +1 -1
  51. package/dist/components/JsonSchemaForm.d.ts.map +1 -1
  52. package/dist/components/JsonSchemaForm.js +8 -4
  53. package/dist/components/JsonSchemaForm.js.map +1 -1
  54. package/dist/components/TreePickerField.cjs +22 -4
  55. package/dist/components/TreePickerField.cjs.map +1 -1
  56. package/dist/components/TreePickerField.d.ts +22 -2
  57. package/dist/components/TreePickerField.d.ts.map +1 -1
  58. package/dist/components/TreePickerField.js +22 -4
  59. package/dist/components/TreePickerField.js.map +1 -1
  60. package/dist/components/TriStateToggle.cjs +53 -0
  61. package/dist/components/TriStateToggle.cjs.map +1 -0
  62. package/dist/components/TriStateToggle.d.ts +27 -0
  63. package/dist/components/TriStateToggle.d.ts.map +1 -0
  64. package/dist/components/TriStateToggle.js +53 -0
  65. package/dist/components/TriStateToggle.js.map +1 -0
  66. package/dist/components/combobox-types.d.ts +16 -1
  67. package/dist/components/combobox-types.d.ts.map +1 -1
  68. package/dist/components/combobox-utils.cjs +26 -0
  69. package/dist/components/combobox-utils.cjs.map +1 -1
  70. package/dist/components/combobox-utils.d.ts +10 -0
  71. package/dist/components/combobox-utils.d.ts.map +1 -1
  72. package/dist/components/combobox-utils.js +26 -0
  73. package/dist/components/combobox-utils.js.map +1 -1
  74. package/dist/components/filter-bar-utils.cjs +5 -0
  75. package/dist/components/filter-bar-utils.cjs.map +1 -1
  76. package/dist/components/filter-bar-utils.d.ts.map +1 -1
  77. package/dist/components/filter-bar-utils.js +5 -0
  78. package/dist/components/filter-bar-utils.js.map +1 -1
  79. package/dist/components/json-schema-form-accordion-array.cjs +290 -0
  80. package/dist/components/json-schema-form-accordion-array.cjs.map +1 -0
  81. package/dist/components/json-schema-form-accordion-array.d.ts +7 -0
  82. package/dist/components/json-schema-form-accordion-array.d.ts.map +1 -0
  83. package/dist/components/json-schema-form-accordion-array.js +290 -0
  84. package/dist/components/json-schema-form-accordion-array.js.map +1 -0
  85. package/dist/components/json-schema-form-array.cjs +99 -110
  86. package/dist/components/json-schema-form-array.cjs.map +1 -1
  87. package/dist/components/json-schema-form-array.d.ts +1 -1
  88. package/dist/components/json-schema-form-array.d.ts.map +1 -1
  89. package/dist/components/json-schema-form-array.js +98 -109
  90. package/dist/components/json-schema-form-array.js.map +1 -1
  91. package/dist/components/json-schema-form-error-display.cjs +4 -2
  92. package/dist/components/json-schema-form-error-display.cjs.map +1 -1
  93. package/dist/components/json-schema-form-error-display.d.ts +4 -2
  94. package/dist/components/json-schema-form-error-display.d.ts.map +1 -1
  95. package/dist/components/json-schema-form-error-display.js +4 -2
  96. package/dist/components/json-schema-form-error-display.js.map +1 -1
  97. package/dist/components/json-schema-form-extensions.cjs +10 -0
  98. package/dist/components/json-schema-form-extensions.cjs.map +1 -0
  99. package/dist/components/json-schema-form-extensions.d.ts +8 -0
  100. package/dist/components/json-schema-form-extensions.d.ts.map +1 -0
  101. package/dist/components/json-schema-form-extensions.js +10 -0
  102. package/dist/components/json-schema-form-extensions.js.map +1 -0
  103. package/dist/components/json-schema-form-fields.cjs +25 -101
  104. package/dist/components/json-schema-form-fields.cjs.map +1 -1
  105. package/dist/components/json-schema-form-fields.d.ts +1 -32
  106. package/dist/components/json-schema-form-fields.d.ts.map +1 -1
  107. package/dist/components/json-schema-form-fields.js +28 -104
  108. package/dist/components/json-schema-form-fields.js.map +1 -1
  109. package/dist/components/json-schema-form-item-summary.cjs +131 -0
  110. package/dist/components/json-schema-form-item-summary.cjs.map +1 -0
  111. package/dist/components/json-schema-form-item-summary.d.ts +13 -0
  112. package/dist/components/json-schema-form-item-summary.d.ts.map +1 -0
  113. package/dist/components/json-schema-form-item-summary.js +131 -0
  114. package/dist/components/json-schema-form-item-summary.js.map +1 -0
  115. package/dist/components/json-schema-form-layout.cjs +156 -0
  116. package/dist/components/json-schema-form-layout.cjs.map +1 -0
  117. package/dist/components/json-schema-form-layout.d.ts +43 -0
  118. package/dist/components/json-schema-form-layout.d.ts.map +1 -0
  119. package/dist/components/json-schema-form-layout.js +156 -0
  120. package/dist/components/json-schema-form-layout.js.map +1 -0
  121. package/dist/components/json-schema-form-lookup-tree.cjs +149 -0
  122. package/dist/components/json-schema-form-lookup-tree.cjs.map +1 -0
  123. package/dist/components/json-schema-form-lookup-tree.d.ts +22 -0
  124. package/dist/components/json-schema-form-lookup-tree.d.ts.map +1 -0
  125. package/dist/components/json-schema-form-lookup-tree.js +149 -0
  126. package/dist/components/json-schema-form-lookup-tree.js.map +1 -0
  127. package/dist/components/json-schema-form-object.cjs +11 -4
  128. package/dist/components/json-schema-form-object.cjs.map +1 -1
  129. package/dist/components/json-schema-form-object.d.ts.map +1 -1
  130. package/dist/components/json-schema-form-object.js +11 -4
  131. package/dist/components/json-schema-form-object.js.map +1 -1
  132. package/dist/components/json-schema-form-render.cjs +51 -28
  133. package/dist/components/json-schema-form-render.cjs.map +1 -1
  134. package/dist/components/json-schema-form-render.d.ts.map +1 -1
  135. package/dist/components/json-schema-form-render.js +51 -28
  136. package/dist/components/json-schema-form-render.js.map +1 -1
  137. package/dist/components/json-schema-form-resolve.cjs +62 -13
  138. package/dist/components/json-schema-form-resolve.cjs.map +1 -1
  139. package/dist/components/json-schema-form-resolve.d.ts +1 -0
  140. package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
  141. package/dist/components/json-schema-form-resolve.js +62 -13
  142. package/dist/components/json-schema-form-resolve.js.map +1 -1
  143. package/dist/components/json-schema-form-table-array.cjs +123 -0
  144. package/dist/components/json-schema-form-table-array.cjs.map +1 -0
  145. package/dist/components/json-schema-form-table-array.d.ts +7 -0
  146. package/dist/components/json-schema-form-table-array.d.ts.map +1 -0
  147. package/dist/components/json-schema-form-table-array.js +123 -0
  148. package/dist/components/json-schema-form-table-array.js.map +1 -0
  149. package/dist/components/json-schema-form-tone.cjs +34 -0
  150. package/dist/components/json-schema-form-tone.cjs.map +1 -0
  151. package/dist/components/json-schema-form-tone.d.ts +8 -0
  152. package/dist/components/json-schema-form-tone.d.ts.map +1 -0
  153. package/dist/components/json-schema-form-tone.js +34 -0
  154. package/dist/components/json-schema-form-tone.js.map +1 -0
  155. package/dist/components/json-schema-form-types.d.ts +79 -10
  156. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  157. package/dist/components/json-schema-form-utils.cjs +47 -4
  158. package/dist/components/json-schema-form-utils.cjs.map +1 -1
  159. package/dist/components/json-schema-form-utils.d.ts +19 -4
  160. package/dist/components/json-schema-form-utils.d.ts.map +1 -1
  161. package/dist/components/json-schema-form-utils.js +47 -4
  162. package/dist/components/json-schema-form-utils.js.map +1 -1
  163. package/dist/components/tri-state.cjs +8 -0
  164. package/dist/components/tri-state.cjs.map +1 -0
  165. package/dist/components/tri-state.d.ts +5 -0
  166. package/dist/components/tri-state.d.ts.map +1 -0
  167. package/dist/components/tri-state.js +8 -0
  168. package/dist/components/tri-state.js.map +1 -0
  169. package/dist/components/useComboboxLayout.cjs +59 -0
  170. package/dist/components/useComboboxLayout.cjs.map +1 -0
  171. package/dist/components/useComboboxLayout.d.ts +5 -0
  172. package/dist/components/useComboboxLayout.d.ts.map +1 -0
  173. package/dist/components/useComboboxLayout.js +59 -0
  174. package/dist/components/useComboboxLayout.js.map +1 -0
  175. package/dist/components.cjs +21 -0
  176. package/dist/components.cjs.map +1 -1
  177. package/dist/components.d.ts +14 -4
  178. package/dist/components.d.ts.map +1 -1
  179. package/dist/components.js +22 -1
  180. package/dist/components.js.map +1 -1
  181. package/dist/data/Clicky.cjs +51 -2
  182. package/dist/data/Clicky.cjs.map +1 -1
  183. package/dist/data/Clicky.d.ts +10 -1
  184. package/dist/data/Clicky.d.ts.map +1 -1
  185. package/dist/data/Clicky.js +51 -2
  186. package/dist/data/Clicky.js.map +1 -1
  187. package/dist/data/DataTable.cjs +185 -53
  188. package/dist/data/DataTable.cjs.map +1 -1
  189. package/dist/data/DataTable.d.ts +63 -3
  190. package/dist/data/DataTable.d.ts.map +1 -1
  191. package/dist/data/DataTable.js +185 -53
  192. package/dist/data/DataTable.js.map +1 -1
  193. package/dist/data/LogsTable.cjs +10 -1
  194. package/dist/data/LogsTable.cjs.map +1 -1
  195. package/dist/data/LogsTable.d.ts +3 -1
  196. package/dist/data/LogsTable.d.ts.map +1 -1
  197. package/dist/data/LogsTable.js +10 -1
  198. package/dist/data/LogsTable.js.map +1 -1
  199. package/dist/data/TaskManager.cjs +99 -14
  200. package/dist/data/TaskManager.cjs.map +1 -1
  201. package/dist/data/TaskManager.d.ts.map +1 -1
  202. package/dist/data/TaskManager.js +100 -15
  203. package/dist/data/TaskManager.js.map +1 -1
  204. package/dist/data/TaskProgress.cjs +50 -11
  205. package/dist/data/TaskProgress.cjs.map +1 -1
  206. package/dist/data/TaskProgress.d.ts +2 -1
  207. package/dist/data/TaskProgress.d.ts.map +1 -1
  208. package/dist/data/TaskProgress.js +50 -11
  209. package/dist/data/TaskProgress.js.map +1 -1
  210. package/dist/data/ai/AdvancedChatConfig.cjs +289 -0
  211. package/dist/data/ai/AdvancedChatConfig.cjs.map +1 -0
  212. package/dist/data/ai/AdvancedChatConfig.d.ts +21 -0
  213. package/dist/data/ai/AdvancedChatConfig.d.ts.map +1 -0
  214. package/dist/data/ai/AdvancedChatConfig.js +289 -0
  215. package/dist/data/ai/AdvancedChatConfig.js.map +1 -0
  216. package/dist/data/ai/AdvancedCostsPanel.cjs +120 -0
  217. package/dist/data/ai/AdvancedCostsPanel.cjs.map +1 -0
  218. package/dist/data/ai/AdvancedCostsPanel.d.ts +16 -0
  219. package/dist/data/ai/AdvancedCostsPanel.d.ts.map +1 -0
  220. package/dist/data/ai/AdvancedCostsPanel.js +120 -0
  221. package/dist/data/ai/AdvancedCostsPanel.js.map +1 -0
  222. package/dist/data/ai/ChatWindow.catalogs.cjs +74 -0
  223. package/dist/data/ai/ChatWindow.catalogs.cjs.map +1 -0
  224. package/dist/data/ai/ChatWindow.catalogs.d.ts +16 -0
  225. package/dist/data/ai/ChatWindow.catalogs.d.ts.map +1 -0
  226. package/dist/data/ai/ChatWindow.catalogs.js +74 -0
  227. package/dist/data/ai/ChatWindow.catalogs.js.map +1 -0
  228. package/dist/data/ai/ChatWindow.cjs +78 -100
  229. package/dist/data/ai/ChatWindow.cjs.map +1 -1
  230. package/dist/data/ai/ChatWindow.d.ts +1 -1
  231. package/dist/data/ai/ChatWindow.d.ts.map +1 -1
  232. package/dist/data/ai/ChatWindow.js +80 -102
  233. package/dist/data/ai/ChatWindow.js.map +1 -1
  234. package/dist/data/ai/ChatWindow.preferences.cjs.map +1 -1
  235. package/dist/data/ai/ChatWindow.preferences.d.ts +2 -4
  236. package/dist/data/ai/ChatWindow.preferences.d.ts.map +1 -1
  237. package/dist/data/ai/ChatWindow.preferences.js.map +1 -1
  238. package/dist/data/ai/ChatWindow.runtime.cjs +120 -0
  239. package/dist/data/ai/ChatWindow.runtime.cjs.map +1 -0
  240. package/dist/data/ai/ChatWindow.runtime.d.ts +20 -0
  241. package/dist/data/ai/ChatWindow.runtime.d.ts.map +1 -0
  242. package/dist/data/ai/ChatWindow.runtime.js +120 -0
  243. package/dist/data/ai/ChatWindow.runtime.js.map +1 -0
  244. package/dist/data/ai/ChatWindow.thread.cjs +1 -1
  245. package/dist/data/ai/ChatWindow.thread.cjs.map +1 -1
  246. package/dist/data/ai/ChatWindow.thread.js +1 -1
  247. package/dist/data/ai/ChatWindow.thread.js.map +1 -1
  248. package/dist/data/ai/ChatWindow.tool-catalog.cjs +20 -0
  249. package/dist/data/ai/ChatWindow.tool-catalog.cjs.map +1 -1
  250. package/dist/data/ai/ChatWindow.tool-catalog.d.ts +17 -1
  251. package/dist/data/ai/ChatWindow.tool-catalog.d.ts.map +1 -1
  252. package/dist/data/ai/ChatWindow.tool-catalog.js +20 -0
  253. package/dist/data/ai/ChatWindow.tool-catalog.js.map +1 -1
  254. package/dist/data/ai/ChatWindow.types.d.ts +13 -5
  255. package/dist/data/ai/ChatWindow.types.d.ts.map +1 -1
  256. package/dist/data/ai/ChatWindowManager.cjs +3 -1
  257. package/dist/data/ai/ChatWindowManager.cjs.map +1 -1
  258. package/dist/data/ai/ChatWindowManager.d.ts.map +1 -1
  259. package/dist/data/ai/ChatWindowManager.js +3 -1
  260. package/dist/data/ai/ChatWindowManager.js.map +1 -1
  261. package/dist/data/ai/PromptPicker/PromptPicker.cjs +1 -1
  262. package/dist/data/ai/PromptPicker/PromptPicker.cjs.map +1 -1
  263. package/dist/data/ai/PromptPicker/PromptPicker.d.ts +1 -1
  264. package/dist/data/ai/PromptPicker/PromptPicker.d.ts.map +1 -1
  265. package/dist/data/ai/PromptPicker/PromptPicker.js +1 -1
  266. package/dist/data/ai/PromptPicker/PromptPicker.js.map +1 -1
  267. package/dist/data/ai/PromptRunEditor/index.cjs +2 -2
  268. package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
  269. package/dist/data/ai/PromptRunEditor/index.d.ts +1 -1
  270. package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
  271. package/dist/data/ai/PromptRunEditor/index.js +2 -2
  272. package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
  273. package/dist/data/ai/RuntimeModePicker.cjs +1 -1
  274. package/dist/data/ai/RuntimeModePicker.cjs.map +1 -1
  275. package/dist/data/ai/RuntimeModePicker.d.ts +1 -1
  276. package/dist/data/ai/RuntimeModePicker.d.ts.map +1 -1
  277. package/dist/data/ai/RuntimeModePicker.js +1 -1
  278. package/dist/data/ai/RuntimeModePicker.js.map +1 -1
  279. package/dist/data/ai/SessionInspector.files.cjs +26 -43
  280. package/dist/data/ai/SessionInspector.files.cjs.map +1 -1
  281. package/dist/data/ai/SessionInspector.files.d.ts.map +1 -1
  282. package/dist/data/ai/SessionInspector.files.js +26 -43
  283. package/dist/data/ai/SessionInspector.files.js.map +1 -1
  284. package/dist/data/ai/SessionInspector.hierarchy.cjs +1 -1
  285. package/dist/data/ai/SessionInspector.hierarchy.cjs.map +1 -1
  286. package/dist/data/ai/SessionInspector.hierarchy.js +1 -1
  287. package/dist/data/ai/SessionInspector.hierarchy.js.map +1 -1
  288. package/dist/data/ai/SessionInspector.model.cjs +1 -1
  289. package/dist/data/ai/SessionInspector.model.cjs.map +1 -1
  290. package/dist/data/ai/SessionInspector.model.js +1 -1
  291. package/dist/data/ai/SessionInspector.model.js.map +1 -1
  292. package/dist/data/ai/SessionViewer.rows.cjs +4 -16
  293. package/dist/data/ai/SessionViewer.rows.cjs.map +1 -1
  294. package/dist/data/ai/SessionViewer.rows.d.ts.map +1 -1
  295. package/dist/data/ai/SessionViewer.rows.js +4 -16
  296. package/dist/data/ai/SessionViewer.rows.js.map +1 -1
  297. package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs +12 -3
  298. package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs.map +1 -1
  299. package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts +1 -1
  300. package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts.map +1 -1
  301. package/dist/data/ai/SpecRuntimeEditor/ModelSection.js +12 -3
  302. package/dist/data/ai/SpecRuntimeEditor/ModelSection.js.map +1 -1
  303. package/dist/data/ai/SpecRuntimeEditor/VerifySection.cjs.map +1 -1
  304. package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts +1 -1
  305. package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts.map +1 -1
  306. package/dist/data/ai/SpecRuntimeEditor/VerifySection.js.map +1 -1
  307. package/dist/data/ai/SpecRuntimeEditor/fields.js +1 -1
  308. package/dist/data/ai/SpecRuntimeEditor/index.cjs.map +1 -1
  309. package/dist/data/ai/SpecRuntimeEditor/index.d.ts +2 -2
  310. package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -1
  311. package/dist/data/ai/SpecRuntimeEditor/index.js.map +1 -1
  312. package/dist/data/ai/ThreadPicker.cjs +65 -3
  313. package/dist/data/ai/ThreadPicker.cjs.map +1 -1
  314. package/dist/data/ai/ThreadPicker.d.ts +11 -5
  315. package/dist/data/ai/ThreadPicker.d.ts.map +1 -1
  316. package/dist/data/ai/ThreadPicker.js +65 -3
  317. package/dist/data/ai/ThreadPicker.js.map +1 -1
  318. package/dist/data/ai/ToolPreferences.cjs +65 -685
  319. package/dist/data/ai/ToolPreferences.cjs.map +1 -1
  320. package/dist/data/ai/ToolPreferences.d.ts +15 -17
  321. package/dist/data/ai/ToolPreferences.d.ts.map +1 -1
  322. package/dist/data/ai/ToolPreferences.js +64 -683
  323. package/dist/data/ai/ToolPreferences.js.map +1 -1
  324. package/dist/data/ai/ToolPreferences.model.cjs +148 -0
  325. package/dist/data/ai/ToolPreferences.model.cjs.map +1 -0
  326. package/dist/data/ai/ToolPreferences.model.d.ts +31 -0
  327. package/dist/data/ai/ToolPreferences.model.d.ts.map +1 -0
  328. package/dist/data/ai/ToolPreferences.model.js +148 -0
  329. package/dist/data/ai/ToolPreferences.model.js.map +1 -0
  330. package/dist/data/ai/ToolPreferencesList.cjs +270 -0
  331. package/dist/data/ai/ToolPreferencesList.cjs.map +1 -0
  332. package/dist/data/ai/ToolPreferencesList.d.ts +18 -0
  333. package/dist/data/ai/ToolPreferencesList.d.ts.map +1 -0
  334. package/dist/data/ai/ToolPreferencesList.js +270 -0
  335. package/dist/data/ai/ToolPreferencesList.js.map +1 -0
  336. package/dist/data/ai/agent-action-icons.cjs.map +1 -1
  337. package/dist/data/ai/agent-action-icons.js.map +1 -1
  338. package/dist/data/ai/chat-window-context.cjs +4 -1
  339. package/dist/data/ai/chat-window-context.cjs.map +1 -1
  340. package/dist/data/ai/chat-window-context.d.ts +7 -0
  341. package/dist/data/ai/chat-window-context.d.ts.map +1 -1
  342. package/dist/data/ai/chat-window-context.js +4 -1
  343. package/dist/data/ai/chat-window-context.js.map +1 -1
  344. package/dist/data/ai/index.d.ts +6 -3
  345. package/dist/data/ai/index.d.ts.map +1 -1
  346. package/dist/data/ai/session-tones.cjs +67 -0
  347. package/dist/data/ai/session-tones.cjs.map +1 -0
  348. package/dist/data/ai/session-tones.d.ts +34 -0
  349. package/dist/data/ai/session-tones.d.ts.map +1 -0
  350. package/dist/data/ai/session-tones.js +67 -0
  351. package/dist/data/ai/session-tones.js.map +1 -0
  352. package/dist/data/ai/thread-costs.cjs +39 -0
  353. package/dist/data/ai/thread-costs.cjs.map +1 -0
  354. package/dist/data/ai/thread-costs.d.ts +62 -0
  355. package/dist/data/ai/thread-costs.d.ts.map +1 -0
  356. package/dist/data/ai/thread-costs.js +39 -0
  357. package/dist/data/ai/thread-costs.js.map +1 -0
  358. package/dist/data/cells/CellFilterActions.cjs +68 -0
  359. package/dist/data/cells/CellFilterActions.cjs.map +1 -0
  360. package/dist/data/cells/CellFilterActions.d.ts +15 -0
  361. package/dist/data/cells/CellFilterActions.d.ts.map +1 -0
  362. package/dist/data/cells/CellFilterActions.js +68 -0
  363. package/dist/data/cells/CellFilterActions.js.map +1 -0
  364. package/dist/data/chat/Chat.cjs +156 -113
  365. package/dist/data/chat/Chat.cjs.map +1 -1
  366. package/dist/data/chat/Chat.d.ts +24 -7
  367. package/dist/data/chat/Chat.d.ts.map +1 -1
  368. package/dist/data/chat/Chat.fixtures.cjs +48 -3
  369. package/dist/data/chat/Chat.fixtures.cjs.map +1 -1
  370. package/dist/data/chat/Chat.fixtures.d.ts +1 -1
  371. package/dist/data/chat/Chat.fixtures.d.ts.map +1 -1
  372. package/dist/data/chat/Chat.fixtures.js +48 -3
  373. package/dist/data/chat/Chat.fixtures.js.map +1 -1
  374. package/dist/data/chat/Chat.js +160 -117
  375. package/dist/data/chat/Chat.js.map +1 -1
  376. package/dist/data/chat/Chat.runtime.cjs +63 -0
  377. package/dist/data/chat/Chat.runtime.cjs.map +1 -0
  378. package/dist/data/chat/Chat.runtime.d.ts +16 -0
  379. package/dist/data/chat/Chat.runtime.d.ts.map +1 -0
  380. package/dist/data/chat/Chat.runtime.js +63 -0
  381. package/dist/data/chat/Chat.runtime.js.map +1 -0
  382. package/dist/data/chat/ChatRuntimeToolbar.cjs +62 -0
  383. package/dist/data/chat/ChatRuntimeToolbar.cjs.map +1 -0
  384. package/dist/data/chat/ChatRuntimeToolbar.d.ts +14 -0
  385. package/dist/data/chat/ChatRuntimeToolbar.d.ts.map +1 -0
  386. package/dist/data/chat/ChatRuntimeToolbar.js +62 -0
  387. package/dist/data/chat/ChatRuntimeToolbar.js.map +1 -0
  388. package/dist/data/chat/ToolCall.cjs +86 -24
  389. package/dist/data/chat/ToolCall.cjs.map +1 -1
  390. package/dist/data/chat/ToolCall.d.ts +12 -5
  391. package/dist/data/chat/ToolCall.d.ts.map +1 -1
  392. package/dist/data/chat/ToolCall.js +86 -24
  393. package/dist/data/chat/ToolCall.js.map +1 -1
  394. package/dist/data/chat/approval.cjs +49 -6
  395. package/dist/data/chat/approval.cjs.map +1 -1
  396. package/dist/data/chat/approval.d.ts +11 -4
  397. package/dist/data/chat/approval.d.ts.map +1 -1
  398. package/dist/data/chat/approval.js +49 -6
  399. package/dist/data/chat/approval.js.map +1 -1
  400. package/dist/data/chat/index.d.ts +5 -3
  401. package/dist/data/chat/index.d.ts.map +1 -1
  402. package/dist/data/chat/tool-render/ToolArgs.cjs +50 -0
  403. package/dist/data/chat/tool-render/ToolArgs.cjs.map +1 -0
  404. package/dist/data/chat/tool-render/ToolArgs.d.ts +7 -0
  405. package/dist/data/chat/tool-render/ToolArgs.d.ts.map +1 -0
  406. package/dist/data/chat/tool-render/ToolArgs.js +50 -0
  407. package/dist/data/chat/tool-render/ToolArgs.js.map +1 -0
  408. package/dist/data/chat/tool-render/ToolParams.cjs +155 -0
  409. package/dist/data/chat/tool-render/ToolParams.cjs.map +1 -0
  410. package/dist/data/chat/tool-render/ToolParams.d.ts +20 -0
  411. package/dist/data/chat/tool-render/ToolParams.d.ts.map +1 -0
  412. package/dist/data/chat/tool-render/ToolParams.js +155 -0
  413. package/dist/data/chat/tool-render/ToolParams.js.map +1 -0
  414. package/dist/data/chat/tool-render/ToolValue.cjs +140 -0
  415. package/dist/data/chat/tool-render/ToolValue.cjs.map +1 -0
  416. package/dist/data/chat/tool-render/ToolValue.d.ts +16 -0
  417. package/dist/data/chat/tool-render/ToolValue.d.ts.map +1 -0
  418. package/dist/data/chat/tool-render/ToolValue.js +140 -0
  419. package/dist/data/chat/tool-render/ToolValue.js.map +1 -0
  420. package/dist/data/chat/tool-render/adapter.cjs +48 -0
  421. package/dist/data/chat/tool-render/adapter.cjs.map +1 -0
  422. package/dist/data/chat/tool-render/adapter.d.ts +57 -0
  423. package/dist/data/chat/tool-render/adapter.d.ts.map +1 -0
  424. package/dist/data/chat/tool-render/adapter.js +48 -0
  425. package/dist/data/chat/tool-render/adapter.js.map +1 -0
  426. package/dist/data/chat/tool-render/context.cjs +16 -0
  427. package/dist/data/chat/tool-render/context.cjs.map +1 -0
  428. package/dist/data/chat/tool-render/context.d.ts +6 -0
  429. package/dist/data/chat/tool-render/context.d.ts.map +1 -0
  430. package/dist/data/chat/tool-render/context.js +16 -0
  431. package/dist/data/chat/tool-render/context.js.map +1 -0
  432. package/dist/data/chat/tool-render/defaults.cjs +45 -0
  433. package/dist/data/chat/tool-render/defaults.cjs.map +1 -0
  434. package/dist/data/chat/tool-render/defaults.d.ts +11 -0
  435. package/dist/data/chat/tool-render/defaults.d.ts.map +1 -0
  436. package/dist/data/chat/tool-render/defaults.js +45 -0
  437. package/dist/data/chat/tool-render/defaults.js.map +1 -0
  438. package/dist/data/chat/tool-render/index.d.ts +13 -0
  439. package/dist/data/chat/tool-render/index.d.ts.map +1 -0
  440. package/dist/data/chat/tool-render/known-tool-views.cjs +208 -0
  441. package/dist/data/chat/tool-render/known-tool-views.cjs.map +1 -0
  442. package/dist/data/chat/tool-render/known-tool-views.d.ts +10 -0
  443. package/dist/data/chat/tool-render/known-tool-views.d.ts.map +1 -0
  444. package/dist/data/chat/tool-render/known-tool-views.js +208 -0
  445. package/dist/data/chat/tool-render/known-tool-views.js.map +1 -0
  446. package/dist/data/chat/tool-render/known-tools.cjs +58 -0
  447. package/dist/data/chat/tool-render/known-tools.cjs.map +1 -0
  448. package/dist/data/chat/tool-render/known-tools.d.ts +4 -0
  449. package/dist/data/chat/tool-render/known-tools.d.ts.map +1 -0
  450. package/dist/data/chat/tool-render/known-tools.js +58 -0
  451. package/dist/data/chat/tool-render/known-tools.js.map +1 -0
  452. package/dist/data/chat/tool-render/normalize.cjs +42 -0
  453. package/dist/data/chat/tool-render/normalize.cjs.map +1 -0
  454. package/dist/data/chat/tool-render/normalize.d.ts +13 -0
  455. package/dist/data/chat/tool-render/normalize.d.ts.map +1 -0
  456. package/dist/data/chat/tool-render/normalize.js +42 -0
  457. package/dist/data/chat/tool-render/normalize.js.map +1 -0
  458. package/dist/data/chat/tool-render/registry.cjs +14 -0
  459. package/dist/data/chat/tool-render/registry.cjs.map +1 -0
  460. package/dist/data/chat/tool-render/registry.d.ts +7 -0
  461. package/dist/data/chat/tool-render/registry.d.ts.map +1 -0
  462. package/dist/data/chat/tool-render/registry.js +14 -0
  463. package/dist/data/chat/tool-render/registry.js.map +1 -0
  464. package/dist/data/chat/tool-render/schema.cjs +57 -0
  465. package/dist/data/chat/tool-render/schema.cjs.map +1 -0
  466. package/dist/data/chat/tool-render/schema.d.ts +28 -0
  467. package/dist/data/chat/tool-render/schema.d.ts.map +1 -0
  468. package/dist/data/chat/tool-render/schema.js +57 -0
  469. package/dist/data/chat/tool-render/schema.js.map +1 -0
  470. package/dist/data/chat/tool-render/shape.cjs +94 -0
  471. package/dist/data/chat/tool-render/shape.cjs.map +1 -0
  472. package/dist/data/chat/tool-render/shape.d.ts +39 -0
  473. package/dist/data/chat/tool-render/shape.d.ts.map +1 -0
  474. package/dist/data/chat/tool-render/shape.js +94 -0
  475. package/dist/data/chat/tool-render/shape.js.map +1 -0
  476. package/dist/data/chat/tool-render/summary.cjs +34 -0
  477. package/dist/data/chat/tool-render/summary.cjs.map +1 -0
  478. package/dist/data/chat/tool-render/summary.d.ts +8 -0
  479. package/dist/data/chat/tool-render/summary.d.ts.map +1 -0
  480. package/dist/data/chat/tool-render/summary.js +34 -0
  481. package/dist/data/chat/tool-render/summary.js.map +1 -0
  482. package/dist/data/chat/types.cjs.map +1 -1
  483. package/dist/data/chat/types.d.ts +7 -0
  484. package/dist/data/chat/types.d.ts.map +1 -1
  485. package/dist/data/chat/types.js.map +1 -1
  486. package/dist/data/chat/usage-snapshot.cjs +17 -0
  487. package/dist/data/chat/usage-snapshot.cjs.map +1 -0
  488. package/dist/data/chat/usage-snapshot.d.ts +21 -0
  489. package/dist/data/chat/usage-snapshot.d.ts.map +1 -0
  490. package/dist/data/chat/usage-snapshot.js +17 -0
  491. package/dist/data/chat/usage-snapshot.js.map +1 -0
  492. package/dist/data/data-table-filter-values.cjs +83 -0
  493. package/dist/data/data-table-filter-values.cjs.map +1 -0
  494. package/dist/data/data-table-filter-values.d.ts +18 -0
  495. package/dist/data/data-table-filter-values.d.ts.map +1 -0
  496. package/dist/data/data-table-filter-values.js +83 -0
  497. package/dist/data/data-table-filter-values.js.map +1 -0
  498. package/dist/data/data-table-server-filters.cjs +171 -0
  499. package/dist/data/data-table-server-filters.cjs.map +1 -0
  500. package/dist/data/data-table-server-filters.d.ts +128 -0
  501. package/dist/data/data-table-server-filters.d.ts.map +1 -0
  502. package/dist/data/data-table-server-filters.js +171 -0
  503. package/dist/data/data-table-server-filters.js.map +1 -0
  504. package/dist/data/query-browser/QueryBrowser.cjs +96 -19
  505. package/dist/data/query-browser/QueryBrowser.cjs.map +1 -1
  506. package/dist/data/query-browser/QueryBrowser.d.ts +37 -6
  507. package/dist/data/query-browser/QueryBrowser.d.ts.map +1 -1
  508. package/dist/data/query-browser/QueryBrowser.js +96 -19
  509. package/dist/data/query-browser/QueryBrowser.js.map +1 -1
  510. package/dist/data/query-browser/index.d.ts +1 -1
  511. package/dist/data/query-browser/index.d.ts.map +1 -1
  512. package/dist/data/runtime/ProviderStatusPanel.cjs +187 -0
  513. package/dist/data/runtime/ProviderStatusPanel.cjs.map +1 -0
  514. package/dist/data/runtime/ProviderStatusPanel.d.ts +10 -0
  515. package/dist/data/runtime/ProviderStatusPanel.d.ts.map +1 -0
  516. package/dist/data/runtime/ProviderStatusPanel.js +187 -0
  517. package/dist/data/runtime/ProviderStatusPanel.js.map +1 -0
  518. package/dist/data/runtime/RuntimeBar.cjs +147 -0
  519. package/dist/data/runtime/RuntimeBar.cjs.map +1 -0
  520. package/dist/data/{ai → runtime}/RuntimeBar.d.ts +8 -6
  521. package/dist/data/runtime/RuntimeBar.d.ts.map +1 -0
  522. package/dist/data/runtime/RuntimeBar.js +147 -0
  523. package/dist/data/runtime/RuntimeBar.js.map +1 -0
  524. package/dist/data/runtime/RuntimeBar.model.cjs.map +1 -0
  525. package/dist/data/{ai → runtime}/RuntimeBar.model.d.ts +2 -2
  526. package/dist/data/runtime/RuntimeBar.model.d.ts.map +1 -0
  527. package/dist/data/runtime/RuntimeBar.model.js.map +1 -0
  528. package/dist/data/{ai → runtime}/RuntimeBarCombo.cjs +25 -30
  529. package/dist/data/runtime/RuntimeBarCombo.cjs.map +1 -0
  530. package/dist/data/{ai → runtime}/RuntimeBarCombo.d.ts +4 -3
  531. package/dist/data/runtime/RuntimeBarCombo.d.ts.map +1 -0
  532. package/dist/data/{ai → runtime}/RuntimeBarCombo.js +25 -30
  533. package/dist/data/runtime/RuntimeBarCombo.js.map +1 -0
  534. package/dist/data/{ai/RuntimeBar.cjs → runtime/RuntimeBarSegments.cjs} +54 -120
  535. package/dist/data/runtime/RuntimeBarSegments.cjs.map +1 -0
  536. package/dist/data/runtime/RuntimeBarSegments.d.ts +25 -0
  537. package/dist/data/runtime/RuntimeBarSegments.d.ts.map +1 -0
  538. package/dist/data/{ai/RuntimeBar.js → runtime/RuntimeBarSegments.js} +58 -124
  539. package/dist/data/runtime/RuntimeBarSegments.js.map +1 -0
  540. package/dist/data/runtime/availability.cjs +11 -0
  541. package/dist/data/runtime/availability.cjs.map +1 -0
  542. package/dist/data/runtime/availability.d.ts +6 -0
  543. package/dist/data/runtime/availability.d.ts.map +1 -0
  544. package/dist/data/runtime/availability.js +11 -0
  545. package/dist/data/runtime/availability.js.map +1 -0
  546. package/dist/data/runtime/model-capabilities.cjs.map +1 -0
  547. package/dist/data/runtime/model-capabilities.d.ts.map +1 -0
  548. package/dist/data/runtime/model-capabilities.js.map +1 -0
  549. package/dist/data/runtime/provider-status.cjs +106 -0
  550. package/dist/data/runtime/provider-status.cjs.map +1 -0
  551. package/dist/data/runtime/provider-status.d.ts +24 -0
  552. package/dist/data/runtime/provider-status.d.ts.map +1 -0
  553. package/dist/data/runtime/provider-status.js +106 -0
  554. package/dist/data/runtime/provider-status.js.map +1 -0
  555. package/dist/data/{ai → runtime}/runtime-mode.cjs +119 -27
  556. package/dist/data/runtime/runtime-mode.cjs.map +1 -0
  557. package/dist/data/{ai → runtime}/runtime-mode.d.ts +7 -1
  558. package/dist/data/runtime/runtime-mode.d.ts.map +1 -0
  559. package/dist/data/{ai → runtime}/runtime-mode.js +120 -28
  560. package/dist/data/runtime/runtime-mode.js.map +1 -0
  561. package/dist/data/task-query-keys.cjs +26 -0
  562. package/dist/data/task-query-keys.cjs.map +1 -0
  563. package/dist/data/task-query-keys.d.ts +27 -0
  564. package/dist/data/task-query-keys.d.ts.map +1 -0
  565. package/dist/data/task-query-keys.js +26 -0
  566. package/dist/data/task-query-keys.js.map +1 -0
  567. package/dist/data/version-info.cjs +3 -3
  568. package/dist/data/version-info.js +3 -3
  569. package/dist/data.cjs +16 -0
  570. package/dist/data.cjs.map +1 -1
  571. package/dist/data.d.ts +6 -2
  572. package/dist/data.d.ts.map +1 -1
  573. package/dist/data.js +16 -0
  574. package/dist/data.js.map +1 -1
  575. package/dist/hooks/use-hotkey.cjs +6 -1
  576. package/dist/hooks/use-hotkey.cjs.map +1 -1
  577. package/dist/hooks/use-hotkey.d.ts.map +1 -1
  578. package/dist/hooks/use-hotkey.js +6 -1
  579. package/dist/hooks/use-hotkey.js.map +1 -1
  580. package/dist/hooks/use-task-run.cjs +7 -4
  581. package/dist/hooks/use-task-run.cjs.map +1 -1
  582. package/dist/hooks/use-task-run.d.ts +12 -0
  583. package/dist/hooks/use-task-run.d.ts.map +1 -1
  584. package/dist/hooks/use-task-run.js +7 -4
  585. package/dist/hooks/use-task-run.js.map +1 -1
  586. package/dist/icons/index.d.ts +1 -0
  587. package/dist/icons/index.d.ts.map +1 -1
  588. package/dist/icons/registry.cjs +692 -0
  589. package/dist/icons/registry.cjs.map +1 -0
  590. package/dist/icons/registry.d.ts +21 -0
  591. package/dist/icons/registry.d.ts.map +1 -0
  592. package/dist/icons/registry.js +692 -0
  593. package/dist/icons/registry.js.map +1 -0
  594. package/dist/icons.cjs +3 -0
  595. package/dist/icons.cjs.map +1 -1
  596. package/dist/icons.js +4 -1
  597. package/dist/icons.js.map +1 -1
  598. package/dist/index.cjs +47 -0
  599. package/dist/index.cjs.map +1 -1
  600. package/dist/index.js +49 -2
  601. package/dist/index.js.map +1 -1
  602. package/dist/layout/AppShell.cjs +92 -56
  603. package/dist/layout/AppShell.cjs.map +1 -1
  604. package/dist/layout/AppShell.d.ts +49 -1
  605. package/dist/layout/AppShell.d.ts.map +1 -1
  606. package/dist/layout/AppShell.js +92 -56
  607. package/dist/layout/AppShell.js.map +1 -1
  608. package/dist/layout/AppShell.nav.cjs +144 -19
  609. package/dist/layout/AppShell.nav.cjs.map +1 -1
  610. package/dist/layout/AppShell.nav.d.ts +6 -1
  611. package/dist/layout/AppShell.nav.d.ts.map +1 -1
  612. package/dist/layout/AppShell.nav.js +144 -19
  613. package/dist/layout/AppShell.nav.js.map +1 -1
  614. package/dist/layout/SplitPane.cjs +23 -7
  615. package/dist/layout/SplitPane.cjs.map +1 -1
  616. package/dist/layout/SplitPane.d.ts +3 -1
  617. package/dist/layout/SplitPane.d.ts.map +1 -1
  618. package/dist/layout/SplitPane.js +23 -7
  619. package/dist/layout/SplitPane.js.map +1 -1
  620. package/dist/lib/format.cjs +86 -4
  621. package/dist/lib/format.cjs.map +1 -1
  622. package/dist/lib/format.d.ts +69 -0
  623. package/dist/lib/format.d.ts.map +1 -1
  624. package/dist/lib/format.js +86 -4
  625. package/dist/lib/format.js.map +1 -1
  626. package/dist/lib/path-tree.cjs +69 -0
  627. package/dist/lib/path-tree.cjs.map +1 -0
  628. package/dist/lib/path-tree.d.ts +54 -0
  629. package/dist/lib/path-tree.d.ts.map +1 -0
  630. package/dist/lib/path-tree.js +69 -0
  631. package/dist/lib/path-tree.js.map +1 -0
  632. package/dist/monaco.d.ts +1 -0
  633. package/dist/monaco.d.ts.map +1 -1
  634. package/dist/overlay/DropdownMenuSubmenu.cjs +13 -7
  635. package/dist/overlay/DropdownMenuSubmenu.cjs.map +1 -1
  636. package/dist/overlay/DropdownMenuSubmenu.d.ts.map +1 -1
  637. package/dist/overlay/DropdownMenuSubmenu.js +13 -7
  638. package/dist/overlay/DropdownMenuSubmenu.js.map +1 -1
  639. package/dist/overlay/Tour.cjs +173 -0
  640. package/dist/overlay/Tour.cjs.map +1 -0
  641. package/dist/overlay/Tour.d.ts +61 -0
  642. package/dist/overlay/Tour.d.ts.map +1 -0
  643. package/dist/overlay/Tour.js +173 -0
  644. package/dist/overlay/Tour.js.map +1 -0
  645. package/dist/overlay/TourCard.cjs +108 -0
  646. package/dist/overlay/TourCard.cjs.map +1 -0
  647. package/dist/overlay/TourCard.d.ts +23 -0
  648. package/dist/overlay/TourCard.d.ts.map +1 -0
  649. package/dist/overlay/TourCard.js +108 -0
  650. package/dist/overlay/TourCard.js.map +1 -0
  651. package/dist/overlay/TourProvider.cjs +160 -0
  652. package/dist/overlay/TourProvider.cjs.map +1 -0
  653. package/dist/overlay/TourProvider.d.ts +31 -0
  654. package/dist/overlay/TourProvider.d.ts.map +1 -0
  655. package/dist/overlay/TourProvider.js +160 -0
  656. package/dist/overlay/TourProvider.js.map +1 -0
  657. package/dist/overlay/TourSpotlight.cjs +47 -0
  658. package/dist/overlay/TourSpotlight.cjs.map +1 -0
  659. package/dist/overlay/TourSpotlight.d.ts +12 -0
  660. package/dist/overlay/TourSpotlight.d.ts.map +1 -0
  661. package/dist/overlay/TourSpotlight.js +47 -0
  662. package/dist/overlay/TourSpotlight.js.map +1 -0
  663. package/dist/overlay/modalStack.cjs +18 -4
  664. package/dist/overlay/modalStack.cjs.map +1 -1
  665. package/dist/overlay/modalStack.d.ts +10 -2
  666. package/dist/overlay/modalStack.d.ts.map +1 -1
  667. package/dist/overlay/modalStack.js +19 -5
  668. package/dist/overlay/modalStack.js.map +1 -1
  669. package/dist/overlay/tour-anchor.cjs +114 -0
  670. package/dist/overlay/tour-anchor.cjs.map +1 -0
  671. package/dist/overlay/tour-anchor.d.ts +30 -0
  672. package/dist/overlay/tour-anchor.d.ts.map +1 -0
  673. package/dist/overlay/tour-anchor.js +114 -0
  674. package/dist/overlay/tour-anchor.js.map +1 -0
  675. package/dist/overlay/tour-context.cjs +12 -0
  676. package/dist/overlay/tour-context.cjs.map +1 -0
  677. package/dist/overlay/tour-context.d.ts +40 -0
  678. package/dist/overlay/tour-context.d.ts.map +1 -0
  679. package/dist/overlay/tour-context.js +12 -0
  680. package/dist/overlay/tour-context.js.map +1 -0
  681. package/dist/overlay/tour-geometry.cjs +65 -0
  682. package/dist/overlay/tour-geometry.cjs.map +1 -0
  683. package/dist/overlay/tour-geometry.d.ts +47 -0
  684. package/dist/overlay/tour-geometry.d.ts.map +1 -0
  685. package/dist/overlay/tour-geometry.js +65 -0
  686. package/dist/overlay/tour-geometry.js.map +1 -0
  687. package/dist/overlay/tour-model.cjs +79 -0
  688. package/dist/overlay/tour-model.cjs.map +1 -0
  689. package/dist/overlay/tour-model.d.ts +29 -0
  690. package/dist/overlay/tour-model.d.ts.map +1 -0
  691. package/dist/overlay/tour-model.js +79 -0
  692. package/dist/overlay/tour-model.js.map +1 -0
  693. package/dist/overlay/tour-progress.cjs +54 -0
  694. package/dist/overlay/tour-progress.cjs.map +1 -0
  695. package/dist/overlay/tour-progress.d.ts +40 -0
  696. package/dist/overlay/tour-progress.d.ts.map +1 -0
  697. package/dist/overlay/tour-progress.js +54 -0
  698. package/dist/overlay/tour-progress.js.map +1 -0
  699. package/dist/overlay/tour-types.d.ts +144 -0
  700. package/dist/overlay/tour-types.d.ts.map +1 -0
  701. package/dist/overlay/use-tour-anchor.cjs +43 -0
  702. package/dist/overlay/use-tour-anchor.cjs.map +1 -0
  703. package/dist/overlay/use-tour-anchor.d.ts +23 -0
  704. package/dist/overlay/use-tour-anchor.d.ts.map +1 -0
  705. package/dist/overlay/use-tour-anchor.js +43 -0
  706. package/dist/overlay/use-tour-anchor.js.map +1 -0
  707. package/dist/overlay/use-tour-rect.cjs +33 -0
  708. package/dist/overlay/use-tour-rect.cjs.map +1 -0
  709. package/dist/overlay/use-tour-rect.d.ts +12 -0
  710. package/dist/overlay/use-tour-rect.d.ts.map +1 -0
  711. package/dist/overlay/use-tour-rect.js +33 -0
  712. package/dist/overlay/use-tour-rect.js.map +1 -0
  713. package/dist/overlay/use-tour-step.cjs +66 -0
  714. package/dist/overlay/use-tour-step.cjs.map +1 -0
  715. package/dist/overlay/use-tour-step.d.ts +45 -0
  716. package/dist/overlay/use-tour-step.d.ts.map +1 -0
  717. package/dist/overlay/use-tour-step.js +66 -0
  718. package/dist/overlay/use-tour-step.js.map +1 -0
  719. package/dist/overlay/zIndex.cjs +8 -0
  720. package/dist/overlay/zIndex.cjs.map +1 -1
  721. package/dist/overlay/zIndex.d.ts +8 -0
  722. package/dist/overlay/zIndex.d.ts.map +1 -1
  723. package/dist/overlay/zIndex.js +8 -0
  724. package/dist/overlay/zIndex.js.map +1 -1
  725. package/dist/rpc/CommandOutput.cjs +8 -0
  726. package/dist/rpc/CommandOutput.cjs.map +1 -1
  727. package/dist/rpc/CommandOutput.d.ts +4 -1
  728. package/dist/rpc/CommandOutput.d.ts.map +1 -1
  729. package/dist/rpc/CommandOutput.js +8 -0
  730. package/dist/rpc/CommandOutput.js.map +1 -1
  731. package/dist/rpc/EntityExplorerApp.cjs +10 -16
  732. package/dist/rpc/EntityExplorerApp.cjs.map +1 -1
  733. package/dist/rpc/EntityExplorerApp.d.ts.map +1 -1
  734. package/dist/rpc/EntityExplorerApp.js +10 -16
  735. package/dist/rpc/EntityExplorerApp.js.map +1 -1
  736. package/dist/rpc/OperationActionBar.cjs +1 -1
  737. package/dist/rpc/OperationActionBar.cjs.map +1 -1
  738. package/dist/rpc/OperationActionBar.js +1 -1
  739. package/dist/rpc/OperationActionBar.js.map +1 -1
  740. package/dist/rpc/OperationCatalog.cjs +83 -7
  741. package/dist/rpc/OperationCatalog.cjs.map +1 -1
  742. package/dist/rpc/OperationCatalog.d.ts.map +1 -1
  743. package/dist/rpc/OperationCatalog.js +84 -8
  744. package/dist/rpc/OperationCatalog.js.map +1 -1
  745. package/dist/rpc/OperationResultView.cjs +2 -0
  746. package/dist/rpc/OperationResultView.cjs.map +1 -1
  747. package/dist/rpc/OperationResultView.d.ts +6 -0
  748. package/dist/rpc/OperationResultView.d.ts.map +1 -1
  749. package/dist/rpc/OperationResultView.js +2 -0
  750. package/dist/rpc/OperationResultView.js.map +1 -1
  751. package/dist/rpc/SchemaActionForm.cjs +2 -21
  752. package/dist/rpc/SchemaActionForm.cjs.map +1 -1
  753. package/dist/rpc/SchemaActionForm.d.ts.map +1 -1
  754. package/dist/rpc/SchemaActionForm.js +3 -22
  755. package/dist/rpc/SchemaActionForm.js.map +1 -1
  756. package/dist/rpc/apiClient.cjs +16 -2
  757. package/dist/rpc/apiClient.cjs.map +1 -1
  758. package/dist/rpc/apiClient.d.ts.map +1 -1
  759. package/dist/rpc/apiClient.js +16 -2
  760. package/dist/rpc/apiClient.js.map +1 -1
  761. package/dist/rpc/formMetadata.cjs +89 -49
  762. package/dist/rpc/formMetadata.cjs.map +1 -1
  763. package/dist/rpc/formMetadata.d.ts +14 -6
  764. package/dist/rpc/formMetadata.d.ts.map +1 -1
  765. package/dist/rpc/formMetadata.js +87 -47
  766. package/dist/rpc/formMetadata.js.map +1 -1
  767. package/dist/rpc/operationFilterSearch.cjs +23 -0
  768. package/dist/rpc/operationFilterSearch.cjs.map +1 -0
  769. package/dist/rpc/operationFilterSearch.d.ts +22 -0
  770. package/dist/rpc/operationFilterSearch.d.ts.map +1 -0
  771. package/dist/rpc/operationFilterSearch.js +23 -0
  772. package/dist/rpc/operationFilterSearch.js.map +1 -0
  773. package/dist/rpc/operationLookupFetcher.cjs +28 -0
  774. package/dist/rpc/operationLookupFetcher.cjs.map +1 -0
  775. package/dist/rpc/operationLookupFetcher.d.ts +17 -0
  776. package/dist/rpc/operationLookupFetcher.d.ts.map +1 -0
  777. package/dist/rpc/operationLookupFetcher.js +28 -0
  778. package/dist/rpc/operationLookupFetcher.js.map +1 -0
  779. package/dist/rpc/surfaceNav.cjs +77 -0
  780. package/dist/rpc/surfaceNav.cjs.map +1 -0
  781. package/dist/rpc/surfaceNav.d.ts +19 -0
  782. package/dist/rpc/surfaceNav.d.ts.map +1 -0
  783. package/dist/rpc/surfaceNav.js +77 -0
  784. package/dist/rpc/surfaceNav.js.map +1 -0
  785. package/dist/rpc/types.cjs.map +1 -1
  786. package/dist/rpc/types.d.ts +12 -1
  787. package/dist/rpc/types.d.ts.map +1 -1
  788. package/dist/rpc/types.js.map +1 -1
  789. package/dist/rpc.cjs +2 -0
  790. package/dist/rpc.cjs.map +1 -1
  791. package/dist/rpc.d.ts +1 -0
  792. package/dist/rpc.d.ts.map +1 -1
  793. package/dist/rpc.js +2 -0
  794. package/dist/rpc.js.map +1 -1
  795. package/dist/styles.css +1 -1
  796. package/dist/utils.cjs +8 -0
  797. package/dist/utils.cjs.map +1 -1
  798. package/dist/utils.d.ts +2 -1
  799. package/dist/utils.d.ts.map +1 -1
  800. package/dist/utils.js +10 -2
  801. package/dist/utils.js.map +1 -1
  802. package/package.json +1 -1
  803. package/dist/data/ai/RuntimeBar.cjs.map +0 -1
  804. package/dist/data/ai/RuntimeBar.d.ts.map +0 -1
  805. package/dist/data/ai/RuntimeBar.js.map +0 -1
  806. package/dist/data/ai/RuntimeBar.model.cjs.map +0 -1
  807. package/dist/data/ai/RuntimeBar.model.d.ts.map +0 -1
  808. package/dist/data/ai/RuntimeBar.model.js.map +0 -1
  809. package/dist/data/ai/RuntimeBarCombo.cjs.map +0 -1
  810. package/dist/data/ai/RuntimeBarCombo.d.ts.map +0 -1
  811. package/dist/data/ai/RuntimeBarCombo.js.map +0 -1
  812. package/dist/data/ai/model-capabilities.cjs.map +0 -1
  813. package/dist/data/ai/model-capabilities.d.ts.map +0 -1
  814. package/dist/data/ai/model-capabilities.js.map +0 -1
  815. package/dist/data/ai/runtime-mode.cjs.map +0 -1
  816. package/dist/data/ai/runtime-mode.d.ts.map +0 -1
  817. package/dist/data/ai/runtime-mode.js.map +0 -1
  818. /package/dist/data/{ai → runtime}/RuntimeBar.model.cjs +0 -0
  819. /package/dist/data/{ai → runtime}/RuntimeBar.model.js +0 -0
  820. /package/dist/data/{ai → runtime}/model-capabilities.cjs +0 -0
  821. /package/dist/data/{ai → runtime}/model-capabilities.d.ts +0 -0
  822. /package/dist/data/{ai → runtime}/model-capabilities.js +0 -0
@@ -0,0 +1,140 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../../../lib/utils.js";
3
+ import { DataTable } from "../../DataTable.js";
4
+ import { JsonView } from "../../JsonView.js";
5
+ import { KeyValueList } from "../../KeyValueList.js";
6
+ import { ToolFieldValue } from "./ToolParams.js";
7
+ import { fieldMetaFromSchema, listItemsSchema, orderFieldKeys } from "./schema.js";
8
+ import { classifyToolValue, deriveColumns } from "./shape.js";
9
+ const DEFAULT_MAX_ROWS = 25;
10
+ const TITLE_KEYS = ["name", "title", "code", "reference"];
11
+ const ID_KEYS = ["id", "code", "key"];
12
+ function firstString(record, keys) {
13
+ for (const key of keys) {
14
+ const value = record[key];
15
+ if (typeof value === "string" && value.trim() !== "") return { key, value };
16
+ }
17
+ return null;
18
+ }
19
+ function RowsTable({
20
+ rows,
21
+ fields,
22
+ maxRows,
23
+ page
24
+ }) {
25
+ const visible = rows.slice(0, maxRows);
26
+ const total = (page == null ? void 0 : page.total) ?? rows.length;
27
+ const capped = visible.length < rows.length || total > rows.length;
28
+ return /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
29
+ /* @__PURE__ */ jsx(
30
+ DataTable,
31
+ {
32
+ data: visible,
33
+ columns: deriveColumns(rows, { fields }),
34
+ showGlobalFilter: false,
35
+ autoFilter: false,
36
+ scrollContainerClassName: "max-h-80",
37
+ emptyMessage: "No rows"
38
+ }
39
+ ),
40
+ capped && /* @__PURE__ */ jsxs("div", { className: "text-[11px] text-muted-foreground", children: [
41
+ "Showing ",
42
+ visible.length,
43
+ " of ",
44
+ total
45
+ ] })
46
+ ] });
47
+ }
48
+ function Counts({ record }) {
49
+ return /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-density-2 sm:grid-cols-3", children: Object.entries(record).map(([key, count]) => /* @__PURE__ */ jsxs("div", { className: "rounded-md border border-border bg-muted/40 p-density-2", children: [
50
+ /* @__PURE__ */ jsx("div", { className: "text-sm font-medium tabular-nums text-foreground", children: count }),
51
+ /* @__PURE__ */ jsx("div", { className: "font-mono text-[11px] text-muted-foreground", children: key })
52
+ ] }, key)) });
53
+ }
54
+ function RecordCard({
55
+ record,
56
+ fields,
57
+ entity,
58
+ resolveEntityHref
59
+ }) {
60
+ const title = firstString(record, TITLE_KEYS);
61
+ const id = firstString(record, ID_KEYS);
62
+ const href = entity && id ? resolveEntityHref == null ? void 0 : resolveEntityHref(entity, id.value) : void 0;
63
+ const consumed = new Set([title == null ? void 0 : title.key, id == null ? void 0 : id.key].filter((key) => !!key));
64
+ const keys = Object.keys(record).filter((key) => {
65
+ const value = record[key];
66
+ return !consumed.has(key) && value !== void 0 && value !== null && value !== "";
67
+ });
68
+ const items = orderFieldKeys(keys, fields).map((key) => {
69
+ const field = fields[key];
70
+ return {
71
+ key,
72
+ label: /* @__PURE__ */ jsx("span", { className: "font-mono text-[11px]", children: (field == null ? void 0 : field.label) ?? key }),
73
+ value: /* @__PURE__ */ jsx(ToolFieldValue, { fieldKey: key, value: record[key], field })
74
+ };
75
+ });
76
+ const heading = (title == null ? void 0 : title.value) ?? (id == null ? void 0 : id.value);
77
+ return /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
78
+ heading && /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-baseline gap-2", children: [
79
+ href ? /* @__PURE__ */ jsx("a", { href, className: "text-sm font-medium text-foreground underline underline-offset-2", children: heading }) : /* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-foreground", children: heading }),
80
+ id && id.value !== heading && /* @__PURE__ */ jsx("span", { className: "rounded border border-border bg-muted/40 px-1.5 py-0.5 font-mono text-[11px] text-muted-foreground", children: id.value })
81
+ ] }),
82
+ items.length > 0 && /* @__PURE__ */ jsx(
83
+ KeyValueList,
84
+ {
85
+ items,
86
+ className: "text-xs",
87
+ rowClassName: "px-density-2 py-density-1",
88
+ valueClassName: "text-xs"
89
+ }
90
+ )
91
+ ] });
92
+ }
93
+ function renderClassified(classified, props, maxRows) {
94
+ const { schema, entity, resolveEntityHref, emptyMessage = "No result" } = props;
95
+ switch (classified.shape) {
96
+ case "empty":
97
+ return /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: emptyMessage });
98
+ case "scalar":
99
+ return /* @__PURE__ */ jsx("p", { className: "whitespace-pre-wrap break-words text-sm text-foreground", children: String(classified.value) });
100
+ case "counts":
101
+ return /* @__PURE__ */ jsx(Counts, { record: classified.record });
102
+ case "record":
103
+ return /* @__PURE__ */ jsx(
104
+ RecordCard,
105
+ {
106
+ record: classified.record,
107
+ fields: fieldMetaFromSchema(schema),
108
+ ...entity ? { entity } : {},
109
+ ...resolveEntityHref ? { resolveEntityHref } : {}
110
+ }
111
+ );
112
+ case "list":
113
+ case "paged": {
114
+ if (!classified.rows) {
115
+ return /* @__PURE__ */ jsx(ToolFieldValue, { fieldKey: "result", value: classified.items });
116
+ }
117
+ return /* @__PURE__ */ jsx(
118
+ RowsTable,
119
+ {
120
+ rows: classified.rows,
121
+ fields: fieldMetaFromSchema(listItemsSchema(schema)),
122
+ maxRows,
123
+ ...classified.shape === "paged" ? { page: classified.page } : {}
124
+ }
125
+ );
126
+ }
127
+ }
128
+ }
129
+ function ToolValue(props) {
130
+ const { value, isError, className, maxRows = DEFAULT_MAX_ROWS } = props;
131
+ const classified = classifyToolValue(value);
132
+ if (isError && classified.shape !== "scalar" && classified.shape !== "record") {
133
+ return /* @__PURE__ */ jsx("div", { className: cn("text-destructive", className), children: /* @__PURE__ */ jsx(JsonView, { data: value, defaultOpenDepth: 1 }) });
134
+ }
135
+ return /* @__PURE__ */ jsx("div", { className: cn(isError ? "text-destructive" : void 0, className), children: renderClassified(classified, props, maxRows) });
136
+ }
137
+ export {
138
+ ToolValue
139
+ };
140
+ //# sourceMappingURL=ToolValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolValue.js","sources":["../../../../src/data/chat/tool-render/ToolValue.tsx"],"sourcesContent":["// Built-in renderer for a tool call's *output*. Dispatches on the value shape\n// (paged / list / record / counts / scalar), so a tool with no published\n// output schema still renders as a table, a record card or a sentence instead\n// of a JSON blob.\n\nimport type { ReactNode } from \"react\";\nimport { cn } from \"../../../lib/utils\";\nimport { DataTable } from \"../../DataTable\";\nimport { JsonView } from \"../../JsonView\";\nimport { KeyValueList, type KeyValueListItem } from \"../../KeyValueList\";\nimport type { ChatToolInputSchema } from \"../types\";\nimport { ToolFieldValue } from \"./ToolParams\";\nimport { fieldMetaFromSchema, listItemsSchema, orderFieldKeys, type ToolFieldMeta } from \"./schema\";\nimport {\n classifyToolValue,\n deriveColumns,\n type ClassifiedToolValue,\n type ToolPageInfo,\n} from \"./shape\";\n\nexport type ToolValueProps = {\n value: unknown;\n schema?: ChatToolInputSchema | undefined;\n isError?: boolean | undefined;\n /** Entity name for `resolveEntityHref`, from the tool's catalog entry. */\n entity?: string | undefined;\n maxRows?: number | undefined;\n resolveEntityHref?: ((entity: string, id: string) => string | undefined) | undefined;\n className?: string | undefined;\n emptyMessage?: string | undefined;\n};\n\nconst DEFAULT_MAX_ROWS = 25;\nconst TITLE_KEYS = [\"name\", \"title\", \"code\", \"reference\"];\nconst ID_KEYS = [\"id\", \"code\", \"key\"];\n\nfunction firstString(record: Record<string, unknown>, keys: string[]): { key: string; value: string } | null {\n for (const key of keys) {\n const value = record[key];\n if (typeof value === \"string\" && value.trim() !== \"\") return { key, value };\n }\n return null;\n}\n\nfunction RowsTable({\n rows,\n fields,\n maxRows,\n page,\n}: {\n rows: Record<string, unknown>[];\n fields: Record<string, ToolFieldMeta>;\n maxRows: number;\n page?: ToolPageInfo | undefined;\n}) {\n const visible = rows.slice(0, maxRows);\n const total = page?.total ?? rows.length;\n const capped = visible.length < rows.length || total > rows.length;\n return (\n <div className=\"space-y-1\">\n <DataTable\n data={visible}\n columns={deriveColumns(rows, { fields })}\n showGlobalFilter={false}\n autoFilter={false}\n scrollContainerClassName=\"max-h-80\"\n emptyMessage=\"No rows\"\n />\n {capped && (\n <div className=\"text-[11px] text-muted-foreground\">\n Showing {visible.length} of {total}\n </div>\n )}\n </div>\n );\n}\n\nfunction Counts({ record }: { record: Record<string, number> }) {\n return (\n <div className=\"grid grid-cols-2 gap-density-2 sm:grid-cols-3\">\n {Object.entries(record).map(([key, count]) => (\n <div key={key} className=\"rounded-md border border-border bg-muted/40 p-density-2\">\n <div className=\"text-sm font-medium tabular-nums text-foreground\">{count}</div>\n <div className=\"font-mono text-[11px] text-muted-foreground\">{key}</div>\n </div>\n ))}\n </div>\n );\n}\n\nfunction RecordCard({\n record,\n fields,\n entity,\n resolveEntityHref,\n}: {\n record: Record<string, unknown>;\n fields: Record<string, ToolFieldMeta>;\n entity?: string | undefined;\n resolveEntityHref?: ((entity: string, id: string) => string | undefined) | undefined;\n}) {\n const title = firstString(record, TITLE_KEYS);\n const id = firstString(record, ID_KEYS);\n const href = entity && id ? resolveEntityHref?.(entity, id.value) : undefined;\n\n const consumed = new Set([title?.key, id?.key].filter((key): key is string => !!key));\n const keys = Object.keys(record).filter((key) => {\n const value = record[key];\n return !consumed.has(key) && value !== undefined && value !== null && value !== \"\";\n });\n\n const items: KeyValueListItem[] = orderFieldKeys(keys, fields).map((key) => {\n const field = fields[key];\n return {\n key,\n label: <span className=\"font-mono text-[11px]\">{field?.label ?? key}</span>,\n value: <ToolFieldValue fieldKey={key} value={record[key]} field={field} />,\n };\n });\n\n const heading = title?.value ?? id?.value;\n\n return (\n <div className=\"space-y-1\">\n {heading && (\n <div className=\"flex flex-wrap items-baseline gap-2\">\n {href ? (\n <a href={href} className=\"text-sm font-medium text-foreground underline underline-offset-2\">\n {heading}\n </a>\n ) : (\n <span className=\"text-sm font-medium text-foreground\">{heading}</span>\n )}\n {id && id.value !== heading && (\n <span className=\"rounded border border-border bg-muted/40 px-1.5 py-0.5 font-mono text-[11px] text-muted-foreground\">\n {id.value}\n </span>\n )}\n </div>\n )}\n {items.length > 0 && (\n <KeyValueList\n items={items}\n className=\"text-xs\"\n rowClassName=\"px-density-2 py-density-1\"\n valueClassName=\"text-xs\"\n />\n )}\n </div>\n );\n}\n\nfunction renderClassified(\n classified: ClassifiedToolValue,\n props: ToolValueProps,\n maxRows: number,\n): ReactNode {\n const { schema, entity, resolveEntityHref, emptyMessage = \"No result\" } = props;\n\n switch (classified.shape) {\n case \"empty\":\n return <span className=\"text-muted-foreground\">{emptyMessage}</span>;\n case \"scalar\":\n return <p className=\"whitespace-pre-wrap break-words text-sm text-foreground\">{String(classified.value)}</p>;\n case \"counts\":\n return <Counts record={classified.record} />;\n case \"record\":\n return (\n <RecordCard\n record={classified.record}\n fields={fieldMetaFromSchema(schema)}\n {...(entity ? { entity } : {})}\n {...(resolveEntityHref ? { resolveEntityHref } : {})}\n />\n );\n case \"list\":\n case \"paged\": {\n if (!classified.rows) {\n return <ToolFieldValue fieldKey=\"result\" value={classified.items} />;\n }\n return (\n <RowsTable\n rows={classified.rows}\n fields={fieldMetaFromSchema(listItemsSchema(schema))}\n maxRows={maxRows}\n {...(classified.shape === \"paged\" ? { page: classified.page } : {})}\n />\n );\n }\n }\n}\n\n/** Heuristic renderer for a normalized tool result. */\nexport function ToolValue(props: ToolValueProps): ReactNode {\n const { value, isError, className, maxRows = DEFAULT_MAX_ROWS } = props;\n const classified = classifyToolValue(value);\n\n // An error payload is usually a bare message or a small object; keep it\n // legible and unmistakably an error rather than shaping it into a table.\n if (isError && classified.shape !== \"scalar\" && classified.shape !== \"record\") {\n return (\n <div className={cn(\"text-destructive\", className)}>\n <JsonView data={value} defaultOpenDepth={1} />\n </div>\n );\n }\n\n return (\n <div className={cn(isError ? \"text-destructive\" : undefined, className)}>\n {renderClassified(classified, props, maxRows)}\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;;;;AAgCA,MAAM,mBAAmB;AACzB,MAAM,aAAa,CAAC,QAAQ,SAAS,QAAQ,WAAW;AACxD,MAAM,UAAU,CAAC,MAAM,QAAQ,KAAK;AAEpC,SAAS,YAAY,QAAiC,MAAuD;AAC3G,aAAW,OAAO,MAAM;AACtB,UAAM,QAAQ,OAAO,GAAG;AACxB,QAAI,OAAO,UAAU,YAAY,MAAM,KAAA,MAAW,GAAI,QAAO,EAAE,KAAK,MAAA;AAAA,EACtE;AACA,SAAO;AACT;AAEA,SAAS,UAAU;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKG;AACD,QAAM,UAAU,KAAK,MAAM,GAAG,OAAO;AACrC,QAAM,SAAQ,6BAAM,UAAS,KAAK;AAClC,QAAM,SAAS,QAAQ,SAAS,KAAK,UAAU,QAAQ,KAAK;AAC5D,SACE,qBAAC,OAAA,EAAI,WAAU,aACb,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,SAAS,cAAc,MAAM,EAAE,QAAQ;AAAA,QACvC,kBAAkB;AAAA,QAClB,YAAY;AAAA,QACZ,0BAAyB;AAAA,QACzB,cAAa;AAAA,MAAA;AAAA,IAAA;AAAA,IAEd,UACC,qBAAC,OAAA,EAAI,WAAU,qCAAoC,UAAA;AAAA,MAAA;AAAA,MACxC,QAAQ;AAAA,MAAO;AAAA,MAAK;AAAA,IAAA,EAAA,CAC/B;AAAA,EAAA,GAEJ;AAEJ;AAEA,SAAS,OAAO,EAAE,UAA8C;AAC9D,6BACG,OAAA,EAAI,WAAU,iDACZ,UAAA,OAAO,QAAQ,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MACtC,qBAAC,OAAA,EAAc,WAAU,2DACvB,UAAA;AAAA,IAAA,oBAAC,OAAA,EAAI,WAAU,oDAAoD,UAAA,OAAM;AAAA,IACzE,oBAAC,OAAA,EAAI,WAAU,+CAA+C,UAAA,IAAA,CAAI;AAAA,EAAA,KAF1D,GAGV,CACD,GACH;AAEJ;AAEA,SAAS,WAAW;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKG;AACD,QAAM,QAAQ,YAAY,QAAQ,UAAU;AAC5C,QAAM,KAAK,YAAY,QAAQ,OAAO;AACtC,QAAM,OAAO,UAAU,KAAK,uDAAoB,QAAQ,GAAG,SAAS;AAEpE,QAAM,WAAW,IAAI,IAAI,CAAC,+BAAO,KAAK,yBAAI,GAAG,EAAE,OAAO,CAAC,QAAuB,CAAC,CAAC,GAAG,CAAC;AACpF,QAAM,OAAO,OAAO,KAAK,MAAM,EAAE,OAAO,CAAC,QAAQ;AAC/C,UAAM,QAAQ,OAAO,GAAG;AACxB,WAAO,CAAC,SAAS,IAAI,GAAG,KAAK,UAAU,UAAa,UAAU,QAAQ,UAAU;AAAA,EAClF,CAAC;AAED,QAAM,QAA4B,eAAe,MAAM,MAAM,EAAE,IAAI,CAAC,QAAQ;AAC1E,UAAM,QAAQ,OAAO,GAAG;AACxB,WAAO;AAAA,MACL;AAAA,MACA,OAAO,oBAAC,QAAA,EAAK,WAAU,yBAAyB,WAAA,+BAAO,UAAS,KAAI;AAAA,MACpE,2BAAQ,gBAAA,EAAe,UAAU,KAAK,OAAO,OAAO,GAAG,GAAG,MAAA,CAAc;AAAA,IAAA;AAAA,EAE5E,CAAC;AAED,QAAM,WAAU,+BAAO,WAAS,yBAAI;AAEpC,SACE,qBAAC,OAAA,EAAI,WAAU,aACZ,UAAA;AAAA,IAAA,WACC,qBAAC,OAAA,EAAI,WAAU,uCACZ,UAAA;AAAA,MAAA,OACC,oBAAC,KAAA,EAAE,MAAY,WAAU,oEACtB,UAAA,QAAA,CACH,IAEA,oBAAC,QAAA,EAAK,WAAU,uCAAuC,UAAA,SAAQ;AAAA,MAEhE,MAAM,GAAG,UAAU,+BACjB,QAAA,EAAK,WAAU,sGACb,UAAA,GAAG,MAAA,CACN;AAAA,IAAA,GAEJ;AAAA,IAED,MAAM,SAAS,KACd;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,WAAU;AAAA,QACV,cAAa;AAAA,QACb,gBAAe;AAAA,MAAA;AAAA,IAAA;AAAA,EACjB,GAEJ;AAEJ;AAEA,SAAS,iBACP,YACA,OACA,SACW;AACX,QAAM,EAAE,QAAQ,QAAQ,mBAAmB,eAAe,gBAAgB;AAE1E,UAAQ,WAAW,OAAA;AAAA,IACjB,KAAK;AACH,aAAO,oBAAC,QAAA,EAAK,WAAU,yBAAyB,UAAA,cAAa;AAAA,IAC/D,KAAK;AACH,iCAAQ,KAAA,EAAE,WAAU,2DAA2D,UAAA,OAAO,WAAW,KAAK,GAAE;AAAA,IAC1G,KAAK;AACH,aAAO,oBAAC,QAAA,EAAO,QAAQ,WAAW,OAAA,CAAQ;AAAA,IAC5C,KAAK;AACH,aACE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,QAAQ,WAAW;AAAA,UACnB,QAAQ,oBAAoB,MAAM;AAAA,UACjC,GAAI,SAAS,EAAE,OAAA,IAAW,CAAA;AAAA,UAC1B,GAAI,oBAAoB,EAAE,sBAAsB,CAAA;AAAA,QAAC;AAAA,MAAA;AAAA,IAGxD,KAAK;AAAA,IACL,KAAK,SAAS;AACZ,UAAI,CAAC,WAAW,MAAM;AACpB,mCAAQ,gBAAA,EAAe,UAAS,UAAS,OAAO,WAAW,OAAO;AAAA,MACpE;AACA,aACE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAM,WAAW;AAAA,UACjB,QAAQ,oBAAoB,gBAAgB,MAAM,CAAC;AAAA,UACnD;AAAA,UACC,GAAI,WAAW,UAAU,UAAU,EAAE,MAAM,WAAW,SAAS,CAAA;AAAA,QAAC;AAAA,MAAA;AAAA,IAGvE;AAAA,EAAA;AAEJ;AAGO,SAAS,UAAU,OAAkC;AAC1D,QAAM,EAAE,OAAO,SAAS,WAAW,UAAU,qBAAqB;AAClE,QAAM,aAAa,kBAAkB,KAAK;AAI1C,MAAI,WAAW,WAAW,UAAU,YAAY,WAAW,UAAU,UAAU;AAC7E,WACE,oBAAC,OAAA,EAAI,WAAW,GAAG,oBAAoB,SAAS,GAC9C,UAAA,oBAAC,UAAA,EAAS,MAAM,OAAO,kBAAkB,GAAG,GAC9C;AAAA,EAEJ;AAEA,SACE,oBAAC,OAAA,EAAI,WAAW,GAAG,UAAU,qBAAqB,QAAW,SAAS,GACnE,UAAA,iBAAiB,YAAY,OAAO,OAAO,GAC9C;AAEJ;"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
6
+ class ToolRenderRegistry {
7
+ constructor(adapters = [], options = {}) {
8
+ __publicField(this, "adapters");
9
+ __publicField(this, "options");
10
+ __publicField(this, "byName");
11
+ this.adapters = adapters;
12
+ this.options = options;
13
+ this.byName = new Map((options.tools ?? []).map((tool) => [tool.name, tool]));
14
+ }
15
+ /** Catalog entry for a tool name, or undefined when no catalog was supplied. */
16
+ tool(name) {
17
+ return this.byName.get(name);
18
+ }
19
+ /** A copy sharing the same adapters with merged options — lets <Chat> fold
20
+ * its tool catalog into a registry the host built. */
21
+ with(options) {
22
+ return new ToolRenderRegistry(this.adapters, { ...this.options, ...options });
23
+ }
24
+ resolve(ctx, surface) {
25
+ for (const adapter of this.adapters) {
26
+ const render = surface === "summary" ? adapter.renderSummary : surface === "input" ? adapter.renderInput : adapter.renderOutput;
27
+ if (!render || !adapter.match(ctx)) continue;
28
+ return render(ctx);
29
+ }
30
+ return null;
31
+ }
32
+ resolveSummary(ctx) {
33
+ return this.resolve(ctx, "summary");
34
+ }
35
+ resolveInput(ctx) {
36
+ return this.resolve(ctx, "input");
37
+ }
38
+ resolveOutput(ctx) {
39
+ return this.resolve(ctx, "output");
40
+ }
41
+ }
42
+ function toolNameAdapter(id, names, surfaces) {
43
+ const matches = names instanceof RegExp ? (name) => names.test(name) : Array.isArray(names) ? (name) => names.includes(name) : (name) => name === names;
44
+ return { id, match: (ctx) => matches(ctx.toolName), ...surfaces };
45
+ }
46
+ exports.ToolRenderRegistry = ToolRenderRegistry;
47
+ exports.toolNameAdapter = toolNameAdapter;
48
+ //# sourceMappingURL=adapter.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.cjs","sources":["../../../../src/data/chat/tool-render/adapter.ts"],"sourcesContent":["// L3 of the tool-render pipeline: host adapters. A host claims a tool call via\n// `match` and contributes domain rendering for one or more surfaces (the\n// collapsed summary, the input params, the output). The first registered\n// adapter with a renderer for that surface wins; the built-in heuristics are\n// appended last so they are always the floor. Mirrors the cache-browser\n// CacheNodeAdapter contract.\n\nimport type { ReactNode } from \"react\";\nimport type { AnyToolPart, ToolMeta } from \"../types\";\n\nexport type ToolRenderSurface = \"summary\" | \"input\" | \"output\";\n\nexport type ToolRenderAdapterContext = {\n part: AnyToolPart;\n toolName: string;\n /** Catalog entry for this tool, when the host supplied a tool catalog. */\n tool?: ToolMeta | undefined;\n state: AnyToolPart[\"state\"];\n input: unknown;\n /** Normalized output — transport envelope unwrapped and JSON parsed. */\n output: unknown;\n isError: boolean;\n /** Built-in rendering for the surface being resolved, so an adapter can wrap\n * rather than replace it. */\n defaultView: ReactNode;\n /** Registry options (`resolveEntityHref`, `maxRows`, …). */\n options: ToolRenderRegistryOptions;\n};\n\nexport type ToolRenderAdapter = {\n /** Stable identifier, used as a React key and for debugging. */\n id: string;\n /** Claim the tool call. Evaluated per surface, in registration order. */\n match: (ctx: ToolRenderAdapterContext) => boolean;\n /** Collapsed header line, rendered beside the tool name. */\n renderSummary?: ((ctx: ToolRenderAdapterContext) => ReactNode) | undefined;\n renderInput?: ((ctx: ToolRenderAdapterContext) => ReactNode) | undefined;\n renderOutput?: ((ctx: ToolRenderAdapterContext) => ReactNode) | undefined;\n};\n\nexport type ToolRenderRegistryOptions = {\n /** Deep-link a rendered entity record. clicky-ui knows no routes; hosts do. */\n resolveEntityHref?: ((entity: string, id: string) => string | undefined) | undefined;\n /** Row cap for list/paged rendering. Defaults to 25. */\n maxRows?: number | undefined;\n /** Tool catalog, used to resolve a `ToolMeta` (and its schemas) by name. */\n tools?: ToolMeta[] | undefined;\n};\n\n/** Ordered set of tool renderers. First match wins per surface, so an adapter\n * that only defines `renderOutput` still leaves the input to the built-ins. */\nexport class ToolRenderRegistry {\n readonly adapters: ToolRenderAdapter[];\n readonly options: ToolRenderRegistryOptions;\n private readonly byName: Map<string, ToolMeta>;\n\n constructor(adapters: ToolRenderAdapter[] = [], options: ToolRenderRegistryOptions = {}) {\n this.adapters = adapters;\n this.options = options;\n this.byName = new Map((options.tools ?? []).map((tool) => [tool.name, tool]));\n }\n\n /** Catalog entry for a tool name, or undefined when no catalog was supplied. */\n tool(name: string): ToolMeta | undefined {\n return this.byName.get(name);\n }\n\n /** A copy sharing the same adapters with merged options — lets <Chat> fold\n * its tool catalog into a registry the host built. */\n with(options: ToolRenderRegistryOptions): ToolRenderRegistry {\n return new ToolRenderRegistry(this.adapters, { ...this.options, ...options });\n }\n\n private resolve(\n ctx: ToolRenderAdapterContext,\n surface: ToolRenderSurface,\n ): ReactNode | null {\n for (const adapter of this.adapters) {\n const render =\n surface === \"summary\"\n ? adapter.renderSummary\n : surface === \"input\"\n ? adapter.renderInput\n : adapter.renderOutput;\n if (!render || !adapter.match(ctx)) continue;\n return render(ctx);\n }\n return null;\n }\n\n resolveSummary(ctx: ToolRenderAdapterContext): ReactNode | null {\n return this.resolve(ctx, \"summary\");\n }\n\n resolveInput(ctx: ToolRenderAdapterContext): ReactNode | null {\n return this.resolve(ctx, \"input\");\n }\n\n resolveOutput(ctx: ToolRenderAdapterContext): ReactNode | null {\n return this.resolve(ctx, \"output\");\n }\n}\n\n/** Convenience factory: claim tools by exact name, name list, or pattern. */\nexport function toolNameAdapter(\n id: string,\n names: string | string[] | RegExp,\n surfaces: Pick<ToolRenderAdapter, \"renderSummary\" | \"renderInput\" | \"renderOutput\">,\n): ToolRenderAdapter {\n const matches =\n names instanceof RegExp\n ? (name: string) => names.test(name)\n : Array.isArray(names)\n ? (name: string) => names.includes(name)\n : (name: string) => name === names;\n return { id, match: (ctx) => matches(ctx.toolName), ...surfaces };\n}\n"],"names":[],"mappings":";;;;;AAmDO,MAAM,mBAAmB;AAAA,EAK9B,YAAY,WAAgC,IAAI,UAAqC,CAAA,GAAI;AAJhF;AACA;AACQ;AAGf,SAAK,WAAW;AAChB,SAAK,UAAU;AACf,SAAK,SAAS,IAAI,KAAK,QAAQ,SAAS,CAAA,GAAI,IAAI,CAAC,SAAS,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC;AAAA,EAC9E;AAAA;AAAA,EAGA,KAAK,MAAoC;AACvC,WAAO,KAAK,OAAO,IAAI,IAAI;AAAA,EAC7B;AAAA;AAAA;AAAA,EAIA,KAAK,SAAwD;AAC3D,WAAO,IAAI,mBAAmB,KAAK,UAAU,EAAE,GAAG,KAAK,SAAS,GAAG,SAAS;AAAA,EAC9E;AAAA,EAEQ,QACN,KACA,SACkB;AAClB,eAAW,WAAW,KAAK,UAAU;AACnC,YAAM,SACJ,YAAY,YACR,QAAQ,gBACR,YAAY,UACV,QAAQ,cACR,QAAQ;AAChB,UAAI,CAAC,UAAU,CAAC,QAAQ,MAAM,GAAG,EAAG;AACpC,aAAO,OAAO,GAAG;AAAA,IACnB;AACA,WAAO;AAAA,EACT;AAAA,EAEA,eAAe,KAAiD;AAC9D,WAAO,KAAK,QAAQ,KAAK,SAAS;AAAA,EACpC;AAAA,EAEA,aAAa,KAAiD;AAC5D,WAAO,KAAK,QAAQ,KAAK,OAAO;AAAA,EAClC;AAAA,EAEA,cAAc,KAAiD;AAC7D,WAAO,KAAK,QAAQ,KAAK,QAAQ;AAAA,EACnC;AACF;AAGO,SAAS,gBACd,IACA,OACA,UACmB;AACnB,QAAM,UACJ,iBAAiB,SACb,CAAC,SAAiB,MAAM,KAAK,IAAI,IACjC,MAAM,QAAQ,KAAK,IACjB,CAAC,SAAiB,MAAM,SAAS,IAAI,IACrC,CAAC,SAAiB,SAAS;AACnC,SAAO,EAAE,IAAI,OAAO,CAAC,QAAQ,QAAQ,IAAI,QAAQ,GAAG,GAAG,SAAA;AACzD;;;"}
@@ -0,0 +1,57 @@
1
+ import { ReactNode } from 'react';
2
+ import { AnyToolPart, ToolMeta } from '../types';
3
+ export type ToolRenderSurface = "summary" | "input" | "output";
4
+ export type ToolRenderAdapterContext = {
5
+ part: AnyToolPart;
6
+ toolName: string;
7
+ /** Catalog entry for this tool, when the host supplied a tool catalog. */
8
+ tool?: ToolMeta | undefined;
9
+ state: AnyToolPart["state"];
10
+ input: unknown;
11
+ /** Normalized output — transport envelope unwrapped and JSON parsed. */
12
+ output: unknown;
13
+ isError: boolean;
14
+ /** Built-in rendering for the surface being resolved, so an adapter can wrap
15
+ * rather than replace it. */
16
+ defaultView: ReactNode;
17
+ /** Registry options (`resolveEntityHref`, `maxRows`, …). */
18
+ options: ToolRenderRegistryOptions;
19
+ };
20
+ export type ToolRenderAdapter = {
21
+ /** Stable identifier, used as a React key and for debugging. */
22
+ id: string;
23
+ /** Claim the tool call. Evaluated per surface, in registration order. */
24
+ match: (ctx: ToolRenderAdapterContext) => boolean;
25
+ /** Collapsed header line, rendered beside the tool name. */
26
+ renderSummary?: ((ctx: ToolRenderAdapterContext) => ReactNode) | undefined;
27
+ renderInput?: ((ctx: ToolRenderAdapterContext) => ReactNode) | undefined;
28
+ renderOutput?: ((ctx: ToolRenderAdapterContext) => ReactNode) | undefined;
29
+ };
30
+ export type ToolRenderRegistryOptions = {
31
+ /** Deep-link a rendered entity record. clicky-ui knows no routes; hosts do. */
32
+ resolveEntityHref?: ((entity: string, id: string) => string | undefined) | undefined;
33
+ /** Row cap for list/paged rendering. Defaults to 25. */
34
+ maxRows?: number | undefined;
35
+ /** Tool catalog, used to resolve a `ToolMeta` (and its schemas) by name. */
36
+ tools?: ToolMeta[] | undefined;
37
+ };
38
+ /** Ordered set of tool renderers. First match wins per surface, so an adapter
39
+ * that only defines `renderOutput` still leaves the input to the built-ins. */
40
+ export declare class ToolRenderRegistry {
41
+ readonly adapters: ToolRenderAdapter[];
42
+ readonly options: ToolRenderRegistryOptions;
43
+ private readonly byName;
44
+ constructor(adapters?: ToolRenderAdapter[], options?: ToolRenderRegistryOptions);
45
+ /** Catalog entry for a tool name, or undefined when no catalog was supplied. */
46
+ tool(name: string): ToolMeta | undefined;
47
+ /** A copy sharing the same adapters with merged options — lets <Chat> fold
48
+ * its tool catalog into a registry the host built. */
49
+ with(options: ToolRenderRegistryOptions): ToolRenderRegistry;
50
+ private resolve;
51
+ resolveSummary(ctx: ToolRenderAdapterContext): ReactNode | null;
52
+ resolveInput(ctx: ToolRenderAdapterContext): ReactNode | null;
53
+ resolveOutput(ctx: ToolRenderAdapterContext): ReactNode | null;
54
+ }
55
+ /** Convenience factory: claim tools by exact name, name list, or pattern. */
56
+ export declare function toolNameAdapter(id: string, names: string | string[] | RegExp, surfaces: Pick<ToolRenderAdapter, "renderSummary" | "renderInput" | "renderOutput">): ToolRenderAdapter;
57
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/data/chat/tool-render/adapter.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEtD,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE/D,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC5B,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,wEAAwE;IACxE,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB;kCAC8B;IAC9B,WAAW,EAAE,SAAS,CAAC;IACvB,4DAA4D;IAC5D,OAAO,EAAE,yBAAyB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gEAAgE;IAChE,EAAE,EAAE,MAAM,CAAC;IACX,yEAAyE;IACzE,KAAK,EAAE,CAAC,GAAG,EAAE,wBAAwB,KAAK,OAAO,CAAC;IAClD,4DAA4D;IAC5D,aAAa,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,wBAAwB,KAAK,SAAS,CAAC,GAAG,SAAS,CAAC;IAC3E,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,wBAAwB,KAAK,SAAS,CAAC,GAAG,SAAS,CAAC;IACzE,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,wBAAwB,KAAK,SAAS,CAAC,GAAG,SAAS,CAAC;CAC3E,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IACrF,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,4EAA4E;IAC5E,KAAK,CAAC,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;CAChC,CAAC;AAEF;gFACgF;AAChF,qBAAa,kBAAkB;IAC7B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;gBAEnC,QAAQ,GAAE,iBAAiB,EAAO,EAAE,OAAO,GAAE,yBAA8B;IAMvF,gFAAgF;IAChF,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIxC;2DACuD;IACvD,IAAI,CAAC,OAAO,EAAE,yBAAyB,GAAG,kBAAkB;IAI5D,OAAO,CAAC,OAAO;IAiBf,cAAc,CAAC,GAAG,EAAE,wBAAwB,GAAG,SAAS,GAAG,IAAI;IAI/D,YAAY,CAAC,GAAG,EAAE,wBAAwB,GAAG,SAAS,GAAG,IAAI;IAI7D,aAAa,CAAC,GAAG,EAAE,wBAAwB,GAAG,SAAS,GAAG,IAAI;CAG/D;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,CAC7B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EACjC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,GAAG,aAAa,GAAG,cAAc,CAAC,GAClF,iBAAiB,CAQnB"}
@@ -0,0 +1,48 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
+ class ToolRenderRegistry {
5
+ constructor(adapters = [], options = {}) {
6
+ __publicField(this, "adapters");
7
+ __publicField(this, "options");
8
+ __publicField(this, "byName");
9
+ this.adapters = adapters;
10
+ this.options = options;
11
+ this.byName = new Map((options.tools ?? []).map((tool) => [tool.name, tool]));
12
+ }
13
+ /** Catalog entry for a tool name, or undefined when no catalog was supplied. */
14
+ tool(name) {
15
+ return this.byName.get(name);
16
+ }
17
+ /** A copy sharing the same adapters with merged options — lets <Chat> fold
18
+ * its tool catalog into a registry the host built. */
19
+ with(options) {
20
+ return new ToolRenderRegistry(this.adapters, { ...this.options, ...options });
21
+ }
22
+ resolve(ctx, surface) {
23
+ for (const adapter of this.adapters) {
24
+ const render = surface === "summary" ? adapter.renderSummary : surface === "input" ? adapter.renderInput : adapter.renderOutput;
25
+ if (!render || !adapter.match(ctx)) continue;
26
+ return render(ctx);
27
+ }
28
+ return null;
29
+ }
30
+ resolveSummary(ctx) {
31
+ return this.resolve(ctx, "summary");
32
+ }
33
+ resolveInput(ctx) {
34
+ return this.resolve(ctx, "input");
35
+ }
36
+ resolveOutput(ctx) {
37
+ return this.resolve(ctx, "output");
38
+ }
39
+ }
40
+ function toolNameAdapter(id, names, surfaces) {
41
+ const matches = names instanceof RegExp ? (name) => names.test(name) : Array.isArray(names) ? (name) => names.includes(name) : (name) => name === names;
42
+ return { id, match: (ctx) => matches(ctx.toolName), ...surfaces };
43
+ }
44
+ export {
45
+ ToolRenderRegistry,
46
+ toolNameAdapter
47
+ };
48
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sources":["../../../../src/data/chat/tool-render/adapter.ts"],"sourcesContent":["// L3 of the tool-render pipeline: host adapters. A host claims a tool call via\n// `match` and contributes domain rendering for one or more surfaces (the\n// collapsed summary, the input params, the output). The first registered\n// adapter with a renderer for that surface wins; the built-in heuristics are\n// appended last so they are always the floor. Mirrors the cache-browser\n// CacheNodeAdapter contract.\n\nimport type { ReactNode } from \"react\";\nimport type { AnyToolPart, ToolMeta } from \"../types\";\n\nexport type ToolRenderSurface = \"summary\" | \"input\" | \"output\";\n\nexport type ToolRenderAdapterContext = {\n part: AnyToolPart;\n toolName: string;\n /** Catalog entry for this tool, when the host supplied a tool catalog. */\n tool?: ToolMeta | undefined;\n state: AnyToolPart[\"state\"];\n input: unknown;\n /** Normalized output — transport envelope unwrapped and JSON parsed. */\n output: unknown;\n isError: boolean;\n /** Built-in rendering for the surface being resolved, so an adapter can wrap\n * rather than replace it. */\n defaultView: ReactNode;\n /** Registry options (`resolveEntityHref`, `maxRows`, …). */\n options: ToolRenderRegistryOptions;\n};\n\nexport type ToolRenderAdapter = {\n /** Stable identifier, used as a React key and for debugging. */\n id: string;\n /** Claim the tool call. Evaluated per surface, in registration order. */\n match: (ctx: ToolRenderAdapterContext) => boolean;\n /** Collapsed header line, rendered beside the tool name. */\n renderSummary?: ((ctx: ToolRenderAdapterContext) => ReactNode) | undefined;\n renderInput?: ((ctx: ToolRenderAdapterContext) => ReactNode) | undefined;\n renderOutput?: ((ctx: ToolRenderAdapterContext) => ReactNode) | undefined;\n};\n\nexport type ToolRenderRegistryOptions = {\n /** Deep-link a rendered entity record. clicky-ui knows no routes; hosts do. */\n resolveEntityHref?: ((entity: string, id: string) => string | undefined) | undefined;\n /** Row cap for list/paged rendering. Defaults to 25. */\n maxRows?: number | undefined;\n /** Tool catalog, used to resolve a `ToolMeta` (and its schemas) by name. */\n tools?: ToolMeta[] | undefined;\n};\n\n/** Ordered set of tool renderers. First match wins per surface, so an adapter\n * that only defines `renderOutput` still leaves the input to the built-ins. */\nexport class ToolRenderRegistry {\n readonly adapters: ToolRenderAdapter[];\n readonly options: ToolRenderRegistryOptions;\n private readonly byName: Map<string, ToolMeta>;\n\n constructor(adapters: ToolRenderAdapter[] = [], options: ToolRenderRegistryOptions = {}) {\n this.adapters = adapters;\n this.options = options;\n this.byName = new Map((options.tools ?? []).map((tool) => [tool.name, tool]));\n }\n\n /** Catalog entry for a tool name, or undefined when no catalog was supplied. */\n tool(name: string): ToolMeta | undefined {\n return this.byName.get(name);\n }\n\n /** A copy sharing the same adapters with merged options — lets <Chat> fold\n * its tool catalog into a registry the host built. */\n with(options: ToolRenderRegistryOptions): ToolRenderRegistry {\n return new ToolRenderRegistry(this.adapters, { ...this.options, ...options });\n }\n\n private resolve(\n ctx: ToolRenderAdapterContext,\n surface: ToolRenderSurface,\n ): ReactNode | null {\n for (const adapter of this.adapters) {\n const render =\n surface === \"summary\"\n ? adapter.renderSummary\n : surface === \"input\"\n ? adapter.renderInput\n : adapter.renderOutput;\n if (!render || !adapter.match(ctx)) continue;\n return render(ctx);\n }\n return null;\n }\n\n resolveSummary(ctx: ToolRenderAdapterContext): ReactNode | null {\n return this.resolve(ctx, \"summary\");\n }\n\n resolveInput(ctx: ToolRenderAdapterContext): ReactNode | null {\n return this.resolve(ctx, \"input\");\n }\n\n resolveOutput(ctx: ToolRenderAdapterContext): ReactNode | null {\n return this.resolve(ctx, \"output\");\n }\n}\n\n/** Convenience factory: claim tools by exact name, name list, or pattern. */\nexport function toolNameAdapter(\n id: string,\n names: string | string[] | RegExp,\n surfaces: Pick<ToolRenderAdapter, \"renderSummary\" | \"renderInput\" | \"renderOutput\">,\n): ToolRenderAdapter {\n const matches =\n names instanceof RegExp\n ? (name: string) => names.test(name)\n : Array.isArray(names)\n ? (name: string) => names.includes(name)\n : (name: string) => name === names;\n return { id, match: (ctx) => matches(ctx.toolName), ...surfaces };\n}\n"],"names":[],"mappings":";;;AAmDO,MAAM,mBAAmB;AAAA,EAK9B,YAAY,WAAgC,IAAI,UAAqC,CAAA,GAAI;AAJhF;AACA;AACQ;AAGf,SAAK,WAAW;AAChB,SAAK,UAAU;AACf,SAAK,SAAS,IAAI,KAAK,QAAQ,SAAS,CAAA,GAAI,IAAI,CAAC,SAAS,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC;AAAA,EAC9E;AAAA;AAAA,EAGA,KAAK,MAAoC;AACvC,WAAO,KAAK,OAAO,IAAI,IAAI;AAAA,EAC7B;AAAA;AAAA;AAAA,EAIA,KAAK,SAAwD;AAC3D,WAAO,IAAI,mBAAmB,KAAK,UAAU,EAAE,GAAG,KAAK,SAAS,GAAG,SAAS;AAAA,EAC9E;AAAA,EAEQ,QACN,KACA,SACkB;AAClB,eAAW,WAAW,KAAK,UAAU;AACnC,YAAM,SACJ,YAAY,YACR,QAAQ,gBACR,YAAY,UACV,QAAQ,cACR,QAAQ;AAChB,UAAI,CAAC,UAAU,CAAC,QAAQ,MAAM,GAAG,EAAG;AACpC,aAAO,OAAO,GAAG;AAAA,IACnB;AACA,WAAO;AAAA,EACT;AAAA,EAEA,eAAe,KAAiD;AAC9D,WAAO,KAAK,QAAQ,KAAK,SAAS;AAAA,EACpC;AAAA,EAEA,aAAa,KAAiD;AAC5D,WAAO,KAAK,QAAQ,KAAK,OAAO;AAAA,EAClC;AAAA,EAEA,cAAc,KAAiD;AAC7D,WAAO,KAAK,QAAQ,KAAK,QAAQ;AAAA,EACnC;AACF;AAGO,SAAS,gBACd,IACA,OACA,UACmB;AACnB,QAAM,UACJ,iBAAiB,SACb,CAAC,SAAiB,MAAM,KAAK,IAAI,IACjC,MAAM,QAAQ,KAAK,IACjB,CAAC,SAAiB,MAAM,SAAS,IAAI,IACrC,CAAC,SAAiB,SAAS;AACnC,SAAO,EAAE,IAAI,OAAO,CAAC,QAAQ,QAAQ,IAAI,QAAQ,GAAG,GAAG,SAAA;AACzD;"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const react = require("react");
4
+ const registry = require("./registry.cjs");
5
+ const Context = react.createContext(null);
6
+ const ToolRenderRegistryProvider = Context.Provider;
7
+ let fallback = null;
8
+ function useToolRenderRegistry() {
9
+ const provided = react.useContext(Context);
10
+ if (provided) return provided;
11
+ fallback ?? (fallback = registry.createToolRenderRegistry());
12
+ return fallback;
13
+ }
14
+ exports.ToolRenderRegistryProvider = ToolRenderRegistryProvider;
15
+ exports.useToolRenderRegistry = useToolRenderRegistry;
16
+ //# sourceMappingURL=context.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.cjs","sources":["../../../../src/data/chat/tool-render/context.ts"],"sourcesContent":["// The registry is provided once by <Chat> and read by <ToolCall> through\n// context, so no new props thread through Conversation/Message. A `.ts` file\n// on purpose: oxlint's react/only-export-components forbids exporting a hook\n// alongside components.\n\nimport { createContext, useContext } from \"react\";\nimport type { ToolRenderRegistry } from \"./adapter\";\nimport { createToolRenderRegistry } from \"./registry\";\n\nconst Context = createContext<ToolRenderRegistry | null>(null);\n\nexport const ToolRenderRegistryProvider = Context.Provider;\n\nlet fallback: ToolRenderRegistry | null = null;\n\n/** The nearest provided registry, or a shared default one — so a standalone\n * <ToolCall> in a test or story still renders heuristically. */\nexport function useToolRenderRegistry(): ToolRenderRegistry {\n const provided = useContext(Context);\n if (provided) return provided;\n fallback ??= createToolRenderRegistry();\n return fallback;\n}\n"],"names":["createContext","useContext","createToolRenderRegistry"],"mappings":";;;;AASA,MAAM,UAAUA,MAAAA,cAAyC,IAAI;AAEtD,MAAM,6BAA6B,QAAQ;AAElD,IAAI,WAAsC;AAInC,SAAS,wBAA4C;AAC1D,QAAM,WAAWC,MAAAA,WAAW,OAAO;AACnC,MAAI,SAAU,QAAO;AACrB,0BAAaC,SAAAA,yBAAA;AACb,SAAO;AACT;;;"}
@@ -0,0 +1,6 @@
1
+ import { ToolRenderRegistry } from './adapter';
2
+ export declare const ToolRenderRegistryProvider: import('react').Provider<ToolRenderRegistry | null>;
3
+ /** The nearest provided registry, or a shared default one — so a standalone
4
+ * <ToolCall> in a test or story still renders heuristically. */
5
+ export declare function useToolRenderRegistry(): ToolRenderRegistry;
6
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/data/chat/tool-render/context.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAKpD,eAAO,MAAM,0BAA0B,qDAAmB,CAAC;AAI3D;iEACiE;AACjE,wBAAgB,qBAAqB,IAAI,kBAAkB,CAK1D"}
@@ -0,0 +1,16 @@
1
+ import { createContext, useContext } from "react";
2
+ import { createToolRenderRegistry } from "./registry.js";
3
+ const Context = createContext(null);
4
+ const ToolRenderRegistryProvider = Context.Provider;
5
+ let fallback = null;
6
+ function useToolRenderRegistry() {
7
+ const provided = useContext(Context);
8
+ if (provided) return provided;
9
+ fallback ?? (fallback = createToolRenderRegistry());
10
+ return fallback;
11
+ }
12
+ export {
13
+ ToolRenderRegistryProvider,
14
+ useToolRenderRegistry
15
+ };
16
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sources":["../../../../src/data/chat/tool-render/context.ts"],"sourcesContent":["// The registry is provided once by <Chat> and read by <ToolCall> through\n// context, so no new props thread through Conversation/Message. A `.ts` file\n// on purpose: oxlint's react/only-export-components forbids exporting a hook\n// alongside components.\n\nimport { createContext, useContext } from \"react\";\nimport type { ToolRenderRegistry } from \"./adapter\";\nimport { createToolRenderRegistry } from \"./registry\";\n\nconst Context = createContext<ToolRenderRegistry | null>(null);\n\nexport const ToolRenderRegistryProvider = Context.Provider;\n\nlet fallback: ToolRenderRegistry | null = null;\n\n/** The nearest provided registry, or a shared default one — so a standalone\n * <ToolCall> in a test or story still renders heuristically. */\nexport function useToolRenderRegistry(): ToolRenderRegistry {\n const provided = useContext(Context);\n if (provided) return provided;\n fallback ??= createToolRenderRegistry();\n return fallback;\n}\n"],"names":[],"mappings":";;AASA,MAAM,UAAU,cAAyC,IAAI;AAEtD,MAAM,6BAA6B,QAAQ;AAElD,IAAI,WAAsC;AAInC,SAAS,wBAA4C;AAC1D,QAAM,WAAW,WAAW,OAAO;AACnC,MAAI,SAAU,QAAO;AACrB,0BAAa,yBAAA;AACb,SAAO;AACT;"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const ToolParams = require("./ToolParams.cjs");
5
+ const ToolValue = require("./ToolValue.cjs");
6
+ const summary = require("./summary.cjs");
7
+ const knownTools = require("./known-tools.cjs");
8
+ function defaultToolInputView(ctx) {
9
+ var _a;
10
+ return /* @__PURE__ */ jsxRuntime.jsx(
11
+ ToolParams.ToolParams,
12
+ {
13
+ input: ctx.input,
14
+ ...((_a = ctx.tool) == null ? void 0 : _a.inputSchema) ? { schema: ctx.tool.inputSchema } : {}
15
+ }
16
+ );
17
+ }
18
+ function defaultToolOutputView(ctx) {
19
+ var _a, _b;
20
+ return /* @__PURE__ */ jsxRuntime.jsx(
21
+ ToolValue.ToolValue,
22
+ {
23
+ value: ctx.output,
24
+ isError: ctx.isError,
25
+ ...((_a = ctx.tool) == null ? void 0 : _a.outputSchema) ? { schema: ctx.tool.outputSchema } : {},
26
+ ...((_b = ctx.tool) == null ? void 0 : _b.entity) ? { entity: ctx.tool.entity } : {},
27
+ ...ctx.options.resolveEntityHref ? { resolveEntityHref: ctx.options.resolveEntityHref } : {},
28
+ ...ctx.options.maxRows !== void 0 ? { maxRows: ctx.options.maxRows } : {}
29
+ }
30
+ );
31
+ }
32
+ const defaultToolRenderAdapters = [
33
+ ...knownTools.knownToolRenderAdapters,
34
+ {
35
+ id: "clicky:default",
36
+ match: () => true,
37
+ renderSummary: (ctx) => summary.defaultToolSummary(ctx),
38
+ renderInput: defaultToolInputView,
39
+ renderOutput: defaultToolOutputView
40
+ }
41
+ ];
42
+ exports.defaultToolInputView = defaultToolInputView;
43
+ exports.defaultToolOutputView = defaultToolOutputView;
44
+ exports.defaultToolRenderAdapters = defaultToolRenderAdapters;
45
+ //# sourceMappingURL=defaults.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.cjs","sources":["../../../../src/data/chat/tool-render/defaults.tsx"],"sourcesContent":["// The built-in adapters — known coding-agent tools first, then the heuristic\n// floor that claims every remaining call. Hosts are registered before both.\n\nimport type { ReactNode } from \"react\";\nimport type { ToolRenderAdapter, ToolRenderAdapterContext } from \"./adapter\";\nimport { ToolParams } from \"./ToolParams\";\nimport { ToolValue } from \"./ToolValue\";\nimport { defaultToolSummary } from \"./summary\";\nimport { knownToolRenderAdapters } from \"./known-tools\";\n\n/** Context without the surface's own default view — what a default view is\n * built from. */\nexport type ToolRenderBaseContext = Omit<\n ToolRenderAdapterContext,\n \"defaultView\"\n>;\n\n/** The built-in input rendering, also used as `ctx.defaultView` on that surface. */\nexport function defaultToolInputView(ctx: ToolRenderBaseContext): ReactNode {\n return (\n <ToolParams\n input={ctx.input}\n {...(ctx.tool?.inputSchema ? { schema: ctx.tool.inputSchema } : {})}\n />\n );\n}\n\n/** The built-in output rendering, also used as `ctx.defaultView` on that surface. */\nexport function defaultToolOutputView(ctx: ToolRenderBaseContext): ReactNode {\n return (\n <ToolValue\n value={ctx.output}\n isError={ctx.isError}\n {...(ctx.tool?.outputSchema ? { schema: ctx.tool.outputSchema } : {})}\n {...(ctx.tool?.entity ? { entity: ctx.tool.entity } : {})}\n {...(ctx.options.resolveEntityHref\n ? { resolveEntityHref: ctx.options.resolveEntityHref }\n : {})}\n {...(ctx.options.maxRows !== undefined\n ? { maxRows: ctx.options.maxRows }\n : {})}\n />\n );\n}\n\nexport const defaultToolRenderAdapters: ToolRenderAdapter[] = [\n ...knownToolRenderAdapters,\n {\n id: \"clicky:default\",\n match: () => true,\n renderSummary: (ctx) => defaultToolSummary(ctx),\n renderInput: defaultToolInputView,\n renderOutput: defaultToolOutputView,\n },\n];\n"],"names":["jsx","ToolParams","ToolValue","knownToolRenderAdapters","defaultToolSummary"],"mappings":";;;;;;;AAkBO,SAAS,qBAAqB,KAAuC;;AAC1E,SACEA,2BAAAA;AAAAA,IAACC,WAAAA;AAAAA,IAAA;AAAA,MACC,OAAO,IAAI;AAAA,MACV,KAAI,SAAI,SAAJ,mBAAU,eAAc,EAAE,QAAQ,IAAI,KAAK,gBAAgB,CAAA;AAAA,IAAC;AAAA,EAAA;AAGvE;AAGO,SAAS,sBAAsB,KAAuC;;AAC3E,SACED,2BAAAA;AAAAA,IAACE,UAAAA;AAAAA,IAAA;AAAA,MACC,OAAO,IAAI;AAAA,MACX,SAAS,IAAI;AAAA,MACZ,KAAI,SAAI,SAAJ,mBAAU,gBAAe,EAAE,QAAQ,IAAI,KAAK,aAAA,IAAiB,CAAA;AAAA,MACjE,KAAI,SAAI,SAAJ,mBAAU,UAAS,EAAE,QAAQ,IAAI,KAAK,OAAA,IAAW,CAAA;AAAA,MACrD,GAAI,IAAI,QAAQ,oBACb,EAAE,mBAAmB,IAAI,QAAQ,kBAAA,IACjC,CAAA;AAAA,MACH,GAAI,IAAI,QAAQ,YAAY,SACzB,EAAE,SAAS,IAAI,QAAQ,YACvB,CAAA;AAAA,IAAC;AAAA,EAAA;AAGX;AAEO,MAAM,4BAAiD;AAAA,EAC5D,GAAGC,WAAAA;AAAAA,EACH;AAAA,IACE,IAAI;AAAA,IACJ,OAAO,MAAM;AAAA,IACb,eAAe,CAAC,QAAQC,QAAAA,mBAAmB,GAAG;AAAA,IAC9C,aAAa;AAAA,IACb,cAAc;AAAA,EAAA;AAElB;;;;"}
@@ -0,0 +1,11 @@
1
+ import { ReactNode } from 'react';
2
+ import { ToolRenderAdapter, ToolRenderAdapterContext } from './adapter';
3
+ /** Context without the surface's own default view — what a default view is
4
+ * built from. */
5
+ export type ToolRenderBaseContext = Omit<ToolRenderAdapterContext, "defaultView">;
6
+ /** The built-in input rendering, also used as `ctx.defaultView` on that surface. */
7
+ export declare function defaultToolInputView(ctx: ToolRenderBaseContext): ReactNode;
8
+ /** The built-in output rendering, also used as `ctx.defaultView` on that surface. */
9
+ export declare function defaultToolOutputView(ctx: ToolRenderBaseContext): ReactNode;
10
+ export declare const defaultToolRenderAdapters: ToolRenderAdapter[];
11
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../../src/data/chat/tool-render/defaults.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAM7E;kBACkB;AAClB,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,wBAAwB,EACxB,aAAa,CACd,CAAC;AAEF,oFAAoF;AACpF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,qBAAqB,GAAG,SAAS,CAO1E;AAED,qFAAqF;AACrF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,qBAAqB,GAAG,SAAS,CAe3E;AAED,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,EASxD,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { ToolParams } from "./ToolParams.js";
3
+ import { ToolValue } from "./ToolValue.js";
4
+ import { defaultToolSummary } from "./summary.js";
5
+ import { knownToolRenderAdapters } from "./known-tools.js";
6
+ function defaultToolInputView(ctx) {
7
+ var _a;
8
+ return /* @__PURE__ */ jsx(
9
+ ToolParams,
10
+ {
11
+ input: ctx.input,
12
+ ...((_a = ctx.tool) == null ? void 0 : _a.inputSchema) ? { schema: ctx.tool.inputSchema } : {}
13
+ }
14
+ );
15
+ }
16
+ function defaultToolOutputView(ctx) {
17
+ var _a, _b;
18
+ return /* @__PURE__ */ jsx(
19
+ ToolValue,
20
+ {
21
+ value: ctx.output,
22
+ isError: ctx.isError,
23
+ ...((_a = ctx.tool) == null ? void 0 : _a.outputSchema) ? { schema: ctx.tool.outputSchema } : {},
24
+ ...((_b = ctx.tool) == null ? void 0 : _b.entity) ? { entity: ctx.tool.entity } : {},
25
+ ...ctx.options.resolveEntityHref ? { resolveEntityHref: ctx.options.resolveEntityHref } : {},
26
+ ...ctx.options.maxRows !== void 0 ? { maxRows: ctx.options.maxRows } : {}
27
+ }
28
+ );
29
+ }
30
+ const defaultToolRenderAdapters = [
31
+ ...knownToolRenderAdapters,
32
+ {
33
+ id: "clicky:default",
34
+ match: () => true,
35
+ renderSummary: (ctx) => defaultToolSummary(ctx),
36
+ renderInput: defaultToolInputView,
37
+ renderOutput: defaultToolOutputView
38
+ }
39
+ ];
40
+ export {
41
+ defaultToolInputView,
42
+ defaultToolOutputView,
43
+ defaultToolRenderAdapters
44
+ };
45
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sources":["../../../../src/data/chat/tool-render/defaults.tsx"],"sourcesContent":["// The built-in adapters — known coding-agent tools first, then the heuristic\n// floor that claims every remaining call. Hosts are registered before both.\n\nimport type { ReactNode } from \"react\";\nimport type { ToolRenderAdapter, ToolRenderAdapterContext } from \"./adapter\";\nimport { ToolParams } from \"./ToolParams\";\nimport { ToolValue } from \"./ToolValue\";\nimport { defaultToolSummary } from \"./summary\";\nimport { knownToolRenderAdapters } from \"./known-tools\";\n\n/** Context without the surface's own default view — what a default view is\n * built from. */\nexport type ToolRenderBaseContext = Omit<\n ToolRenderAdapterContext,\n \"defaultView\"\n>;\n\n/** The built-in input rendering, also used as `ctx.defaultView` on that surface. */\nexport function defaultToolInputView(ctx: ToolRenderBaseContext): ReactNode {\n return (\n <ToolParams\n input={ctx.input}\n {...(ctx.tool?.inputSchema ? { schema: ctx.tool.inputSchema } : {})}\n />\n );\n}\n\n/** The built-in output rendering, also used as `ctx.defaultView` on that surface. */\nexport function defaultToolOutputView(ctx: ToolRenderBaseContext): ReactNode {\n return (\n <ToolValue\n value={ctx.output}\n isError={ctx.isError}\n {...(ctx.tool?.outputSchema ? { schema: ctx.tool.outputSchema } : {})}\n {...(ctx.tool?.entity ? { entity: ctx.tool.entity } : {})}\n {...(ctx.options.resolveEntityHref\n ? { resolveEntityHref: ctx.options.resolveEntityHref }\n : {})}\n {...(ctx.options.maxRows !== undefined\n ? { maxRows: ctx.options.maxRows }\n : {})}\n />\n );\n}\n\nexport const defaultToolRenderAdapters: ToolRenderAdapter[] = [\n ...knownToolRenderAdapters,\n {\n id: \"clicky:default\",\n match: () => true,\n renderSummary: (ctx) => defaultToolSummary(ctx),\n renderInput: defaultToolInputView,\n renderOutput: defaultToolOutputView,\n },\n];\n"],"names":[],"mappings":";;;;;AAkBO,SAAS,qBAAqB,KAAuC;;AAC1E,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO,IAAI;AAAA,MACV,KAAI,SAAI,SAAJ,mBAAU,eAAc,EAAE,QAAQ,IAAI,KAAK,gBAAgB,CAAA;AAAA,IAAC;AAAA,EAAA;AAGvE;AAGO,SAAS,sBAAsB,KAAuC;;AAC3E,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO,IAAI;AAAA,MACX,SAAS,IAAI;AAAA,MACZ,KAAI,SAAI,SAAJ,mBAAU,gBAAe,EAAE,QAAQ,IAAI,KAAK,aAAA,IAAiB,CAAA;AAAA,MACjE,KAAI,SAAI,SAAJ,mBAAU,UAAS,EAAE,QAAQ,IAAI,KAAK,OAAA,IAAW,CAAA;AAAA,MACrD,GAAI,IAAI,QAAQ,oBACb,EAAE,mBAAmB,IAAI,QAAQ,kBAAA,IACjC,CAAA;AAAA,MACH,GAAI,IAAI,QAAQ,YAAY,SACzB,EAAE,SAAS,IAAI,QAAQ,YACvB,CAAA;AAAA,IAAC;AAAA,EAAA;AAGX;AAEO,MAAM,4BAAiD;AAAA,EAC5D,GAAG;AAAA,EACH;AAAA,IACE,IAAI;AAAA,IACJ,OAAO,MAAM;AAAA,IACb,eAAe,CAAC,QAAQ,mBAAmB,GAAG;AAAA,IAC9C,aAAa;AAAA,IACb,cAAc;AAAA,EAAA;AAElB;"}
@@ -0,0 +1,13 @@
1
+ export { ToolRenderRegistry, toolNameAdapter, type ToolRenderAdapter, type ToolRenderAdapterContext, type ToolRenderRegistryOptions, type ToolRenderSurface, } from './adapter';
2
+ export { createToolRenderRegistry, toToolRenderRegistry } from './registry';
3
+ export { ToolRenderRegistryProvider, useToolRenderRegistry } from './context';
4
+ export { defaultToolInputView, defaultToolOutputView, defaultToolRenderAdapters, type ToolRenderBaseContext, } from './defaults';
5
+ export { defaultToolSummary, summarizeToolValue } from './summary';
6
+ export { ToolArgs, type ToolArgsProps } from './ToolArgs';
7
+ export { knownToolRenderAdapters } from './known-tools';
8
+ export { normalizeToolOutput, type NormalizedToolOutput } from './normalize';
9
+ export { classifyToolValue, deriveColumns, type ClassifiedToolValue, type ToolPageInfo, type ToolValueShape, } from './shape';
10
+ export { fieldMetaFromSchema, listItemsSchema, orderFieldKeys, type ToolFieldMeta, } from './schema';
11
+ export { ToolParams, ToolFieldValue, type ToolParamsProps } from './ToolParams';
12
+ export { ToolValue, type ToolValueProps } from './ToolValue';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/data/chat/tool-render/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,GACvB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAC9E,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,cAAc,GACpB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,KAAK,aAAa,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC"}