@flanksource/clicky-ui 0.3.16 → 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 (871) 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 +215 -63
  188. package/dist/data/DataTable.cjs.map +1 -1
  189. package/dist/data/DataTable.d.ts +65 -3
  190. package/dist/data/DataTable.d.ts.map +1 -1
  191. package/dist/data/DataTable.js +215 -63
  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/ServerTimingBadge.cjs +64 -0
  200. package/dist/data/ServerTimingBadge.cjs.map +1 -0
  201. package/dist/data/ServerTimingBadge.d.ts +9 -0
  202. package/dist/data/ServerTimingBadge.d.ts.map +1 -0
  203. package/dist/data/ServerTimingBadge.js +64 -0
  204. package/dist/data/ServerTimingBadge.js.map +1 -0
  205. package/dist/data/TaskManager.cjs +99 -14
  206. package/dist/data/TaskManager.cjs.map +1 -1
  207. package/dist/data/TaskManager.d.ts.map +1 -1
  208. package/dist/data/TaskManager.js +100 -15
  209. package/dist/data/TaskManager.js.map +1 -1
  210. package/dist/data/TaskProgress.cjs +50 -11
  211. package/dist/data/TaskProgress.cjs.map +1 -1
  212. package/dist/data/TaskProgress.d.ts +2 -1
  213. package/dist/data/TaskProgress.d.ts.map +1 -1
  214. package/dist/data/TaskProgress.js +50 -11
  215. package/dist/data/TaskProgress.js.map +1 -1
  216. package/dist/data/ai/AdvancedChatConfig.cjs +289 -0
  217. package/dist/data/ai/AdvancedChatConfig.cjs.map +1 -0
  218. package/dist/data/ai/AdvancedChatConfig.d.ts +21 -0
  219. package/dist/data/ai/AdvancedChatConfig.d.ts.map +1 -0
  220. package/dist/data/ai/AdvancedChatConfig.js +289 -0
  221. package/dist/data/ai/AdvancedChatConfig.js.map +1 -0
  222. package/dist/data/ai/AdvancedCostsPanel.cjs +120 -0
  223. package/dist/data/ai/AdvancedCostsPanel.cjs.map +1 -0
  224. package/dist/data/ai/AdvancedCostsPanel.d.ts +16 -0
  225. package/dist/data/ai/AdvancedCostsPanel.d.ts.map +1 -0
  226. package/dist/data/ai/AdvancedCostsPanel.js +120 -0
  227. package/dist/data/ai/AdvancedCostsPanel.js.map +1 -0
  228. package/dist/data/ai/ChatWindow.catalogs.cjs +74 -0
  229. package/dist/data/ai/ChatWindow.catalogs.cjs.map +1 -0
  230. package/dist/data/ai/ChatWindow.catalogs.d.ts +16 -0
  231. package/dist/data/ai/ChatWindow.catalogs.d.ts.map +1 -0
  232. package/dist/data/ai/ChatWindow.catalogs.js +74 -0
  233. package/dist/data/ai/ChatWindow.catalogs.js.map +1 -0
  234. package/dist/data/ai/ChatWindow.cjs +86 -100
  235. package/dist/data/ai/ChatWindow.cjs.map +1 -1
  236. package/dist/data/ai/ChatWindow.d.ts +1 -1
  237. package/dist/data/ai/ChatWindow.d.ts.map +1 -1
  238. package/dist/data/ai/ChatWindow.js +88 -102
  239. package/dist/data/ai/ChatWindow.js.map +1 -1
  240. package/dist/data/ai/ChatWindow.preferences.cjs.map +1 -1
  241. package/dist/data/ai/ChatWindow.preferences.d.ts +2 -4
  242. package/dist/data/ai/ChatWindow.preferences.d.ts.map +1 -1
  243. package/dist/data/ai/ChatWindow.preferences.js.map +1 -1
  244. package/dist/data/ai/ChatWindow.runtime.cjs +120 -0
  245. package/dist/data/ai/ChatWindow.runtime.cjs.map +1 -0
  246. package/dist/data/ai/ChatWindow.runtime.d.ts +20 -0
  247. package/dist/data/ai/ChatWindow.runtime.d.ts.map +1 -0
  248. package/dist/data/ai/ChatWindow.runtime.js +120 -0
  249. package/dist/data/ai/ChatWindow.runtime.js.map +1 -0
  250. package/dist/data/ai/ChatWindow.thread-status.cjs +14 -0
  251. package/dist/data/ai/ChatWindow.thread-status.cjs.map +1 -0
  252. package/dist/data/ai/ChatWindow.thread-status.d.ts +5 -0
  253. package/dist/data/ai/ChatWindow.thread-status.d.ts.map +1 -0
  254. package/dist/data/ai/ChatWindow.thread-status.js +14 -0
  255. package/dist/data/ai/ChatWindow.thread-status.js.map +1 -0
  256. package/dist/data/ai/ChatWindow.thread.cjs +68 -0
  257. package/dist/data/ai/ChatWindow.thread.cjs.map +1 -0
  258. package/dist/data/ai/ChatWindow.thread.d.ts +16 -0
  259. package/dist/data/ai/ChatWindow.thread.d.ts.map +1 -0
  260. package/dist/data/ai/ChatWindow.thread.js +68 -0
  261. package/dist/data/ai/ChatWindow.thread.js.map +1 -0
  262. package/dist/data/ai/ChatWindow.tool-catalog.cjs +20 -0
  263. package/dist/data/ai/ChatWindow.tool-catalog.cjs.map +1 -1
  264. package/dist/data/ai/ChatWindow.tool-catalog.d.ts +17 -1
  265. package/dist/data/ai/ChatWindow.tool-catalog.d.ts.map +1 -1
  266. package/dist/data/ai/ChatWindow.tool-catalog.js +20 -0
  267. package/dist/data/ai/ChatWindow.tool-catalog.js.map +1 -1
  268. package/dist/data/ai/ChatWindow.types.d.ts +13 -5
  269. package/dist/data/ai/ChatWindow.types.d.ts.map +1 -1
  270. package/dist/data/ai/ChatWindowManager.cjs +3 -1
  271. package/dist/data/ai/ChatWindowManager.cjs.map +1 -1
  272. package/dist/data/ai/ChatWindowManager.d.ts.map +1 -1
  273. package/dist/data/ai/ChatWindowManager.js +3 -1
  274. package/dist/data/ai/ChatWindowManager.js.map +1 -1
  275. package/dist/data/ai/PromptPicker/PromptPicker.cjs +1 -1
  276. package/dist/data/ai/PromptPicker/PromptPicker.cjs.map +1 -1
  277. package/dist/data/ai/PromptPicker/PromptPicker.d.ts +1 -1
  278. package/dist/data/ai/PromptPicker/PromptPicker.d.ts.map +1 -1
  279. package/dist/data/ai/PromptPicker/PromptPicker.js +1 -1
  280. package/dist/data/ai/PromptPicker/PromptPicker.js.map +1 -1
  281. package/dist/data/ai/PromptRunEditor/index.cjs +101 -89
  282. package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
  283. package/dist/data/ai/PromptRunEditor/index.d.ts +6 -10
  284. package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
  285. package/dist/data/ai/PromptRunEditor/index.js +103 -91
  286. package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
  287. package/dist/data/ai/PromptRunEditor/model.cjs +47 -0
  288. package/dist/data/ai/PromptRunEditor/model.cjs.map +1 -0
  289. package/dist/data/ai/PromptRunEditor/model.d.ts +17 -0
  290. package/dist/data/ai/PromptRunEditor/model.d.ts.map +1 -0
  291. package/dist/data/ai/PromptRunEditor/model.js +47 -0
  292. package/dist/data/ai/PromptRunEditor/model.js.map +1 -0
  293. package/dist/data/ai/RuntimeModePicker.cjs +1 -1
  294. package/dist/data/ai/RuntimeModePicker.cjs.map +1 -1
  295. package/dist/data/ai/RuntimeModePicker.d.ts +1 -1
  296. package/dist/data/ai/RuntimeModePicker.d.ts.map +1 -1
  297. package/dist/data/ai/RuntimeModePicker.js +1 -1
  298. package/dist/data/ai/RuntimeModePicker.js.map +1 -1
  299. package/dist/data/ai/SessionInspector.files.cjs +26 -43
  300. package/dist/data/ai/SessionInspector.files.cjs.map +1 -1
  301. package/dist/data/ai/SessionInspector.files.d.ts.map +1 -1
  302. package/dist/data/ai/SessionInspector.files.js +26 -43
  303. package/dist/data/ai/SessionInspector.files.js.map +1 -1
  304. package/dist/data/ai/SessionInspector.hierarchy.cjs +1 -1
  305. package/dist/data/ai/SessionInspector.hierarchy.cjs.map +1 -1
  306. package/dist/data/ai/SessionInspector.hierarchy.js +1 -1
  307. package/dist/data/ai/SessionInspector.hierarchy.js.map +1 -1
  308. package/dist/data/ai/SessionInspector.model.cjs +1 -1
  309. package/dist/data/ai/SessionInspector.model.cjs.map +1 -1
  310. package/dist/data/ai/SessionInspector.model.js +1 -1
  311. package/dist/data/ai/SessionInspector.model.js.map +1 -1
  312. package/dist/data/ai/SessionViewer.header.cjs +17 -9
  313. package/dist/data/ai/SessionViewer.header.cjs.map +1 -1
  314. package/dist/data/ai/SessionViewer.header.d.ts.map +1 -1
  315. package/dist/data/ai/SessionViewer.header.js +17 -9
  316. package/dist/data/ai/SessionViewer.header.js.map +1 -1
  317. package/dist/data/ai/SessionViewer.model.cjs +2 -0
  318. package/dist/data/ai/SessionViewer.model.cjs.map +1 -1
  319. package/dist/data/ai/SessionViewer.model.d.ts +4 -0
  320. package/dist/data/ai/SessionViewer.model.d.ts.map +1 -1
  321. package/dist/data/ai/SessionViewer.model.js +2 -0
  322. package/dist/data/ai/SessionViewer.model.js.map +1 -1
  323. package/dist/data/ai/SessionViewer.rows.cjs +4 -16
  324. package/dist/data/ai/SessionViewer.rows.cjs.map +1 -1
  325. package/dist/data/ai/SessionViewer.rows.d.ts.map +1 -1
  326. package/dist/data/ai/SessionViewer.rows.js +4 -16
  327. package/dist/data/ai/SessionViewer.rows.js.map +1 -1
  328. package/dist/data/ai/SessionViewer.unified.d.ts +1 -0
  329. package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -1
  330. package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs +12 -3
  331. package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs.map +1 -1
  332. package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts +1 -1
  333. package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts.map +1 -1
  334. package/dist/data/ai/SpecRuntimeEditor/ModelSection.js +12 -3
  335. package/dist/data/ai/SpecRuntimeEditor/ModelSection.js.map +1 -1
  336. package/dist/data/ai/SpecRuntimeEditor/VerifySection.cjs.map +1 -1
  337. package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts +1 -1
  338. package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts.map +1 -1
  339. package/dist/data/ai/SpecRuntimeEditor/VerifySection.js.map +1 -1
  340. package/dist/data/ai/SpecRuntimeEditor/index.cjs.map +1 -1
  341. package/dist/data/ai/SpecRuntimeEditor/index.d.ts +2 -2
  342. package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -1
  343. package/dist/data/ai/SpecRuntimeEditor/index.js.map +1 -1
  344. package/dist/data/ai/ThreadPicker.cjs +65 -3
  345. package/dist/data/ai/ThreadPicker.cjs.map +1 -1
  346. package/dist/data/ai/ThreadPicker.d.ts +13 -5
  347. package/dist/data/ai/ThreadPicker.d.ts.map +1 -1
  348. package/dist/data/ai/ThreadPicker.js +65 -3
  349. package/dist/data/ai/ThreadPicker.js.map +1 -1
  350. package/dist/data/ai/ToolPreferences.cjs +65 -685
  351. package/dist/data/ai/ToolPreferences.cjs.map +1 -1
  352. package/dist/data/ai/ToolPreferences.d.ts +15 -17
  353. package/dist/data/ai/ToolPreferences.d.ts.map +1 -1
  354. package/dist/data/ai/ToolPreferences.js +64 -683
  355. package/dist/data/ai/ToolPreferences.js.map +1 -1
  356. package/dist/data/ai/ToolPreferences.model.cjs +148 -0
  357. package/dist/data/ai/ToolPreferences.model.cjs.map +1 -0
  358. package/dist/data/ai/ToolPreferences.model.d.ts +31 -0
  359. package/dist/data/ai/ToolPreferences.model.d.ts.map +1 -0
  360. package/dist/data/ai/ToolPreferences.model.js +148 -0
  361. package/dist/data/ai/ToolPreferences.model.js.map +1 -0
  362. package/dist/data/ai/ToolPreferencesList.cjs +270 -0
  363. package/dist/data/ai/ToolPreferencesList.cjs.map +1 -0
  364. package/dist/data/ai/ToolPreferencesList.d.ts +18 -0
  365. package/dist/data/ai/ToolPreferencesList.d.ts.map +1 -0
  366. package/dist/data/ai/ToolPreferencesList.js +270 -0
  367. package/dist/data/ai/ToolPreferencesList.js.map +1 -0
  368. package/dist/data/ai/agent-action-icons.cjs.map +1 -1
  369. package/dist/data/ai/agent-action-icons.js.map +1 -1
  370. package/dist/data/ai/chat-window-context.cjs +4 -1
  371. package/dist/data/ai/chat-window-context.cjs.map +1 -1
  372. package/dist/data/ai/chat-window-context.d.ts +7 -0
  373. package/dist/data/ai/chat-window-context.d.ts.map +1 -1
  374. package/dist/data/ai/chat-window-context.js +4 -1
  375. package/dist/data/ai/chat-window-context.js.map +1 -1
  376. package/dist/data/ai/index.d.ts +7 -3
  377. package/dist/data/ai/index.d.ts.map +1 -1
  378. package/dist/data/ai/session-tones.cjs +67 -0
  379. package/dist/data/ai/session-tones.cjs.map +1 -0
  380. package/dist/data/ai/session-tones.d.ts +34 -0
  381. package/dist/data/ai/session-tones.d.ts.map +1 -0
  382. package/dist/data/ai/session-tones.js +67 -0
  383. package/dist/data/ai/session-tones.js.map +1 -0
  384. package/dist/data/ai/thread-costs.cjs +39 -0
  385. package/dist/data/ai/thread-costs.cjs.map +1 -0
  386. package/dist/data/ai/thread-costs.d.ts +62 -0
  387. package/dist/data/ai/thread-costs.d.ts.map +1 -0
  388. package/dist/data/ai/thread-costs.js +39 -0
  389. package/dist/data/ai/thread-costs.js.map +1 -0
  390. package/dist/data/cells/CellFilterActions.cjs +68 -0
  391. package/dist/data/cells/CellFilterActions.cjs.map +1 -0
  392. package/dist/data/cells/CellFilterActions.d.ts +15 -0
  393. package/dist/data/cells/CellFilterActions.d.ts.map +1 -0
  394. package/dist/data/cells/CellFilterActions.js +68 -0
  395. package/dist/data/cells/CellFilterActions.js.map +1 -0
  396. package/dist/data/chat/Chat.cjs +192 -80
  397. package/dist/data/chat/Chat.cjs.map +1 -1
  398. package/dist/data/chat/Chat.d.ts +24 -4
  399. package/dist/data/chat/Chat.d.ts.map +1 -1
  400. package/dist/data/chat/Chat.fixtures.cjs +48 -3
  401. package/dist/data/chat/Chat.fixtures.cjs.map +1 -1
  402. package/dist/data/chat/Chat.fixtures.d.ts +1 -1
  403. package/dist/data/chat/Chat.fixtures.d.ts.map +1 -1
  404. package/dist/data/chat/Chat.fixtures.js +48 -3
  405. package/dist/data/chat/Chat.fixtures.js.map +1 -1
  406. package/dist/data/chat/Chat.js +195 -83
  407. package/dist/data/chat/Chat.js.map +1 -1
  408. package/dist/data/chat/Chat.runtime.cjs +63 -0
  409. package/dist/data/chat/Chat.runtime.cjs.map +1 -0
  410. package/dist/data/chat/Chat.runtime.d.ts +16 -0
  411. package/dist/data/chat/Chat.runtime.d.ts.map +1 -0
  412. package/dist/data/chat/Chat.runtime.js +63 -0
  413. package/dist/data/chat/Chat.runtime.js.map +1 -0
  414. package/dist/data/chat/ChatRuntimeToolbar.cjs +62 -0
  415. package/dist/data/chat/ChatRuntimeToolbar.cjs.map +1 -0
  416. package/dist/data/chat/ChatRuntimeToolbar.d.ts +14 -0
  417. package/dist/data/chat/ChatRuntimeToolbar.d.ts.map +1 -0
  418. package/dist/data/chat/ChatRuntimeToolbar.js +62 -0
  419. package/dist/data/chat/ChatRuntimeToolbar.js.map +1 -0
  420. package/dist/data/chat/ContextMeter.cjs +144 -73
  421. package/dist/data/chat/ContextMeter.cjs.map +1 -1
  422. package/dist/data/chat/ContextMeter.d.ts +8 -3
  423. package/dist/data/chat/ContextMeter.d.ts.map +1 -1
  424. package/dist/data/chat/ContextMeter.js +144 -73
  425. package/dist/data/chat/ContextMeter.js.map +1 -1
  426. package/dist/data/chat/ToolCall.cjs +86 -24
  427. package/dist/data/chat/ToolCall.cjs.map +1 -1
  428. package/dist/data/chat/ToolCall.d.ts +12 -5
  429. package/dist/data/chat/ToolCall.d.ts.map +1 -1
  430. package/dist/data/chat/ToolCall.js +86 -24
  431. package/dist/data/chat/ToolCall.js.map +1 -1
  432. package/dist/data/chat/approval.cjs +64 -0
  433. package/dist/data/chat/approval.cjs.map +1 -0
  434. package/dist/data/chat/approval.d.ts +18 -0
  435. package/dist/data/chat/approval.d.ts.map +1 -0
  436. package/dist/data/chat/approval.js +64 -0
  437. package/dist/data/chat/approval.js.map +1 -0
  438. package/dist/data/chat/index.d.ts +5 -3
  439. package/dist/data/chat/index.d.ts.map +1 -1
  440. package/dist/data/chat/tool-render/ToolArgs.cjs +50 -0
  441. package/dist/data/chat/tool-render/ToolArgs.cjs.map +1 -0
  442. package/dist/data/chat/tool-render/ToolArgs.d.ts +7 -0
  443. package/dist/data/chat/tool-render/ToolArgs.d.ts.map +1 -0
  444. package/dist/data/chat/tool-render/ToolArgs.js +50 -0
  445. package/dist/data/chat/tool-render/ToolArgs.js.map +1 -0
  446. package/dist/data/chat/tool-render/ToolParams.cjs +155 -0
  447. package/dist/data/chat/tool-render/ToolParams.cjs.map +1 -0
  448. package/dist/data/chat/tool-render/ToolParams.d.ts +20 -0
  449. package/dist/data/chat/tool-render/ToolParams.d.ts.map +1 -0
  450. package/dist/data/chat/tool-render/ToolParams.js +155 -0
  451. package/dist/data/chat/tool-render/ToolParams.js.map +1 -0
  452. package/dist/data/chat/tool-render/ToolValue.cjs +140 -0
  453. package/dist/data/chat/tool-render/ToolValue.cjs.map +1 -0
  454. package/dist/data/chat/tool-render/ToolValue.d.ts +16 -0
  455. package/dist/data/chat/tool-render/ToolValue.d.ts.map +1 -0
  456. package/dist/data/chat/tool-render/ToolValue.js +140 -0
  457. package/dist/data/chat/tool-render/ToolValue.js.map +1 -0
  458. package/dist/data/chat/tool-render/adapter.cjs +48 -0
  459. package/dist/data/chat/tool-render/adapter.cjs.map +1 -0
  460. package/dist/data/chat/tool-render/adapter.d.ts +57 -0
  461. package/dist/data/chat/tool-render/adapter.d.ts.map +1 -0
  462. package/dist/data/chat/tool-render/adapter.js +48 -0
  463. package/dist/data/chat/tool-render/adapter.js.map +1 -0
  464. package/dist/data/chat/tool-render/context.cjs +16 -0
  465. package/dist/data/chat/tool-render/context.cjs.map +1 -0
  466. package/dist/data/chat/tool-render/context.d.ts +6 -0
  467. package/dist/data/chat/tool-render/context.d.ts.map +1 -0
  468. package/dist/data/chat/tool-render/context.js +16 -0
  469. package/dist/data/chat/tool-render/context.js.map +1 -0
  470. package/dist/data/chat/tool-render/defaults.cjs +45 -0
  471. package/dist/data/chat/tool-render/defaults.cjs.map +1 -0
  472. package/dist/data/chat/tool-render/defaults.d.ts +11 -0
  473. package/dist/data/chat/tool-render/defaults.d.ts.map +1 -0
  474. package/dist/data/chat/tool-render/defaults.js +45 -0
  475. package/dist/data/chat/tool-render/defaults.js.map +1 -0
  476. package/dist/data/chat/tool-render/index.d.ts +13 -0
  477. package/dist/data/chat/tool-render/index.d.ts.map +1 -0
  478. package/dist/data/chat/tool-render/known-tool-views.cjs +208 -0
  479. package/dist/data/chat/tool-render/known-tool-views.cjs.map +1 -0
  480. package/dist/data/chat/tool-render/known-tool-views.d.ts +10 -0
  481. package/dist/data/chat/tool-render/known-tool-views.d.ts.map +1 -0
  482. package/dist/data/chat/tool-render/known-tool-views.js +208 -0
  483. package/dist/data/chat/tool-render/known-tool-views.js.map +1 -0
  484. package/dist/data/chat/tool-render/known-tools.cjs +58 -0
  485. package/dist/data/chat/tool-render/known-tools.cjs.map +1 -0
  486. package/dist/data/chat/tool-render/known-tools.d.ts +4 -0
  487. package/dist/data/chat/tool-render/known-tools.d.ts.map +1 -0
  488. package/dist/data/chat/tool-render/known-tools.js +58 -0
  489. package/dist/data/chat/tool-render/known-tools.js.map +1 -0
  490. package/dist/data/chat/tool-render/normalize.cjs +42 -0
  491. package/dist/data/chat/tool-render/normalize.cjs.map +1 -0
  492. package/dist/data/chat/tool-render/normalize.d.ts +13 -0
  493. package/dist/data/chat/tool-render/normalize.d.ts.map +1 -0
  494. package/dist/data/chat/tool-render/normalize.js +42 -0
  495. package/dist/data/chat/tool-render/normalize.js.map +1 -0
  496. package/dist/data/chat/tool-render/registry.cjs +14 -0
  497. package/dist/data/chat/tool-render/registry.cjs.map +1 -0
  498. package/dist/data/chat/tool-render/registry.d.ts +7 -0
  499. package/dist/data/chat/tool-render/registry.d.ts.map +1 -0
  500. package/dist/data/chat/tool-render/registry.js +14 -0
  501. package/dist/data/chat/tool-render/registry.js.map +1 -0
  502. package/dist/data/chat/tool-render/schema.cjs +57 -0
  503. package/dist/data/chat/tool-render/schema.cjs.map +1 -0
  504. package/dist/data/chat/tool-render/schema.d.ts +28 -0
  505. package/dist/data/chat/tool-render/schema.d.ts.map +1 -0
  506. package/dist/data/chat/tool-render/schema.js +57 -0
  507. package/dist/data/chat/tool-render/schema.js.map +1 -0
  508. package/dist/data/chat/tool-render/shape.cjs +94 -0
  509. package/dist/data/chat/tool-render/shape.cjs.map +1 -0
  510. package/dist/data/chat/tool-render/shape.d.ts +39 -0
  511. package/dist/data/chat/tool-render/shape.d.ts.map +1 -0
  512. package/dist/data/chat/tool-render/shape.js +94 -0
  513. package/dist/data/chat/tool-render/shape.js.map +1 -0
  514. package/dist/data/chat/tool-render/summary.cjs +34 -0
  515. package/dist/data/chat/tool-render/summary.cjs.map +1 -0
  516. package/dist/data/chat/tool-render/summary.d.ts +8 -0
  517. package/dist/data/chat/tool-render/summary.d.ts.map +1 -0
  518. package/dist/data/chat/tool-render/summary.js +34 -0
  519. package/dist/data/chat/tool-render/summary.js.map +1 -0
  520. package/dist/data/chat/types.cjs.map +1 -1
  521. package/dist/data/chat/types.d.ts +19 -0
  522. package/dist/data/chat/types.d.ts.map +1 -1
  523. package/dist/data/chat/types.js.map +1 -1
  524. package/dist/data/chat/usage-snapshot.cjs +17 -0
  525. package/dist/data/chat/usage-snapshot.cjs.map +1 -0
  526. package/dist/data/chat/usage-snapshot.d.ts +21 -0
  527. package/dist/data/chat/usage-snapshot.d.ts.map +1 -0
  528. package/dist/data/chat/usage-snapshot.js +17 -0
  529. package/dist/data/chat/usage-snapshot.js.map +1 -0
  530. package/dist/data/data-table-filter-values.cjs +83 -0
  531. package/dist/data/data-table-filter-values.cjs.map +1 -0
  532. package/dist/data/data-table-filter-values.d.ts +18 -0
  533. package/dist/data/data-table-filter-values.d.ts.map +1 -0
  534. package/dist/data/data-table-filter-values.js +83 -0
  535. package/dist/data/data-table-filter-values.js.map +1 -0
  536. package/dist/data/data-table-server-filters.cjs +171 -0
  537. package/dist/data/data-table-server-filters.cjs.map +1 -0
  538. package/dist/data/data-table-server-filters.d.ts +128 -0
  539. package/dist/data/data-table-server-filters.d.ts.map +1 -0
  540. package/dist/data/data-table-server-filters.js +171 -0
  541. package/dist/data/data-table-server-filters.js.map +1 -0
  542. package/dist/data/query-browser/QueryBrowser.cjs +96 -19
  543. package/dist/data/query-browser/QueryBrowser.cjs.map +1 -1
  544. package/dist/data/query-browser/QueryBrowser.d.ts +37 -6
  545. package/dist/data/query-browser/QueryBrowser.d.ts.map +1 -1
  546. package/dist/data/query-browser/QueryBrowser.js +96 -19
  547. package/dist/data/query-browser/QueryBrowser.js.map +1 -1
  548. package/dist/data/query-browser/index.d.ts +1 -1
  549. package/dist/data/query-browser/index.d.ts.map +1 -1
  550. package/dist/data/runtime/ProviderStatusPanel.cjs +187 -0
  551. package/dist/data/runtime/ProviderStatusPanel.cjs.map +1 -0
  552. package/dist/data/runtime/ProviderStatusPanel.d.ts +10 -0
  553. package/dist/data/runtime/ProviderStatusPanel.d.ts.map +1 -0
  554. package/dist/data/runtime/ProviderStatusPanel.js +187 -0
  555. package/dist/data/runtime/ProviderStatusPanel.js.map +1 -0
  556. package/dist/data/runtime/RuntimeBar.cjs +147 -0
  557. package/dist/data/runtime/RuntimeBar.cjs.map +1 -0
  558. package/dist/data/runtime/RuntimeBar.d.ts +22 -0
  559. package/dist/data/runtime/RuntimeBar.d.ts.map +1 -0
  560. package/dist/data/runtime/RuntimeBar.js +147 -0
  561. package/dist/data/runtime/RuntimeBar.js.map +1 -0
  562. package/dist/data/runtime/RuntimeBar.model.cjs +14 -0
  563. package/dist/data/runtime/RuntimeBar.model.cjs.map +1 -0
  564. package/dist/data/runtime/RuntimeBar.model.d.ts +10 -0
  565. package/dist/data/runtime/RuntimeBar.model.d.ts.map +1 -0
  566. package/dist/data/runtime/RuntimeBar.model.js +14 -0
  567. package/dist/data/runtime/RuntimeBar.model.js.map +1 -0
  568. package/dist/data/runtime/RuntimeBarCombo.cjs +354 -0
  569. package/dist/data/runtime/RuntimeBarCombo.cjs.map +1 -0
  570. package/dist/data/runtime/RuntimeBarCombo.d.ts +23 -0
  571. package/dist/data/runtime/RuntimeBarCombo.d.ts.map +1 -0
  572. package/dist/data/runtime/RuntimeBarCombo.js +354 -0
  573. package/dist/data/runtime/RuntimeBarCombo.js.map +1 -0
  574. package/dist/data/{ai/RuntimeBar.cjs → runtime/RuntimeBarSegments.cjs} +93 -87
  575. package/dist/data/runtime/RuntimeBarSegments.cjs.map +1 -0
  576. package/dist/data/runtime/RuntimeBarSegments.d.ts +25 -0
  577. package/dist/data/runtime/RuntimeBarSegments.d.ts.map +1 -0
  578. package/dist/data/{ai/RuntimeBar.js → runtime/RuntimeBarSegments.js} +96 -90
  579. package/dist/data/runtime/RuntimeBarSegments.js.map +1 -0
  580. package/dist/data/runtime/availability.cjs +11 -0
  581. package/dist/data/runtime/availability.cjs.map +1 -0
  582. package/dist/data/runtime/availability.d.ts +6 -0
  583. package/dist/data/runtime/availability.d.ts.map +1 -0
  584. package/dist/data/runtime/availability.js +11 -0
  585. package/dist/data/runtime/availability.js.map +1 -0
  586. package/dist/data/{ai → runtime}/model-capabilities.cjs +12 -1
  587. package/dist/data/runtime/model-capabilities.cjs.map +1 -0
  588. package/dist/data/{ai → runtime}/model-capabilities.d.ts +2 -6
  589. package/dist/data/runtime/model-capabilities.d.ts.map +1 -0
  590. package/dist/data/{ai → runtime}/model-capabilities.js +12 -1
  591. package/dist/data/runtime/model-capabilities.js.map +1 -0
  592. package/dist/data/runtime/provider-status.cjs +106 -0
  593. package/dist/data/runtime/provider-status.cjs.map +1 -0
  594. package/dist/data/runtime/provider-status.d.ts +24 -0
  595. package/dist/data/runtime/provider-status.d.ts.map +1 -0
  596. package/dist/data/runtime/provider-status.js +106 -0
  597. package/dist/data/runtime/provider-status.js.map +1 -0
  598. package/dist/data/{ai → runtime}/runtime-mode.cjs +123 -22
  599. package/dist/data/runtime/runtime-mode.cjs.map +1 -0
  600. package/dist/data/{ai → runtime}/runtime-mode.d.ts +8 -1
  601. package/dist/data/runtime/runtime-mode.d.ts.map +1 -0
  602. package/dist/data/{ai → runtime}/runtime-mode.js +123 -22
  603. package/dist/data/runtime/runtime-mode.js.map +1 -0
  604. package/dist/data/server-timing.cjs +120 -0
  605. package/dist/data/server-timing.cjs.map +1 -0
  606. package/dist/data/server-timing.d.ts +11 -0
  607. package/dist/data/server-timing.d.ts.map +1 -0
  608. package/dist/data/server-timing.js +120 -0
  609. package/dist/data/server-timing.js.map +1 -0
  610. package/dist/data/task-query-keys.cjs +26 -0
  611. package/dist/data/task-query-keys.cjs.map +1 -0
  612. package/dist/data/task-query-keys.d.ts +27 -0
  613. package/dist/data/task-query-keys.d.ts.map +1 -0
  614. package/dist/data/task-query-keys.js +26 -0
  615. package/dist/data/task-query-keys.js.map +1 -0
  616. package/dist/data/version-info.cjs +3 -3
  617. package/dist/data/version-info.js +3 -3
  618. package/dist/data.cjs +23 -0
  619. package/dist/data.cjs.map +1 -1
  620. package/dist/data.d.ts +8 -2
  621. package/dist/data.d.ts.map +1 -1
  622. package/dist/data.js +23 -0
  623. package/dist/data.js.map +1 -1
  624. package/dist/hooks/use-hotkey.cjs +6 -1
  625. package/dist/hooks/use-hotkey.cjs.map +1 -1
  626. package/dist/hooks/use-hotkey.d.ts.map +1 -1
  627. package/dist/hooks/use-hotkey.js +6 -1
  628. package/dist/hooks/use-hotkey.js.map +1 -1
  629. package/dist/hooks/use-task-run.cjs +7 -4
  630. package/dist/hooks/use-task-run.cjs.map +1 -1
  631. package/dist/hooks/use-task-run.d.ts +12 -0
  632. package/dist/hooks/use-task-run.d.ts.map +1 -1
  633. package/dist/hooks/use-task-run.js +7 -4
  634. package/dist/hooks/use-task-run.js.map +1 -1
  635. package/dist/icons/index.d.ts +1 -0
  636. package/dist/icons/index.d.ts.map +1 -1
  637. package/dist/icons/registry.cjs +692 -0
  638. package/dist/icons/registry.cjs.map +1 -0
  639. package/dist/icons/registry.d.ts +21 -0
  640. package/dist/icons/registry.d.ts.map +1 -0
  641. package/dist/icons/registry.js +692 -0
  642. package/dist/icons/registry.js.map +1 -0
  643. package/dist/icons.cjs +3 -0
  644. package/dist/icons.cjs.map +1 -1
  645. package/dist/icons.js +4 -1
  646. package/dist/icons.js.map +1 -1
  647. package/dist/index.cjs +54 -0
  648. package/dist/index.cjs.map +1 -1
  649. package/dist/index.js +56 -2
  650. package/dist/index.js.map +1 -1
  651. package/dist/layout/AppShell.cjs +93 -57
  652. package/dist/layout/AppShell.cjs.map +1 -1
  653. package/dist/layout/AppShell.d.ts +49 -1
  654. package/dist/layout/AppShell.d.ts.map +1 -1
  655. package/dist/layout/AppShell.js +93 -57
  656. package/dist/layout/AppShell.js.map +1 -1
  657. package/dist/layout/AppShell.nav.cjs +144 -19
  658. package/dist/layout/AppShell.nav.cjs.map +1 -1
  659. package/dist/layout/AppShell.nav.d.ts +6 -1
  660. package/dist/layout/AppShell.nav.d.ts.map +1 -1
  661. package/dist/layout/AppShell.nav.js +144 -19
  662. package/dist/layout/AppShell.nav.js.map +1 -1
  663. package/dist/layout/SplitPane.cjs +23 -7
  664. package/dist/layout/SplitPane.cjs.map +1 -1
  665. package/dist/layout/SplitPane.d.ts +3 -1
  666. package/dist/layout/SplitPane.d.ts.map +1 -1
  667. package/dist/layout/SplitPane.js +23 -7
  668. package/dist/layout/SplitPane.js.map +1 -1
  669. package/dist/lib/format.cjs +86 -4
  670. package/dist/lib/format.cjs.map +1 -1
  671. package/dist/lib/format.d.ts +69 -0
  672. package/dist/lib/format.d.ts.map +1 -1
  673. package/dist/lib/format.js +86 -4
  674. package/dist/lib/format.js.map +1 -1
  675. package/dist/lib/path-tree.cjs +69 -0
  676. package/dist/lib/path-tree.cjs.map +1 -0
  677. package/dist/lib/path-tree.d.ts +54 -0
  678. package/dist/lib/path-tree.d.ts.map +1 -0
  679. package/dist/lib/path-tree.js +69 -0
  680. package/dist/lib/path-tree.js.map +1 -0
  681. package/dist/monaco.d.ts +1 -0
  682. package/dist/monaco.d.ts.map +1 -1
  683. package/dist/overlay/DropdownMenuSubmenu.cjs +13 -7
  684. package/dist/overlay/DropdownMenuSubmenu.cjs.map +1 -1
  685. package/dist/overlay/DropdownMenuSubmenu.d.ts.map +1 -1
  686. package/dist/overlay/DropdownMenuSubmenu.js +13 -7
  687. package/dist/overlay/DropdownMenuSubmenu.js.map +1 -1
  688. package/dist/overlay/HoverCard.cjs.map +1 -1
  689. package/dist/overlay/HoverCard.d.ts +2 -2
  690. package/dist/overlay/HoverCard.d.ts.map +1 -1
  691. package/dist/overlay/HoverCard.js.map +1 -1
  692. package/dist/overlay/Tour.cjs +173 -0
  693. package/dist/overlay/Tour.cjs.map +1 -0
  694. package/dist/overlay/Tour.d.ts +61 -0
  695. package/dist/overlay/Tour.d.ts.map +1 -0
  696. package/dist/overlay/Tour.js +173 -0
  697. package/dist/overlay/Tour.js.map +1 -0
  698. package/dist/overlay/TourCard.cjs +108 -0
  699. package/dist/overlay/TourCard.cjs.map +1 -0
  700. package/dist/overlay/TourCard.d.ts +23 -0
  701. package/dist/overlay/TourCard.d.ts.map +1 -0
  702. package/dist/overlay/TourCard.js +108 -0
  703. package/dist/overlay/TourCard.js.map +1 -0
  704. package/dist/overlay/TourProvider.cjs +160 -0
  705. package/dist/overlay/TourProvider.cjs.map +1 -0
  706. package/dist/overlay/TourProvider.d.ts +31 -0
  707. package/dist/overlay/TourProvider.d.ts.map +1 -0
  708. package/dist/overlay/TourProvider.js +160 -0
  709. package/dist/overlay/TourProvider.js.map +1 -0
  710. package/dist/overlay/TourSpotlight.cjs +47 -0
  711. package/dist/overlay/TourSpotlight.cjs.map +1 -0
  712. package/dist/overlay/TourSpotlight.d.ts +12 -0
  713. package/dist/overlay/TourSpotlight.d.ts.map +1 -0
  714. package/dist/overlay/TourSpotlight.js +47 -0
  715. package/dist/overlay/TourSpotlight.js.map +1 -0
  716. package/dist/overlay/modalStack.cjs +18 -4
  717. package/dist/overlay/modalStack.cjs.map +1 -1
  718. package/dist/overlay/modalStack.d.ts +10 -2
  719. package/dist/overlay/modalStack.d.ts.map +1 -1
  720. package/dist/overlay/modalStack.js +19 -5
  721. package/dist/overlay/modalStack.js.map +1 -1
  722. package/dist/overlay/tour-anchor.cjs +114 -0
  723. package/dist/overlay/tour-anchor.cjs.map +1 -0
  724. package/dist/overlay/tour-anchor.d.ts +30 -0
  725. package/dist/overlay/tour-anchor.d.ts.map +1 -0
  726. package/dist/overlay/tour-anchor.js +114 -0
  727. package/dist/overlay/tour-anchor.js.map +1 -0
  728. package/dist/overlay/tour-context.cjs +12 -0
  729. package/dist/overlay/tour-context.cjs.map +1 -0
  730. package/dist/overlay/tour-context.d.ts +40 -0
  731. package/dist/overlay/tour-context.d.ts.map +1 -0
  732. package/dist/overlay/tour-context.js +12 -0
  733. package/dist/overlay/tour-context.js.map +1 -0
  734. package/dist/overlay/tour-geometry.cjs +65 -0
  735. package/dist/overlay/tour-geometry.cjs.map +1 -0
  736. package/dist/overlay/tour-geometry.d.ts +47 -0
  737. package/dist/overlay/tour-geometry.d.ts.map +1 -0
  738. package/dist/overlay/tour-geometry.js +65 -0
  739. package/dist/overlay/tour-geometry.js.map +1 -0
  740. package/dist/overlay/tour-model.cjs +79 -0
  741. package/dist/overlay/tour-model.cjs.map +1 -0
  742. package/dist/overlay/tour-model.d.ts +29 -0
  743. package/dist/overlay/tour-model.d.ts.map +1 -0
  744. package/dist/overlay/tour-model.js +79 -0
  745. package/dist/overlay/tour-model.js.map +1 -0
  746. package/dist/overlay/tour-progress.cjs +54 -0
  747. package/dist/overlay/tour-progress.cjs.map +1 -0
  748. package/dist/overlay/tour-progress.d.ts +40 -0
  749. package/dist/overlay/tour-progress.d.ts.map +1 -0
  750. package/dist/overlay/tour-progress.js +54 -0
  751. package/dist/overlay/tour-progress.js.map +1 -0
  752. package/dist/overlay/tour-types.d.ts +144 -0
  753. package/dist/overlay/tour-types.d.ts.map +1 -0
  754. package/dist/overlay/use-tour-anchor.cjs +43 -0
  755. package/dist/overlay/use-tour-anchor.cjs.map +1 -0
  756. package/dist/overlay/use-tour-anchor.d.ts +23 -0
  757. package/dist/overlay/use-tour-anchor.d.ts.map +1 -0
  758. package/dist/overlay/use-tour-anchor.js +43 -0
  759. package/dist/overlay/use-tour-anchor.js.map +1 -0
  760. package/dist/overlay/use-tour-rect.cjs +33 -0
  761. package/dist/overlay/use-tour-rect.cjs.map +1 -0
  762. package/dist/overlay/use-tour-rect.d.ts +12 -0
  763. package/dist/overlay/use-tour-rect.d.ts.map +1 -0
  764. package/dist/overlay/use-tour-rect.js +33 -0
  765. package/dist/overlay/use-tour-rect.js.map +1 -0
  766. package/dist/overlay/use-tour-step.cjs +66 -0
  767. package/dist/overlay/use-tour-step.cjs.map +1 -0
  768. package/dist/overlay/use-tour-step.d.ts +45 -0
  769. package/dist/overlay/use-tour-step.d.ts.map +1 -0
  770. package/dist/overlay/use-tour-step.js +66 -0
  771. package/dist/overlay/use-tour-step.js.map +1 -0
  772. package/dist/overlay/zIndex.cjs +8 -0
  773. package/dist/overlay/zIndex.cjs.map +1 -1
  774. package/dist/overlay/zIndex.d.ts +8 -0
  775. package/dist/overlay/zIndex.d.ts.map +1 -1
  776. package/dist/overlay/zIndex.js +8 -0
  777. package/dist/overlay/zIndex.js.map +1 -1
  778. package/dist/rpc/CommandOutput.cjs +8 -0
  779. package/dist/rpc/CommandOutput.cjs.map +1 -1
  780. package/dist/rpc/CommandOutput.d.ts +4 -1
  781. package/dist/rpc/CommandOutput.d.ts.map +1 -1
  782. package/dist/rpc/CommandOutput.js +8 -0
  783. package/dist/rpc/CommandOutput.js.map +1 -1
  784. package/dist/rpc/EntityExplorerApp.cjs +10 -16
  785. package/dist/rpc/EntityExplorerApp.cjs.map +1 -1
  786. package/dist/rpc/EntityExplorerApp.d.ts.map +1 -1
  787. package/dist/rpc/EntityExplorerApp.js +10 -16
  788. package/dist/rpc/EntityExplorerApp.js.map +1 -1
  789. package/dist/rpc/OperationActionBar.cjs +1 -1
  790. package/dist/rpc/OperationActionBar.cjs.map +1 -1
  791. package/dist/rpc/OperationActionBar.js +1 -1
  792. package/dist/rpc/OperationActionBar.js.map +1 -1
  793. package/dist/rpc/OperationCatalog.cjs +111 -58
  794. package/dist/rpc/OperationCatalog.cjs.map +1 -1
  795. package/dist/rpc/OperationCatalog.d.ts +1 -6
  796. package/dist/rpc/OperationCatalog.d.ts.map +1 -1
  797. package/dist/rpc/OperationCatalog.js +112 -59
  798. package/dist/rpc/OperationCatalog.js.map +1 -1
  799. package/dist/rpc/OperationResultView.cjs +44 -0
  800. package/dist/rpc/OperationResultView.cjs.map +1 -1
  801. package/dist/rpc/OperationResultView.d.ts +8 -1
  802. package/dist/rpc/OperationResultView.d.ts.map +1 -1
  803. package/dist/rpc/OperationResultView.js +44 -0
  804. package/dist/rpc/OperationResultView.js.map +1 -1
  805. package/dist/rpc/SchemaActionForm.cjs +2 -21
  806. package/dist/rpc/SchemaActionForm.cjs.map +1 -1
  807. package/dist/rpc/SchemaActionForm.d.ts.map +1 -1
  808. package/dist/rpc/SchemaActionForm.js +3 -22
  809. package/dist/rpc/SchemaActionForm.js.map +1 -1
  810. package/dist/rpc/apiClient.cjs +16 -2
  811. package/dist/rpc/apiClient.cjs.map +1 -1
  812. package/dist/rpc/apiClient.d.ts.map +1 -1
  813. package/dist/rpc/apiClient.js +16 -2
  814. package/dist/rpc/apiClient.js.map +1 -1
  815. package/dist/rpc/formMetadata.cjs +89 -49
  816. package/dist/rpc/formMetadata.cjs.map +1 -1
  817. package/dist/rpc/formMetadata.d.ts +14 -6
  818. package/dist/rpc/formMetadata.d.ts.map +1 -1
  819. package/dist/rpc/formMetadata.js +87 -47
  820. package/dist/rpc/formMetadata.js.map +1 -1
  821. package/dist/rpc/operationFilterSearch.cjs +23 -0
  822. package/dist/rpc/operationFilterSearch.cjs.map +1 -0
  823. package/dist/rpc/operationFilterSearch.d.ts +22 -0
  824. package/dist/rpc/operationFilterSearch.d.ts.map +1 -0
  825. package/dist/rpc/operationFilterSearch.js +23 -0
  826. package/dist/rpc/operationFilterSearch.js.map +1 -0
  827. package/dist/rpc/operationLookupFetcher.cjs +28 -0
  828. package/dist/rpc/operationLookupFetcher.cjs.map +1 -0
  829. package/dist/rpc/operationLookupFetcher.d.ts +17 -0
  830. package/dist/rpc/operationLookupFetcher.d.ts.map +1 -0
  831. package/dist/rpc/operationLookupFetcher.js +28 -0
  832. package/dist/rpc/operationLookupFetcher.js.map +1 -0
  833. package/dist/rpc/surfaceNav.cjs +77 -0
  834. package/dist/rpc/surfaceNav.cjs.map +1 -0
  835. package/dist/rpc/surfaceNav.d.ts +19 -0
  836. package/dist/rpc/surfaceNav.d.ts.map +1 -0
  837. package/dist/rpc/surfaceNav.js +77 -0
  838. package/dist/rpc/surfaceNav.js.map +1 -0
  839. package/dist/rpc/types.cjs.map +1 -1
  840. package/dist/rpc/types.d.ts +12 -1
  841. package/dist/rpc/types.d.ts.map +1 -1
  842. package/dist/rpc/types.js.map +1 -1
  843. package/dist/rpc.cjs +2 -0
  844. package/dist/rpc.cjs.map +1 -1
  845. package/dist/rpc.d.ts +1 -0
  846. package/dist/rpc.d.ts.map +1 -1
  847. package/dist/rpc.js +2 -0
  848. package/dist/rpc.js.map +1 -1
  849. package/dist/styles.css +1 -1
  850. package/dist/tailwind-preset.cjs +4 -0
  851. package/dist/tailwind-preset.cjs.map +1 -1
  852. package/dist/tailwind-preset.d.ts.map +1 -1
  853. package/dist/tailwind-preset.js +4 -0
  854. package/dist/tailwind-preset.js.map +1 -1
  855. package/dist/utils.cjs +8 -0
  856. package/dist/utils.cjs.map +1 -1
  857. package/dist/utils.d.ts +2 -1
  858. package/dist/utils.d.ts.map +1 -1
  859. package/dist/utils.js +10 -2
  860. package/dist/utils.js.map +1 -1
  861. package/package.json +1 -1
  862. package/dist/data/ai/RuntimeBar.cjs.map +0 -1
  863. package/dist/data/ai/RuntimeBar.d.ts +0 -27
  864. package/dist/data/ai/RuntimeBar.d.ts.map +0 -1
  865. package/dist/data/ai/RuntimeBar.js.map +0 -1
  866. package/dist/data/ai/model-capabilities.cjs.map +0 -1
  867. package/dist/data/ai/model-capabilities.d.ts.map +0 -1
  868. package/dist/data/ai/model-capabilities.js.map +0 -1
  869. package/dist/data/ai/runtime-mode.cjs.map +0 -1
  870. package/dist/data/ai/runtime-mode.d.ts.map +0 -1
  871. package/dist/data/ai/runtime-mode.js.map +0 -1
@@ -0,0 +1,20 @@
1
+ import { ChatProps } from '../chat/Chat';
2
+ import { ChatModel, ChatModelRuntime } from '../chat/types';
3
+ export type ChatWindowRuntimeOptions = {
4
+ chat?: Partial<ChatProps> | undefined;
5
+ initialModel?: string | null | undefined;
6
+ models: ChatModel[];
7
+ storedRuntime?: ChatModelRuntime | undefined;
8
+ };
9
+ export declare function useChatWindowRuntime({ chat, initialModel, models, storedRuntime, }: ChatWindowRuntimeOptions): {
10
+ runtime: ChatModelRuntime;
11
+ model: string | undefined;
12
+ reasoningEffort: string;
13
+ temperature: number | undefined;
14
+ reasoningEfforts: string[];
15
+ handleRuntimeChange: (next: ChatModelRuntime) => void;
16
+ handleModelChange: (next: string) => void;
17
+ handleReasoningEffortChange: (next: string) => void;
18
+ handleTemperatureChange: (next: number | undefined) => void;
19
+ };
20
+ //# sourceMappingURL=ChatWindow.runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatWindow.runtime.d.ts","sourceRoot":"","sources":["../../../src/data/ai/ChatWindow.runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAO9C,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjE,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,aAAa,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAC9C,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,YAAY,EACZ,MAAM,EACN,aAAa,GACd,EAAE,wBAAwB;;;;;;gCA6DhB,gBAAgB;8BAOhB,MAAM;wCA6BN,MAAM;oCAMoC,MAAM,GAAG,SAAS;EAiBtE"}
@@ -0,0 +1,120 @@
1
+ import { useState, useEffect, useCallback } from "react";
2
+ import { resolveChatRuntime, selectedChatModel, withRuntimeField } from "../chat/Chat.runtime.js";
3
+ import { DEFAULT_REASONING_EFFORTS } from "../chat/effort-icons.js";
4
+ import { selectConfiguredChatModel } from "./ChatWindow.models.js";
5
+ function useChatWindowRuntime({
6
+ chat,
7
+ initialModel,
8
+ models,
9
+ storedRuntime
10
+ }) {
11
+ const reasoningEfforts = (chat == null ? void 0 : chat.reasoningEfforts) ?? DEFAULT_REASONING_EFFORTS;
12
+ const [runtime, setRuntime] = useState(
13
+ () => resolveChatRuntime({
14
+ models,
15
+ current: (chat == null ? void 0 : chat.runtime) ?? (chat == null ? void 0 : chat.defaultRuntime) ?? storedRuntime,
16
+ preferredModel: initialModel ?? (chat == null ? void 0 : chat.model) ?? ((chat == null ? void 0 : chat.runtime) || (chat == null ? void 0 : chat.defaultRuntime) || storedRuntime ? void 0 : chat == null ? void 0 : chat.defaultModel),
17
+ effort: (chat == null ? void 0 : chat.reasoningEffort) ?? (chat == null ? void 0 : chat.defaultReasoningEffort),
18
+ temperature: chat == null ? void 0 : chat.temperature,
19
+ reasoningEfforts
20
+ })
21
+ );
22
+ useEffect(() => {
23
+ if (chat == null ? void 0 : chat.runtime) {
24
+ setRuntime(chat.runtime);
25
+ return;
26
+ }
27
+ setRuntime((current) => {
28
+ var _a;
29
+ const currentModel = (_a = selectedChatModel(models, current)) == null ? void 0 : _a.id;
30
+ const preferred = initialModel ?? (chat == null ? void 0 : chat.model) ?? currentModel ?? current.id ?? current.model ?? (chat == null ? void 0 : chat.defaultModel);
31
+ const configured = models.length ? selectConfiguredChatModel(preferred, models) : preferred;
32
+ return resolveChatRuntime({
33
+ models,
34
+ current,
35
+ preferredModel: configured,
36
+ effort: chat == null ? void 0 : chat.reasoningEffort,
37
+ temperature: chat == null ? void 0 : chat.temperature,
38
+ reasoningEfforts
39
+ });
40
+ });
41
+ }, [
42
+ chat == null ? void 0 : chat.defaultModel,
43
+ chat == null ? void 0 : chat.model,
44
+ chat == null ? void 0 : chat.reasoningEffort,
45
+ chat == null ? void 0 : chat.runtime,
46
+ chat == null ? void 0 : chat.temperature,
47
+ initialModel,
48
+ models,
49
+ reasoningEfforts
50
+ ]);
51
+ const selectedModel = selectedChatModel(models, runtime);
52
+ const model = (selectedModel == null ? void 0 : selectedModel.id) ?? runtime.id ?? runtime.model;
53
+ const reasoningEffort = runtime.effort ?? "";
54
+ const handleRuntimeChange = useCallback(
55
+ (next) => {
56
+ var _a;
57
+ setRuntime(next);
58
+ (_a = chat == null ? void 0 : chat.onRuntimeChange) == null ? void 0 : _a.call(chat, next);
59
+ },
60
+ [chat]
61
+ );
62
+ const handleModelChange = useCallback(
63
+ (next) => {
64
+ var _a;
65
+ setRuntime((current) => {
66
+ if (!next) {
67
+ return withRuntimeField(
68
+ withRuntimeField(current, "id", void 0),
69
+ "model",
70
+ void 0
71
+ );
72
+ }
73
+ const selected = models.find((candidate) => candidate.id === next);
74
+ if (!selected) {
75
+ return withRuntimeField(
76
+ withRuntimeField(current, "id", void 0),
77
+ "model",
78
+ next
79
+ );
80
+ }
81
+ return resolveChatRuntime({
82
+ models,
83
+ current,
84
+ preferredModel: selected.id,
85
+ reasoningEfforts
86
+ });
87
+ });
88
+ (_a = chat == null ? void 0 : chat.onModelChange) == null ? void 0 : _a.call(chat, next);
89
+ },
90
+ [chat, models, reasoningEfforts]
91
+ );
92
+ const handleReasoningEffortChange = useCallback(
93
+ (next) => {
94
+ var _a;
95
+ setRuntime((current) => withRuntimeField(current, "effort", next));
96
+ (_a = chat == null ? void 0 : chat.onReasoningEffortChange) == null ? void 0 : _a.call(chat, next);
97
+ },
98
+ [chat]
99
+ );
100
+ const handleTemperatureChange = useCallback((next) => {
101
+ setRuntime(
102
+ (current) => withRuntimeField(current, "temperature", next)
103
+ );
104
+ }, []);
105
+ return {
106
+ runtime,
107
+ model,
108
+ reasoningEffort,
109
+ temperature: runtime.temperature,
110
+ reasoningEfforts,
111
+ handleRuntimeChange,
112
+ handleModelChange,
113
+ handleReasoningEffortChange,
114
+ handleTemperatureChange
115
+ };
116
+ }
117
+ export {
118
+ useChatWindowRuntime
119
+ };
120
+ //# sourceMappingURL=ChatWindow.runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatWindow.runtime.js","sources":["../../../src/data/ai/ChatWindow.runtime.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from \"react\";\nimport type { ChatProps } from \"../chat/Chat\";\nimport {\n resolveChatRuntime,\n selectedChatModel,\n withRuntimeField,\n} from \"../chat/Chat.runtime\";\nimport { DEFAULT_REASONING_EFFORTS } from \"../chat/effort-icons\";\nimport type { ChatModel, ChatModelRuntime } from \"../chat/types\";\nimport { selectConfiguredChatModel } from \"./ChatWindow.models\";\n\nexport type ChatWindowRuntimeOptions = {\n chat?: Partial<ChatProps> | undefined;\n initialModel?: string | null | undefined;\n models: ChatModel[];\n storedRuntime?: ChatModelRuntime | undefined;\n};\n\nexport function useChatWindowRuntime({\n chat,\n initialModel,\n models,\n storedRuntime,\n}: ChatWindowRuntimeOptions) {\n const reasoningEfforts =\n chat?.reasoningEfforts ?? DEFAULT_REASONING_EFFORTS;\n const [runtime, setRuntime] = useState<ChatModelRuntime>(() =>\n resolveChatRuntime({\n models,\n current: chat?.runtime ?? chat?.defaultRuntime ?? storedRuntime,\n preferredModel:\n initialModel ??\n chat?.model ??\n (chat?.runtime || chat?.defaultRuntime || storedRuntime\n ? undefined\n : chat?.defaultModel),\n effort: chat?.reasoningEffort ?? chat?.defaultReasoningEffort,\n temperature: chat?.temperature,\n reasoningEfforts,\n }),\n );\n\n useEffect(() => {\n if (chat?.runtime) {\n setRuntime(chat.runtime);\n return;\n }\n setRuntime((current) => {\n const currentModel = selectedChatModel(models, current)?.id;\n const preferred =\n initialModel ??\n chat?.model ??\n currentModel ??\n current.id ??\n current.model ??\n chat?.defaultModel;\n const configured = models.length\n ? selectConfiguredChatModel(preferred, models)\n : preferred;\n return resolveChatRuntime({\n models,\n current,\n preferredModel: configured,\n effort: chat?.reasoningEffort,\n temperature: chat?.temperature,\n reasoningEfforts,\n });\n });\n }, [\n chat?.defaultModel,\n chat?.model,\n chat?.reasoningEffort,\n chat?.runtime,\n chat?.temperature,\n initialModel,\n models,\n reasoningEfforts,\n ]);\n\n const selectedModel = selectedChatModel(models, runtime);\n const model = selectedModel?.id ?? runtime.id ?? runtime.model;\n const reasoningEffort = runtime.effort ?? \"\";\n\n const handleRuntimeChange = useCallback(\n (next: ChatModelRuntime) => {\n setRuntime(next);\n chat?.onRuntimeChange?.(next);\n },\n [chat],\n );\n const handleModelChange = useCallback(\n (next: string) => {\n setRuntime((current) => {\n if (!next) {\n return withRuntimeField(\n withRuntimeField(current, \"id\", undefined),\n \"model\",\n undefined,\n );\n }\n const selected = models.find((candidate) => candidate.id === next);\n if (!selected) {\n return withRuntimeField(\n withRuntimeField(current, \"id\", undefined),\n \"model\",\n next,\n );\n }\n return resolveChatRuntime({\n models,\n current,\n preferredModel: selected.id,\n reasoningEfforts,\n });\n });\n chat?.onModelChange?.(next);\n },\n [chat, models, reasoningEfforts],\n );\n const handleReasoningEffortChange = useCallback(\n (next: string) => {\n setRuntime((current) => withRuntimeField(current, \"effort\", next));\n chat?.onReasoningEffortChange?.(next);\n },\n [chat],\n );\n const handleTemperatureChange = useCallback((next: number | undefined) => {\n setRuntime((current) =>\n withRuntimeField(current, \"temperature\", next),\n );\n }, []);\n\n return {\n runtime,\n model,\n reasoningEffort,\n temperature: runtime.temperature,\n reasoningEfforts,\n handleRuntimeChange,\n handleModelChange,\n handleReasoningEffortChange,\n handleTemperatureChange,\n };\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const button = require("../../components/button.cjs");
5
+ function ChatThreadSetupStatus({
6
+ setup
7
+ }) {
8
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-full flex-col items-center justify-center gap-3 p-4 text-sm text-muted-foreground", children: setup.pending ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Starting conversation…" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
9
+ /* @__PURE__ */ jsxRuntime.jsx("span", { role: "alert", children: setup.error }),
10
+ /* @__PURE__ */ jsxRuntime.jsx(button.Button, { type: "button", size: "sm", variant: "outline", onClick: setup.retry, children: "Retry" })
11
+ ] }) });
12
+ }
13
+ exports.ChatThreadSetupStatus = ChatThreadSetupStatus;
14
+ //# sourceMappingURL=ChatWindow.thread-status.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatWindow.thread-status.cjs","sources":["../../../src/data/ai/ChatWindow.thread-status.tsx"],"sourcesContent":["import { Button } from \"../../components/button\";\nimport type { ChatThreadSetup } from \"./ChatWindow.thread\";\n\nexport function ChatThreadSetupStatus({\n setup,\n}: {\n setup: ChatThreadSetup;\n}) {\n return (\n <div className=\"flex h-full flex-col items-center justify-center gap-3 p-4 text-sm text-muted-foreground\">\n {setup.pending ? (\n <span>Starting conversation…</span>\n ) : (\n <>\n <span role=\"alert\">{setup.error}</span>\n <Button type=\"button\" size=\"sm\" variant=\"outline\" onClick={setup.retry}>\n Retry\n </Button>\n </>\n )}\n </div>\n );\n}\n"],"names":["jsx","jsxs","Fragment","Button"],"mappings":";;;;AAGO,SAAS,sBAAsB;AAAA,EACpC;AACF,GAEG;AACD,SACEA,2BAAAA,IAAC,OAAA,EAAI,WAAU,4FACZ,UAAA,MAAM,UACLA,2BAAAA,IAAC,QAAA,EAAK,UAAA,yBAAA,CAAsB,IAE5BC,gCAAAC,WAAAA,UAAA,EACE,UAAA;AAAA,IAAAF,2BAAAA,IAAC,QAAA,EAAK,MAAK,SAAS,UAAA,MAAM,OAAM;AAAA,IAChCA,2BAAAA,IAACG,OAAAA,QAAA,EAAO,MAAK,UAAS,MAAK,MAAK,SAAQ,WAAU,SAAS,MAAM,OAAO,UAAA,QAAA,CAExE;AAAA,EAAA,EAAA,CACF,EAAA,CAEJ;AAEJ;;"}
@@ -0,0 +1,5 @@
1
+ import { ChatThreadSetup } from './ChatWindow.thread';
2
+ export declare function ChatThreadSetupStatus({ setup, }: {
3
+ setup: ChatThreadSetup;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=ChatWindow.thread-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatWindow.thread-status.d.ts","sourceRoot":"","sources":["../../../src/data/ai/ChatWindow.thread-status.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,GACN,EAAE;IACD,KAAK,EAAE,eAAe,CAAC;CACxB,2CAeA"}
@@ -0,0 +1,14 @@
1
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
+ import { Button } from "../../components/button.js";
3
+ function ChatThreadSetupStatus({
4
+ setup
5
+ }) {
6
+ return /* @__PURE__ */ jsx("div", { className: "flex h-full flex-col items-center justify-center gap-3 p-4 text-sm text-muted-foreground", children: setup.pending ? /* @__PURE__ */ jsx("span", { children: "Starting conversation…" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
7
+ /* @__PURE__ */ jsx("span", { role: "alert", children: setup.error }),
8
+ /* @__PURE__ */ jsx(Button, { type: "button", size: "sm", variant: "outline", onClick: setup.retry, children: "Retry" })
9
+ ] }) });
10
+ }
11
+ export {
12
+ ChatThreadSetupStatus
13
+ };
14
+ //# sourceMappingURL=ChatWindow.thread-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatWindow.thread-status.js","sources":["../../../src/data/ai/ChatWindow.thread-status.tsx"],"sourcesContent":["import { Button } from \"../../components/button\";\nimport type { ChatThreadSetup } from \"./ChatWindow.thread\";\n\nexport function ChatThreadSetupStatus({\n setup,\n}: {\n setup: ChatThreadSetup;\n}) {\n return (\n <div className=\"flex h-full flex-col items-center justify-center gap-3 p-4 text-sm text-muted-foreground\">\n {setup.pending ? (\n <span>Starting conversation…</span>\n ) : (\n <>\n <span role=\"alert\">{setup.error}</span>\n <Button type=\"button\" size=\"sm\" variant=\"outline\" onClick={setup.retry}>\n Retry\n </Button>\n </>\n )}\n </div>\n );\n}\n"],"names":[],"mappings":";;AAGO,SAAS,sBAAsB;AAAA,EACpC;AACF,GAEG;AACD,SACE,oBAAC,OAAA,EAAI,WAAU,4FACZ,UAAA,MAAM,UACL,oBAAC,QAAA,EAAK,UAAA,yBAAA,CAAsB,IAE5B,qBAAA,UAAA,EACE,UAAA;AAAA,IAAA,oBAAC,QAAA,EAAK,MAAK,SAAS,UAAA,MAAM,OAAM;AAAA,IAChC,oBAAC,QAAA,EAAO,MAAK,UAAS,MAAK,MAAK,SAAQ,WAAU,SAAS,MAAM,OAAO,UAAA,QAAA,CAExE;AAAA,EAAA,EAAA,CACF,EAAA,CAEJ;AAEJ;"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const react = require("react");
4
+ function useChatThreadSetup({
5
+ threadId,
6
+ api,
7
+ source,
8
+ onCreated
9
+ }) {
10
+ const [attempt, setAttempt] = react.useState(0);
11
+ const [error, setError] = react.useState();
12
+ const request = react.useRef(null);
13
+ const onCreatedRef = react.useRef(onCreated);
14
+ onCreatedRef.current = onCreated;
15
+ const canCreate = Boolean((source == null ? void 0 : source.create) || !source && api);
16
+ react.useEffect(() => {
17
+ if (threadId || !canCreate) {
18
+ request.current = null;
19
+ setError(void 0);
20
+ return;
21
+ }
22
+ if (!request.current) {
23
+ request.current = (source == null ? void 0 : source.create) ? source.create() : createHTTPThread(api);
24
+ }
25
+ let active = true;
26
+ request.current.then((thread) => {
27
+ var _a;
28
+ if (!active) return;
29
+ const id = (_a = thread.id) == null ? void 0 : _a.trim();
30
+ if (!id) {
31
+ throw new Error("Created chat thread has no id.");
32
+ }
33
+ onCreatedRef.current(id);
34
+ }).catch((cause) => {
35
+ if (!active) return;
36
+ setError(cause instanceof Error ? cause.message : String(cause));
37
+ });
38
+ return () => {
39
+ active = false;
40
+ };
41
+ }, [api, attempt, canCreate, source, threadId]);
42
+ const retry = react.useCallback(() => {
43
+ request.current = null;
44
+ setError(void 0);
45
+ setAttempt((value) => value + 1);
46
+ }, []);
47
+ return {
48
+ blocked: !threadId && canCreate,
49
+ pending: !threadId && canCreate && !error,
50
+ ...error ? { error } : {},
51
+ retry
52
+ };
53
+ }
54
+ async function createHTTPThread(api) {
55
+ const response = await fetch(api, {
56
+ method: "POST",
57
+ headers: { "Content-Type": "application/json" },
58
+ body: "{}"
59
+ });
60
+ if (!response.ok) {
61
+ throw new Error(
62
+ `Creating a chat thread failed with status ${response.status}.`
63
+ );
64
+ }
65
+ return response.json();
66
+ }
67
+ exports.useChatThreadSetup = useChatThreadSetup;
68
+ //# sourceMappingURL=ChatWindow.thread.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatWindow.thread.cjs","sources":["../../../src/data/ai/ChatWindow.thread.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\nimport type { ThreadSource, ThreadSummary } from \"./ThreadPicker\";\n\nexport type ChatThreadSetup = {\n blocked: boolean;\n pending: boolean;\n error?: string;\n retry: () => void;\n};\n\ntype ChatThreadSetupOptions = {\n threadId: string | null;\n api: string | null;\n source: ThreadSource | undefined;\n onCreated: (threadId: string) => void;\n};\n\nexport function useChatThreadSetup({\n threadId,\n api,\n source,\n onCreated,\n}: ChatThreadSetupOptions): ChatThreadSetup {\n const [attempt, setAttempt] = useState(0);\n const [error, setError] = useState<string>();\n const request = useRef<Promise<ThreadSummary> | null>(null);\n const onCreatedRef = useRef(onCreated);\n onCreatedRef.current = onCreated;\n const canCreate = Boolean(source?.create || (!source && api));\n\n useEffect(() => {\n if (threadId || !canCreate) {\n request.current = null;\n setError(undefined);\n return;\n }\n if (!request.current) {\n request.current = source?.create\n ? source.create()\n : createHTTPThread(api as string);\n }\n let active = true;\n request.current\n .then((thread) => {\n if (!active) return;\n const id = thread.id?.trim();\n if (!id) {\n throw new Error(\"Created chat thread has no id.\");\n }\n onCreatedRef.current(id);\n })\n .catch((cause) => {\n if (!active) return;\n setError(cause instanceof Error ? cause.message : String(cause));\n });\n return () => {\n active = false;\n };\n }, [api, attempt, canCreate, source, threadId]);\n\n const retry = useCallback(() => {\n request.current = null;\n setError(undefined);\n setAttempt((value) => value + 1);\n }, []);\n return {\n blocked: !threadId && canCreate,\n pending: !threadId && canCreate && !error,\n ...(error ? { error } : {}),\n retry,\n };\n}\n\n// The thread is created before its first message, so it has nothing to be named\n// after yet. The backend names it from that message (or the model names it), and\n// an unnamed thread reads as \"New Chat\" until then — a placeholder title here\n// would look like one the user chose and stop the real name from landing.\nasync function createHTTPThread(api: string): Promise<ThreadSummary> {\n const response = await fetch(api, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: \"{}\",\n });\n if (!response.ok) {\n throw new Error(\n `Creating a chat thread failed with status ${response.status}.`,\n );\n }\n return response.json() as Promise<ThreadSummary>;\n}\n"],"names":["useState","useRef","useEffect","useCallback"],"mappings":";;;AAiBO,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA4C;AAC1C,QAAM,CAAC,SAAS,UAAU,IAAIA,MAAAA,SAAS,CAAC;AACxC,QAAM,CAAC,OAAO,QAAQ,IAAIA,eAAA;AAC1B,QAAM,UAAUC,MAAAA,OAAsC,IAAI;AAC1D,QAAM,eAAeA,MAAAA,OAAO,SAAS;AACrC,eAAa,UAAU;AACvB,QAAM,YAAY,SAAQ,iCAAQ,WAAW,CAAC,UAAU,GAAI;AAE5DC,QAAAA,UAAU,MAAM;AACd,QAAI,YAAY,CAAC,WAAW;AAC1B,cAAQ,UAAU;AAClB,eAAS,MAAS;AAClB;AAAA,IACF;AACA,QAAI,CAAC,QAAQ,SAAS;AACpB,cAAQ,WAAU,iCAAQ,UACtB,OAAO,OAAA,IACP,iBAAiB,GAAa;AAAA,IACpC;AACA,QAAI,SAAS;AACb,YAAQ,QACL,KAAK,CAAC,WAAW;;AAChB,UAAI,CAAC,OAAQ;AACb,YAAM,MAAK,YAAO,OAAP,mBAAW;AACtB,UAAI,CAAC,IAAI;AACP,cAAM,IAAI,MAAM,gCAAgC;AAAA,MAClD;AACA,mBAAa,QAAQ,EAAE;AAAA,IACzB,CAAC,EACA,MAAM,CAAC,UAAU;AAChB,UAAI,CAAC,OAAQ;AACb,eAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC;AAAA,IACjE,CAAC;AACH,WAAO,MAAM;AACX,eAAS;AAAA,IACX;AAAA,EACF,GAAG,CAAC,KAAK,SAAS,WAAW,QAAQ,QAAQ,CAAC;AAE9C,QAAM,QAAQC,MAAAA,YAAY,MAAM;AAC9B,YAAQ,UAAU;AAClB,aAAS,MAAS;AAClB,eAAW,CAAC,UAAU,QAAQ,CAAC;AAAA,EACjC,GAAG,CAAA,CAAE;AACL,SAAO;AAAA,IACL,SAAS,CAAC,YAAY;AAAA,IACtB,SAAS,CAAC,YAAY,aAAa,CAAC;AAAA,IACpC,GAAI,QAAQ,EAAE,MAAA,IAAU,CAAA;AAAA,IACxB;AAAA,EAAA;AAEJ;AAMA,eAAe,iBAAiB,KAAqC;AACnE,QAAM,WAAW,MAAM,MAAM,KAAK;AAAA,IAChC,QAAQ;AAAA,IACR,SAAS,EAAE,gBAAgB,mBAAA;AAAA,IAC3B,MAAM;AAAA,EAAA,CACP;AACD,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,IAAI;AAAA,MACR,6CAA6C,SAAS,MAAM;AAAA,IAAA;AAAA,EAEhE;AACA,SAAO,SAAS,KAAA;AAClB;;"}
@@ -0,0 +1,16 @@
1
+ import { ThreadSource } from './ThreadPicker';
2
+ export type ChatThreadSetup = {
3
+ blocked: boolean;
4
+ pending: boolean;
5
+ error?: string;
6
+ retry: () => void;
7
+ };
8
+ type ChatThreadSetupOptions = {
9
+ threadId: string | null;
10
+ api: string | null;
11
+ source: ThreadSource | undefined;
12
+ onCreated: (threadId: string) => void;
13
+ };
14
+ export declare function useChatThreadSetup({ threadId, api, source, onCreated, }: ChatThreadSetupOptions): ChatThreadSetup;
15
+ export {};
16
+ //# sourceMappingURL=ChatWindow.thread.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatWindow.thread.d.ts","sourceRoot":"","sources":["../../../src/data/ai/ChatWindow.thread.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,gBAAgB,CAAC;AAElE,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,GAAG,EACH,MAAM,EACN,SAAS,GACV,EAAE,sBAAsB,GAAG,eAAe,CAiD1C"}
@@ -0,0 +1,68 @@
1
+ import { useState, useRef, useEffect, useCallback } from "react";
2
+ function useChatThreadSetup({
3
+ threadId,
4
+ api,
5
+ source,
6
+ onCreated
7
+ }) {
8
+ const [attempt, setAttempt] = useState(0);
9
+ const [error, setError] = useState();
10
+ const request = useRef(null);
11
+ const onCreatedRef = useRef(onCreated);
12
+ onCreatedRef.current = onCreated;
13
+ const canCreate = Boolean((source == null ? void 0 : source.create) || !source && api);
14
+ useEffect(() => {
15
+ if (threadId || !canCreate) {
16
+ request.current = null;
17
+ setError(void 0);
18
+ return;
19
+ }
20
+ if (!request.current) {
21
+ request.current = (source == null ? void 0 : source.create) ? source.create() : createHTTPThread(api);
22
+ }
23
+ let active = true;
24
+ request.current.then((thread) => {
25
+ var _a;
26
+ if (!active) return;
27
+ const id = (_a = thread.id) == null ? void 0 : _a.trim();
28
+ if (!id) {
29
+ throw new Error("Created chat thread has no id.");
30
+ }
31
+ onCreatedRef.current(id);
32
+ }).catch((cause) => {
33
+ if (!active) return;
34
+ setError(cause instanceof Error ? cause.message : String(cause));
35
+ });
36
+ return () => {
37
+ active = false;
38
+ };
39
+ }, [api, attempt, canCreate, source, threadId]);
40
+ const retry = useCallback(() => {
41
+ request.current = null;
42
+ setError(void 0);
43
+ setAttempt((value) => value + 1);
44
+ }, []);
45
+ return {
46
+ blocked: !threadId && canCreate,
47
+ pending: !threadId && canCreate && !error,
48
+ ...error ? { error } : {},
49
+ retry
50
+ };
51
+ }
52
+ async function createHTTPThread(api) {
53
+ const response = await fetch(api, {
54
+ method: "POST",
55
+ headers: { "Content-Type": "application/json" },
56
+ body: "{}"
57
+ });
58
+ if (!response.ok) {
59
+ throw new Error(
60
+ `Creating a chat thread failed with status ${response.status}.`
61
+ );
62
+ }
63
+ return response.json();
64
+ }
65
+ export {
66
+ useChatThreadSetup
67
+ };
68
+ //# sourceMappingURL=ChatWindow.thread.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatWindow.thread.js","sources":["../../../src/data/ai/ChatWindow.thread.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\nimport type { ThreadSource, ThreadSummary } from \"./ThreadPicker\";\n\nexport type ChatThreadSetup = {\n blocked: boolean;\n pending: boolean;\n error?: string;\n retry: () => void;\n};\n\ntype ChatThreadSetupOptions = {\n threadId: string | null;\n api: string | null;\n source: ThreadSource | undefined;\n onCreated: (threadId: string) => void;\n};\n\nexport function useChatThreadSetup({\n threadId,\n api,\n source,\n onCreated,\n}: ChatThreadSetupOptions): ChatThreadSetup {\n const [attempt, setAttempt] = useState(0);\n const [error, setError] = useState<string>();\n const request = useRef<Promise<ThreadSummary> | null>(null);\n const onCreatedRef = useRef(onCreated);\n onCreatedRef.current = onCreated;\n const canCreate = Boolean(source?.create || (!source && api));\n\n useEffect(() => {\n if (threadId || !canCreate) {\n request.current = null;\n setError(undefined);\n return;\n }\n if (!request.current) {\n request.current = source?.create\n ? source.create()\n : createHTTPThread(api as string);\n }\n let active = true;\n request.current\n .then((thread) => {\n if (!active) return;\n const id = thread.id?.trim();\n if (!id) {\n throw new Error(\"Created chat thread has no id.\");\n }\n onCreatedRef.current(id);\n })\n .catch((cause) => {\n if (!active) return;\n setError(cause instanceof Error ? cause.message : String(cause));\n });\n return () => {\n active = false;\n };\n }, [api, attempt, canCreate, source, threadId]);\n\n const retry = useCallback(() => {\n request.current = null;\n setError(undefined);\n setAttempt((value) => value + 1);\n }, []);\n return {\n blocked: !threadId && canCreate,\n pending: !threadId && canCreate && !error,\n ...(error ? { error } : {}),\n retry,\n };\n}\n\n// The thread is created before its first message, so it has nothing to be named\n// after yet. The backend names it from that message (or the model names it), and\n// an unnamed thread reads as \"New Chat\" until then — a placeholder title here\n// would look like one the user chose and stop the real name from landing.\nasync function createHTTPThread(api: string): Promise<ThreadSummary> {\n const response = await fetch(api, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: \"{}\",\n });\n if (!response.ok) {\n throw new Error(\n `Creating a chat thread failed with status ${response.status}.`,\n );\n }\n return response.json() as Promise<ThreadSummary>;\n}\n"],"names":[],"mappings":";AAiBO,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA4C;AAC1C,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,CAAC;AACxC,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAA;AAC1B,QAAM,UAAU,OAAsC,IAAI;AAC1D,QAAM,eAAe,OAAO,SAAS;AACrC,eAAa,UAAU;AACvB,QAAM,YAAY,SAAQ,iCAAQ,WAAW,CAAC,UAAU,GAAI;AAE5D,YAAU,MAAM;AACd,QAAI,YAAY,CAAC,WAAW;AAC1B,cAAQ,UAAU;AAClB,eAAS,MAAS;AAClB;AAAA,IACF;AACA,QAAI,CAAC,QAAQ,SAAS;AACpB,cAAQ,WAAU,iCAAQ,UACtB,OAAO,OAAA,IACP,iBAAiB,GAAa;AAAA,IACpC;AACA,QAAI,SAAS;AACb,YAAQ,QACL,KAAK,CAAC,WAAW;;AAChB,UAAI,CAAC,OAAQ;AACb,YAAM,MAAK,YAAO,OAAP,mBAAW;AACtB,UAAI,CAAC,IAAI;AACP,cAAM,IAAI,MAAM,gCAAgC;AAAA,MAClD;AACA,mBAAa,QAAQ,EAAE;AAAA,IACzB,CAAC,EACA,MAAM,CAAC,UAAU;AAChB,UAAI,CAAC,OAAQ;AACb,eAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC;AAAA,IACjE,CAAC;AACH,WAAO,MAAM;AACX,eAAS;AAAA,IACX;AAAA,EACF,GAAG,CAAC,KAAK,SAAS,WAAW,QAAQ,QAAQ,CAAC;AAE9C,QAAM,QAAQ,YAAY,MAAM;AAC9B,YAAQ,UAAU;AAClB,aAAS,MAAS;AAClB,eAAW,CAAC,UAAU,QAAQ,CAAC;AAAA,EACjC,GAAG,CAAA,CAAE;AACL,SAAO;AAAA,IACL,SAAS,CAAC,YAAY;AAAA,IACtB,SAAS,CAAC,YAAY,aAAa,CAAC;AAAA,IACpC,GAAI,QAAQ,EAAE,MAAA,IAAU,CAAA;AAAA,IACxB;AAAA,EAAA;AAEJ;AAMA,eAAe,iBAAiB,KAAqC;AACnE,QAAM,WAAW,MAAM,MAAM,KAAK;AAAA,IAChC,QAAQ;AAAA,IACR,SAAS,EAAE,gBAAgB,mBAAA;AAAA,IAC3B,MAAM;AAAA,EAAA,CACP;AACD,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,IAAI;AAAA,MACR,6CAA6C,SAAS,MAAM;AAAA,IAAA;AAAA,EAEhE;AACA,SAAO,SAAS,KAAA;AAClB;"}
@@ -1,5 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ function effectiveToolPreferences({
4
+ tools,
5
+ explicit,
6
+ surfaceDefaults,
7
+ fallback
8
+ }) {
9
+ const resolved = {};
10
+ for (const tool of tools) {
11
+ resolved[tool.name] = explicit[tool.name] ?? surfaceDefault(tool, surfaceDefaults) ?? tool.defaultPermission ?? fallback;
12
+ }
13
+ return resolved;
14
+ }
15
+ function surfaceDefault(tool, surfaceDefaults) {
16
+ if (!surfaceDefaults) return void 0;
17
+ for (const key of [tool.name, tool.preferenceKey, tool.group]) {
18
+ if (key && surfaceDefaults[key]) return surfaceDefaults[key];
19
+ }
20
+ return void 0;
21
+ }
3
22
  function normalizeToolCatalog(data) {
4
23
  const tools = Array.isArray(data) ? data : data && typeof data === "object" && Array.isArray(data.tools) ? data.tools : [];
5
24
  return tools.flatMap((tool) => normalizeToolMeta(tool));
@@ -95,5 +114,6 @@ function normalizeToolModeValue(value) {
95
114
  return void 0;
96
115
  }
97
116
  }
117
+ exports.effectiveToolPreferences = effectiveToolPreferences;
98
118
  exports.normalizeToolCatalog = normalizeToolCatalog;
99
119
  //# sourceMappingURL=ChatWindow.tool-catalog.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatWindow.tool-catalog.cjs","sources":["../../../src/data/ai/ChatWindow.tool-catalog.ts"],"sourcesContent":["import type { ToolMeta, ToolMode } from \"./ToolPreferences\";\n\nexport function normalizeToolCatalog(data: unknown): ToolMeta[] {\n const tools = Array.isArray(data)\n ? data\n : data &&\n typeof data === \"object\" &&\n Array.isArray((data as { tools?: unknown }).tools)\n ? (data as { tools: unknown[] }).tools\n : [];\n return tools.flatMap((tool) => normalizeToolMeta(tool));\n}\n\nfunction normalizeToolMeta(tool: unknown): ToolMeta[] {\n if (!tool || typeof tool !== \"object\") return [];\n const item = tool as Record<string, unknown>;\n const name = stringValue(item.name);\n if (!name) return [];\n const label =\n stringValue(item.label) ??\n stringValue(item.title) ??\n stringValue(item.operationName) ??\n name;\n const defaultPermission = normalizeToolModeValue(\n item.defaultPermission ?? item.defaultMode\n );\n const group = stringValue(item.group);\n const parent = stringValue(item.parent);\n const entity = stringValue(item.entity);\n const preferenceKey = stringValue(item.preferenceKey);\n const icon = stringValue(item.icon);\n const description = stringValue(item.description);\n const hints = stringArrayValue(item.hints);\n const source = stringValue(item.source);\n const server = stringValue(item.server);\n const method = stringValue(item.method);\n const path = stringValue(item.path);\n const operationName = stringValue(item.operationName);\n const title = stringValue(item.title);\n const strict = booleanValue(item.strict);\n const annotations = annotationsValue(item.annotations);\n const inputSchema = schemaValue(item.inputSchema);\n const outputSchema = schemaValue(item.outputSchema);\n return [\n {\n name,\n label,\n ...(group ? { group } : {}),\n ...(parent ? { parent } : {}),\n ...(entity ? { entity } : {}),\n ...(preferenceKey ? { preferenceKey } : {}),\n ...(defaultPermission ? { defaultPermission } : {}),\n ...(icon ? { icon } : {}),\n ...(description ? { description } : {}),\n ...(hints ? { hints } : {}),\n ...(source ? { source } : {}),\n ...(server ? { server } : {}),\n ...(method ? { method } : {}),\n ...(path ? { path } : {}),\n ...(operationName ? { operationName } : {}),\n ...(title ? { title } : {}),\n ...(strict !== undefined ? { strict } : {}),\n ...(annotations ? { annotations } : {}),\n ...(inputSchema ? { inputSchema } : {}),\n ...(outputSchema ? { outputSchema } : {}),\n },\n ];\n}\n\nfunction stringValue(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim() ? value : undefined;\n}\n\nfunction stringArrayValue(value: unknown): string[] | undefined {\n if (!Array.isArray(value)) return undefined;\n const values = value.filter(\n (item): item is string => typeof item === \"string\" && item.trim().length > 0\n );\n return values.length > 0 ? values : undefined;\n}\n\nfunction schemaValue(value: unknown): ToolMeta[\"inputSchema\"] | undefined {\n if (!value || typeof value !== \"object\" || Array.isArray(value))\n return undefined;\n return value as ToolMeta[\"inputSchema\"];\n}\n\nfunction booleanValue(value: unknown): boolean | undefined {\n return typeof value === \"boolean\" ? value : undefined;\n}\n\nfunction annotationsValue(value: unknown): ToolMeta[\"annotations\"] | undefined {\n if (!value || typeof value !== \"object\" || Array.isArray(value))\n return undefined;\n return value as ToolMeta[\"annotations\"];\n}\n\nfunction normalizeToolModeValue(value: unknown): ToolMode | undefined {\n if (typeof value !== \"string\") return undefined;\n switch (value.trim().toLowerCase()) {\n case \"on\":\n case \"enabled\":\n return \"on\";\n case \"ask\":\n return \"ask\";\n case \"off\":\n case \"disabled\":\n return \"off\";\n case \"auto\":\n return \"auto\";\n default:\n return undefined;\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatWindow.tool-catalog.cjs","sources":["../../../src/data/ai/ChatWindow.tool-catalog.ts"],"sourcesContent":["import type { ToolMeta, ToolMode } from \"./ToolPreferences\";\n\n/** Resolves the effective mode of every tool, most-specific source first:\n *\n * 1. `explicit` — a mode the user chose in the preferences popover.\n * 2. `surfaceDefaults` — what the surface that opened the window declares,\n * matched on the tool's name, `preferenceKey`, or `group`.\n * 3. the tool catalog's own `defaultPermission`.\n * 4. `fallback`.\n *\n * Explicit choices are kept separate from seeded defaults precisely so a later\n * surface's policy can still apply to tools the user never touched. */\nexport function effectiveToolPreferences({\n tools,\n explicit,\n surfaceDefaults,\n fallback,\n}: {\n tools: ToolMeta[];\n explicit: Record<string, ToolMode>;\n surfaceDefaults?: Record<string, ToolMode>;\n fallback: ToolMode;\n}): Record<string, ToolMode> {\n const resolved: Record<string, ToolMode> = {};\n for (const tool of tools) {\n resolved[tool.name] =\n explicit[tool.name] ??\n surfaceDefault(tool, surfaceDefaults) ??\n tool.defaultPermission ??\n fallback;\n }\n return resolved;\n}\n\nfunction surfaceDefault(\n tool: ToolMeta,\n surfaceDefaults: Record<string, ToolMode> | undefined\n): ToolMode | undefined {\n if (!surfaceDefaults) return undefined;\n for (const key of [tool.name, tool.preferenceKey, tool.group]) {\n if (key && surfaceDefaults[key]) return surfaceDefaults[key];\n }\n return undefined;\n}\n\nexport function normalizeToolCatalog(data: unknown): ToolMeta[] {\n const tools = Array.isArray(data)\n ? data\n : data &&\n typeof data === \"object\" &&\n Array.isArray((data as { tools?: unknown }).tools)\n ? (data as { tools: unknown[] }).tools\n : [];\n return tools.flatMap((tool) => normalizeToolMeta(tool));\n}\n\nfunction normalizeToolMeta(tool: unknown): ToolMeta[] {\n if (!tool || typeof tool !== \"object\") return [];\n const item = tool as Record<string, unknown>;\n const name = stringValue(item.name);\n if (!name) return [];\n const label =\n stringValue(item.label) ??\n stringValue(item.title) ??\n stringValue(item.operationName) ??\n name;\n const defaultPermission = normalizeToolModeValue(\n item.defaultPermission ?? item.defaultMode\n );\n const group = stringValue(item.group);\n const parent = stringValue(item.parent);\n const entity = stringValue(item.entity);\n const preferenceKey = stringValue(item.preferenceKey);\n const icon = stringValue(item.icon);\n const description = stringValue(item.description);\n const hints = stringArrayValue(item.hints);\n const source = stringValue(item.source);\n const server = stringValue(item.server);\n const method = stringValue(item.method);\n const path = stringValue(item.path);\n const operationName = stringValue(item.operationName);\n const title = stringValue(item.title);\n const strict = booleanValue(item.strict);\n const annotations = annotationsValue(item.annotations);\n const inputSchema = schemaValue(item.inputSchema);\n const outputSchema = schemaValue(item.outputSchema);\n return [\n {\n name,\n label,\n ...(group ? { group } : {}),\n ...(parent ? { parent } : {}),\n ...(entity ? { entity } : {}),\n ...(preferenceKey ? { preferenceKey } : {}),\n ...(defaultPermission ? { defaultPermission } : {}),\n ...(icon ? { icon } : {}),\n ...(description ? { description } : {}),\n ...(hints ? { hints } : {}),\n ...(source ? { source } : {}),\n ...(server ? { server } : {}),\n ...(method ? { method } : {}),\n ...(path ? { path } : {}),\n ...(operationName ? { operationName } : {}),\n ...(title ? { title } : {}),\n ...(strict !== undefined ? { strict } : {}),\n ...(annotations ? { annotations } : {}),\n ...(inputSchema ? { inputSchema } : {}),\n ...(outputSchema ? { outputSchema } : {}),\n },\n ];\n}\n\nfunction stringValue(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim() ? value : undefined;\n}\n\nfunction stringArrayValue(value: unknown): string[] | undefined {\n if (!Array.isArray(value)) return undefined;\n const values = value.filter(\n (item): item is string => typeof item === \"string\" && item.trim().length > 0\n );\n return values.length > 0 ? values : undefined;\n}\n\nfunction schemaValue(value: unknown): ToolMeta[\"inputSchema\"] | undefined {\n if (!value || typeof value !== \"object\" || Array.isArray(value))\n return undefined;\n return value as ToolMeta[\"inputSchema\"];\n}\n\nfunction booleanValue(value: unknown): boolean | undefined {\n return typeof value === \"boolean\" ? value : undefined;\n}\n\nfunction annotationsValue(value: unknown): ToolMeta[\"annotations\"] | undefined {\n if (!value || typeof value !== \"object\" || Array.isArray(value))\n return undefined;\n return value as ToolMeta[\"annotations\"];\n}\n\nfunction normalizeToolModeValue(value: unknown): ToolMode | undefined {\n if (typeof value !== \"string\") return undefined;\n switch (value.trim().toLowerCase()) {\n case \"on\":\n case \"enabled\":\n return \"on\";\n case \"ask\":\n return \"ask\";\n case \"off\":\n case \"disabled\":\n return \"off\";\n case \"auto\":\n return \"auto\";\n default:\n return undefined;\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,3 +1,19 @@
1
- import { ToolMeta } from './ToolPreferences';
1
+ import { ToolMeta, ToolMode } from './ToolPreferences';
2
+ /** Resolves the effective mode of every tool, most-specific source first:
3
+ *
4
+ * 1. `explicit` — a mode the user chose in the preferences popover.
5
+ * 2. `surfaceDefaults` — what the surface that opened the window declares,
6
+ * matched on the tool's name, `preferenceKey`, or `group`.
7
+ * 3. the tool catalog's own `defaultPermission`.
8
+ * 4. `fallback`.
9
+ *
10
+ * Explicit choices are kept separate from seeded defaults precisely so a later
11
+ * surface's policy can still apply to tools the user never touched. */
12
+ export declare function effectiveToolPreferences({ tools, explicit, surfaceDefaults, fallback, }: {
13
+ tools: ToolMeta[];
14
+ explicit: Record<string, ToolMode>;
15
+ surfaceDefaults?: Record<string, ToolMode>;
16
+ fallback: ToolMode;
17
+ }): Record<string, ToolMode>;
2
18
  export declare function normalizeToolCatalog(data: unknown): ToolMeta[];
3
19
  //# sourceMappingURL=ChatWindow.tool-catalog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatWindow.tool-catalog.d.ts","sourceRoot":"","sources":["../../../src/data/ai/ChatWindow.tool-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,mBAAmB,CAAC;AAE5D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,EAAE,CAS9D"}
1
+ {"version":3,"file":"ChatWindow.tool-catalog.d.ts","sourceRoot":"","sources":["../../../src/data/ai/ChatWindow.tool-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;;;;;;;;uEASuE;AACvE,wBAAgB,wBAAwB,CAAC,EACvC,KAAK,EACL,QAAQ,EACR,eAAe,EACf,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,QAAQ,EAAE,QAAQ,CAAC;CACpB,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAU3B;AAaD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,EAAE,CAS9D"}
@@ -1,3 +1,22 @@
1
+ function effectiveToolPreferences({
2
+ tools,
3
+ explicit,
4
+ surfaceDefaults,
5
+ fallback
6
+ }) {
7
+ const resolved = {};
8
+ for (const tool of tools) {
9
+ resolved[tool.name] = explicit[tool.name] ?? surfaceDefault(tool, surfaceDefaults) ?? tool.defaultPermission ?? fallback;
10
+ }
11
+ return resolved;
12
+ }
13
+ function surfaceDefault(tool, surfaceDefaults) {
14
+ if (!surfaceDefaults) return void 0;
15
+ for (const key of [tool.name, tool.preferenceKey, tool.group]) {
16
+ if (key && surfaceDefaults[key]) return surfaceDefaults[key];
17
+ }
18
+ return void 0;
19
+ }
1
20
  function normalizeToolCatalog(data) {
2
21
  const tools = Array.isArray(data) ? data : data && typeof data === "object" && Array.isArray(data.tools) ? data.tools : [];
3
22
  return tools.flatMap((tool) => normalizeToolMeta(tool));
@@ -94,6 +113,7 @@ function normalizeToolModeValue(value) {
94
113
  }
95
114
  }
96
115
  export {
116
+ effectiveToolPreferences,
97
117
  normalizeToolCatalog
98
118
  };
99
119
  //# sourceMappingURL=ChatWindow.tool-catalog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatWindow.tool-catalog.js","sources":["../../../src/data/ai/ChatWindow.tool-catalog.ts"],"sourcesContent":["import type { ToolMeta, ToolMode } from \"./ToolPreferences\";\n\nexport function normalizeToolCatalog(data: unknown): ToolMeta[] {\n const tools = Array.isArray(data)\n ? data\n : data &&\n typeof data === \"object\" &&\n Array.isArray((data as { tools?: unknown }).tools)\n ? (data as { tools: unknown[] }).tools\n : [];\n return tools.flatMap((tool) => normalizeToolMeta(tool));\n}\n\nfunction normalizeToolMeta(tool: unknown): ToolMeta[] {\n if (!tool || typeof tool !== \"object\") return [];\n const item = tool as Record<string, unknown>;\n const name = stringValue(item.name);\n if (!name) return [];\n const label =\n stringValue(item.label) ??\n stringValue(item.title) ??\n stringValue(item.operationName) ??\n name;\n const defaultPermission = normalizeToolModeValue(\n item.defaultPermission ?? item.defaultMode\n );\n const group = stringValue(item.group);\n const parent = stringValue(item.parent);\n const entity = stringValue(item.entity);\n const preferenceKey = stringValue(item.preferenceKey);\n const icon = stringValue(item.icon);\n const description = stringValue(item.description);\n const hints = stringArrayValue(item.hints);\n const source = stringValue(item.source);\n const server = stringValue(item.server);\n const method = stringValue(item.method);\n const path = stringValue(item.path);\n const operationName = stringValue(item.operationName);\n const title = stringValue(item.title);\n const strict = booleanValue(item.strict);\n const annotations = annotationsValue(item.annotations);\n const inputSchema = schemaValue(item.inputSchema);\n const outputSchema = schemaValue(item.outputSchema);\n return [\n {\n name,\n label,\n ...(group ? { group } : {}),\n ...(parent ? { parent } : {}),\n ...(entity ? { entity } : {}),\n ...(preferenceKey ? { preferenceKey } : {}),\n ...(defaultPermission ? { defaultPermission } : {}),\n ...(icon ? { icon } : {}),\n ...(description ? { description } : {}),\n ...(hints ? { hints } : {}),\n ...(source ? { source } : {}),\n ...(server ? { server } : {}),\n ...(method ? { method } : {}),\n ...(path ? { path } : {}),\n ...(operationName ? { operationName } : {}),\n ...(title ? { title } : {}),\n ...(strict !== undefined ? { strict } : {}),\n ...(annotations ? { annotations } : {}),\n ...(inputSchema ? { inputSchema } : {}),\n ...(outputSchema ? { outputSchema } : {}),\n },\n ];\n}\n\nfunction stringValue(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim() ? value : undefined;\n}\n\nfunction stringArrayValue(value: unknown): string[] | undefined {\n if (!Array.isArray(value)) return undefined;\n const values = value.filter(\n (item): item is string => typeof item === \"string\" && item.trim().length > 0\n );\n return values.length > 0 ? values : undefined;\n}\n\nfunction schemaValue(value: unknown): ToolMeta[\"inputSchema\"] | undefined {\n if (!value || typeof value !== \"object\" || Array.isArray(value))\n return undefined;\n return value as ToolMeta[\"inputSchema\"];\n}\n\nfunction booleanValue(value: unknown): boolean | undefined {\n return typeof value === \"boolean\" ? value : undefined;\n}\n\nfunction annotationsValue(value: unknown): ToolMeta[\"annotations\"] | undefined {\n if (!value || typeof value !== \"object\" || Array.isArray(value))\n return undefined;\n return value as ToolMeta[\"annotations\"];\n}\n\nfunction normalizeToolModeValue(value: unknown): ToolMode | undefined {\n if (typeof value !== \"string\") return undefined;\n switch (value.trim().toLowerCase()) {\n case \"on\":\n case \"enabled\":\n return \"on\";\n case \"ask\":\n return \"ask\";\n case \"off\":\n case \"disabled\":\n return \"off\";\n case \"auto\":\n return \"auto\";\n default:\n return undefined;\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatWindow.tool-catalog.js","sources":["../../../src/data/ai/ChatWindow.tool-catalog.ts"],"sourcesContent":["import type { ToolMeta, ToolMode } from \"./ToolPreferences\";\n\n/** Resolves the effective mode of every tool, most-specific source first:\n *\n * 1. `explicit` — a mode the user chose in the preferences popover.\n * 2. `surfaceDefaults` — what the surface that opened the window declares,\n * matched on the tool's name, `preferenceKey`, or `group`.\n * 3. the tool catalog's own `defaultPermission`.\n * 4. `fallback`.\n *\n * Explicit choices are kept separate from seeded defaults precisely so a later\n * surface's policy can still apply to tools the user never touched. */\nexport function effectiveToolPreferences({\n tools,\n explicit,\n surfaceDefaults,\n fallback,\n}: {\n tools: ToolMeta[];\n explicit: Record<string, ToolMode>;\n surfaceDefaults?: Record<string, ToolMode>;\n fallback: ToolMode;\n}): Record<string, ToolMode> {\n const resolved: Record<string, ToolMode> = {};\n for (const tool of tools) {\n resolved[tool.name] =\n explicit[tool.name] ??\n surfaceDefault(tool, surfaceDefaults) ??\n tool.defaultPermission ??\n fallback;\n }\n return resolved;\n}\n\nfunction surfaceDefault(\n tool: ToolMeta,\n surfaceDefaults: Record<string, ToolMode> | undefined\n): ToolMode | undefined {\n if (!surfaceDefaults) return undefined;\n for (const key of [tool.name, tool.preferenceKey, tool.group]) {\n if (key && surfaceDefaults[key]) return surfaceDefaults[key];\n }\n return undefined;\n}\n\nexport function normalizeToolCatalog(data: unknown): ToolMeta[] {\n const tools = Array.isArray(data)\n ? data\n : data &&\n typeof data === \"object\" &&\n Array.isArray((data as { tools?: unknown }).tools)\n ? (data as { tools: unknown[] }).tools\n : [];\n return tools.flatMap((tool) => normalizeToolMeta(tool));\n}\n\nfunction normalizeToolMeta(tool: unknown): ToolMeta[] {\n if (!tool || typeof tool !== \"object\") return [];\n const item = tool as Record<string, unknown>;\n const name = stringValue(item.name);\n if (!name) return [];\n const label =\n stringValue(item.label) ??\n stringValue(item.title) ??\n stringValue(item.operationName) ??\n name;\n const defaultPermission = normalizeToolModeValue(\n item.defaultPermission ?? item.defaultMode\n );\n const group = stringValue(item.group);\n const parent = stringValue(item.parent);\n const entity = stringValue(item.entity);\n const preferenceKey = stringValue(item.preferenceKey);\n const icon = stringValue(item.icon);\n const description = stringValue(item.description);\n const hints = stringArrayValue(item.hints);\n const source = stringValue(item.source);\n const server = stringValue(item.server);\n const method = stringValue(item.method);\n const path = stringValue(item.path);\n const operationName = stringValue(item.operationName);\n const title = stringValue(item.title);\n const strict = booleanValue(item.strict);\n const annotations = annotationsValue(item.annotations);\n const inputSchema = schemaValue(item.inputSchema);\n const outputSchema = schemaValue(item.outputSchema);\n return [\n {\n name,\n label,\n ...(group ? { group } : {}),\n ...(parent ? { parent } : {}),\n ...(entity ? { entity } : {}),\n ...(preferenceKey ? { preferenceKey } : {}),\n ...(defaultPermission ? { defaultPermission } : {}),\n ...(icon ? { icon } : {}),\n ...(description ? { description } : {}),\n ...(hints ? { hints } : {}),\n ...(source ? { source } : {}),\n ...(server ? { server } : {}),\n ...(method ? { method } : {}),\n ...(path ? { path } : {}),\n ...(operationName ? { operationName } : {}),\n ...(title ? { title } : {}),\n ...(strict !== undefined ? { strict } : {}),\n ...(annotations ? { annotations } : {}),\n ...(inputSchema ? { inputSchema } : {}),\n ...(outputSchema ? { outputSchema } : {}),\n },\n ];\n}\n\nfunction stringValue(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim() ? value : undefined;\n}\n\nfunction stringArrayValue(value: unknown): string[] | undefined {\n if (!Array.isArray(value)) return undefined;\n const values = value.filter(\n (item): item is string => typeof item === \"string\" && item.trim().length > 0\n );\n return values.length > 0 ? values : undefined;\n}\n\nfunction schemaValue(value: unknown): ToolMeta[\"inputSchema\"] | undefined {\n if (!value || typeof value !== \"object\" || Array.isArray(value))\n return undefined;\n return value as ToolMeta[\"inputSchema\"];\n}\n\nfunction booleanValue(value: unknown): boolean | undefined {\n return typeof value === \"boolean\" ? value : undefined;\n}\n\nfunction annotationsValue(value: unknown): ToolMeta[\"annotations\"] | undefined {\n if (!value || typeof value !== \"object\" || Array.isArray(value))\n return undefined;\n return value as ToolMeta[\"annotations\"];\n}\n\nfunction normalizeToolModeValue(value: unknown): ToolMode | undefined {\n if (typeof value !== \"string\") return undefined;\n switch (value.trim().toLowerCase()) {\n case \"on\":\n case \"enabled\":\n return \"on\";\n case \"ask\":\n return \"ask\";\n case \"off\":\n case \"disabled\":\n return \"off\";\n case \"auto\":\n return \"auto\";\n default:\n return undefined;\n }\n}\n"],"names":[],"mappings":"AAYO,SAAS,yBAAyB;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAK6B;AAC3B,QAAM,WAAqC,CAAA;AAC3C,aAAW,QAAQ,OAAO;AACxB,aAAS,KAAK,IAAI,IAChB,SAAS,KAAK,IAAI,KAClB,eAAe,MAAM,eAAe,KACpC,KAAK,qBACL;AAAA,EACJ;AACA,SAAO;AACT;AAEA,SAAS,eACP,MACA,iBACsB;AACtB,MAAI,CAAC,gBAAiB,QAAO;AAC7B,aAAW,OAAO,CAAC,KAAK,MAAM,KAAK,eAAe,KAAK,KAAK,GAAG;AAC7D,QAAI,OAAO,gBAAgB,GAAG,EAAG,QAAO,gBAAgB,GAAG;AAAA,EAC7D;AACA,SAAO;AACT;AAEO,SAAS,qBAAqB,MAA2B;AAC9D,QAAM,QAAQ,MAAM,QAAQ,IAAI,IAC5B,OACA,QACA,OAAO,SAAS,YAChB,MAAM,QAAS,KAA6B,KAAK,IAChD,KAA8B,QAC/B,CAAA;AACJ,SAAO,MAAM,QAAQ,CAAC,SAAS,kBAAkB,IAAI,CAAC;AACxD;AAEA,SAAS,kBAAkB,MAA2B;AACpD,MAAI,CAAC,QAAQ,OAAO,SAAS,iBAAiB,CAAA;AAC9C,QAAM,OAAO;AACb,QAAM,OAAO,YAAY,KAAK,IAAI;AAClC,MAAI,CAAC,KAAM,QAAO,CAAA;AAClB,QAAM,QACJ,YAAY,KAAK,KAAK,KACtB,YAAY,KAAK,KAAK,KACtB,YAAY,KAAK,aAAa,KAC9B;AACF,QAAM,oBAAoB;AAAA,IACxB,KAAK,qBAAqB,KAAK;AAAA,EAAA;AAEjC,QAAM,QAAQ,YAAY,KAAK,KAAK;AACpC,QAAM,SAAS,YAAY,KAAK,MAAM;AACtC,QAAM,SAAS,YAAY,KAAK,MAAM;AACtC,QAAM,gBAAgB,YAAY,KAAK,aAAa;AACpD,QAAM,OAAO,YAAY,KAAK,IAAI;AAClC,QAAM,cAAc,YAAY,KAAK,WAAW;AAChD,QAAM,QAAQ,iBAAiB,KAAK,KAAK;AACzC,QAAM,SAAS,YAAY,KAAK,MAAM;AACtC,QAAM,SAAS,YAAY,KAAK,MAAM;AACtC,QAAM,SAAS,YAAY,KAAK,MAAM;AACtC,QAAM,OAAO,YAAY,KAAK,IAAI;AAClC,QAAM,gBAAgB,YAAY,KAAK,aAAa;AACpD,QAAM,QAAQ,YAAY,KAAK,KAAK;AACpC,QAAM,SAAS,aAAa,KAAK,MAAM;AACvC,QAAM,cAAc,iBAAiB,KAAK,WAAW;AACrD,QAAM,cAAc,YAAY,KAAK,WAAW;AAChD,QAAM,eAAe,YAAY,KAAK,YAAY;AAClD,SAAO;AAAA,IACL;AAAA,MACE;AAAA,MACA;AAAA,MACA,GAAI,QAAQ,EAAE,MAAA,IAAU,CAAA;AAAA,MACxB,GAAI,SAAS,EAAE,OAAA,IAAW,CAAA;AAAA,MAC1B,GAAI,SAAS,EAAE,OAAA,IAAW,CAAA;AAAA,MAC1B,GAAI,gBAAgB,EAAE,cAAA,IAAkB,CAAA;AAAA,MACxC,GAAI,oBAAoB,EAAE,kBAAA,IAAsB,CAAA;AAAA,MAChD,GAAI,OAAO,EAAE,KAAA,IAAS,CAAA;AAAA,MACtB,GAAI,cAAc,EAAE,YAAA,IAAgB,CAAA;AAAA,MACpC,GAAI,QAAQ,EAAE,MAAA,IAAU,CAAA;AAAA,MACxB,GAAI,SAAS,EAAE,OAAA,IAAW,CAAA;AAAA,MAC1B,GAAI,SAAS,EAAE,OAAA,IAAW,CAAA;AAAA,MAC1B,GAAI,SAAS,EAAE,OAAA,IAAW,CAAA;AAAA,MAC1B,GAAI,OAAO,EAAE,KAAA,IAAS,CAAA;AAAA,MACtB,GAAI,gBAAgB,EAAE,cAAA,IAAkB,CAAA;AAAA,MACxC,GAAI,QAAQ,EAAE,MAAA,IAAU,CAAA;AAAA,MACxB,GAAI,WAAW,SAAY,EAAE,OAAA,IAAW,CAAA;AAAA,MACxC,GAAI,cAAc,EAAE,YAAA,IAAgB,CAAA;AAAA,MACpC,GAAI,cAAc,EAAE,YAAA,IAAgB,CAAA;AAAA,MACpC,GAAI,eAAe,EAAE,iBAAiB,CAAA;AAAA,IAAC;AAAA,EACzC;AAEJ;AAEA,SAAS,YAAY,OAAoC;AACvD,SAAO,OAAO,UAAU,YAAY,MAAM,KAAA,IAAS,QAAQ;AAC7D;AAEA,SAAS,iBAAiB,OAAsC;AAC9D,MAAI,CAAC,MAAM,QAAQ,KAAK,EAAG,QAAO;AAClC,QAAM,SAAS,MAAM;AAAA,IACnB,CAAC,SAAyB,OAAO,SAAS,YAAY,KAAK,KAAA,EAAO,SAAS;AAAA,EAAA;AAE7E,SAAO,OAAO,SAAS,IAAI,SAAS;AACtC;AAEA,SAAS,YAAY,OAAqD;AACxE,MAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK;AAC5D,WAAO;AACT,SAAO;AACT;AAEA,SAAS,aAAa,OAAqC;AACzD,SAAO,OAAO,UAAU,YAAY,QAAQ;AAC9C;AAEA,SAAS,iBAAiB,OAAqD;AAC7E,MAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK;AAC5D,WAAO;AACT,SAAO;AACT;AAEA,SAAS,uBAAuB,OAAsC;AACpE,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,UAAQ,MAAM,KAAA,EAAO,YAAA,GAAY;AAAA,IAC/B,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EAAA;AAEb;"}
@@ -4,6 +4,7 @@ import { ChatWindowState } from './chat-window-context';
4
4
  import { ChatContextItem, ContextTypeConfig } from './context';
5
5
  import { ThreadSource } from './ThreadPicker';
6
6
  import { ToolMeta, ToolMode } from './ToolPreferences';
7
+ import { ToolRenderAdapter, ToolRenderRegistry } from '../chat/tool-render/adapter';
7
8
  export type ChatWindowProps = {
8
9
  panel: ChatWindowState;
9
10
  /** Props forwarded to the inner <Chat>. The window manages `threadId` and
@@ -11,12 +12,13 @@ export type ChatWindowProps = {
11
12
  chat?: Partial<ChatProps>;
12
13
  /** Header title shown when the thread picker is disabled. */
13
14
  title?: ReactNode;
14
- /** Thread switcher endpoint, or null to hide the picker. Defaults to
15
- * "/api/chat/threads". Ignored when `threadsSource` is set. */
16
- threadsApi?: string | null;
17
- /** Inject the thread list/delete directly instead of fetching `threadsApi`
15
+ /** Canonical Captain session endpoint used for list/create/get/delete and
16
+ * approval resolution, or null to disable persistence. Defaults to
17
+ * "/api/chat/sessions". */
18
+ sessionsApi?: string | null;
19
+ /** Inject the thread list/delete directly instead of fetching `sessionsApi`
18
20
  * (e.g. an app that loads conversations via its own client). Shows the
19
- * picker regardless of `threadsApi`. */
21
+ * picker regardless of `sessionsApi`. */
20
22
  threadsSource?: ThreadSource;
21
23
  /** Maps context item `type` to an icon/colour for the badge row. */
22
24
  contextTypeConfig?: ContextTypeConfig;
@@ -28,6 +30,12 @@ export type ChatWindowProps = {
28
30
  defaultToolMode?: ToolMode;
29
31
  /** Backend tool catalog endpoint. Defaults to "/api/chat/tools"; null disables fetching. */
30
32
  toolsApi?: string | null;
33
+ /** Backend runtime catalog endpoint. Null uses the built-in runtime families
34
+ * without probing host availability. */
35
+ runtimesApi?: string | null;
36
+ /** Domain tool input/output renderers forwarded to the inner <Chat>. Host
37
+ * adapters match before the built-in heuristics. */
38
+ toolRenderers?: ToolRenderAdapter[] | ToolRenderRegistry;
31
39
  /** Extra controls rendered in the header, e.g. a <ContextMeter mode="gauge"/> gauge. */
32
40
  headerExtras?: ReactNode;
33
41
  /** Optional app-owned entity/document picker rendered beside context badges. */
@@ -1 +1 @@
1
- {"version":3,"file":"ChatWindow.types.d.ts","sourceRoot":"","sources":["../../../src/data/ai/ChatWindow.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,eAAe,CAAC;IACvB;iFAC6E;IAC7E,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1B,6DAA6D;IAC7D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;mEAC+D;IAC/D,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;4CAEwC;IACxC,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,oEAAoE;IACpE,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;mEAE+D;IAC/D,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,8EAA8E;IAC9E,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,wFAAwF;IACxF,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,gFAAgF;IAChF,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,SAAS,CAAC;CAC1E,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,KAAK,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACvC,SAAS,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC;CAC/C,CAAC"}
1
+ {"version":3,"file":"ChatWindow.types.d.ts","sourceRoot":"","sources":["../../../src/data/ai/ChatWindow.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AAErC,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,eAAe,CAAC;IACvB;iFAC6E;IAC7E,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1B,6DAA6D;IAC7D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;+BAE2B;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;6CAEyC;IACzC,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,oEAAoE;IACpE,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;mEAE+D;IAC/D,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,8EAA8E;IAC9E,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;4CACwC;IACxC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;wDACoD;IACpD,aAAa,CAAC,EAAE,iBAAiB,EAAE,GAAG,kBAAkB,CAAC;IACzD,wFAAwF;IACxF,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,gFAAgF;IAChF,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,SAAS,CAAC;CAC1E,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,KAAK,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACvC,SAAS,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC;CAC/C,CAAC"}