@tai42/studio-sdk 0.2.0

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 (422) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +15 -0
  3. package/README.md +318 -0
  4. package/SECURITY.md +51 -0
  5. package/dist/components/badge.d.ts +13 -0
  6. package/dist/components/badge.d.ts.map +1 -0
  7. package/dist/components/badge.js +14 -0
  8. package/dist/components/badge.js.map +1 -0
  9. package/dist/components/checkbox.d.ts +24 -0
  10. package/dist/components/checkbox.d.ts.map +1 -0
  11. package/dist/components/checkbox.js +31 -0
  12. package/dist/components/checkbox.js.map +1 -0
  13. package/dist/components/code-block.d.ts +7 -0
  14. package/dist/components/code-block.d.ts.map +1 -0
  15. package/dist/components/code-block.js +23 -0
  16. package/dist/components/code-block.js.map +1 -0
  17. package/dist/components/completion-input.d.ts +31 -0
  18. package/dist/components/completion-input.d.ts.map +1 -0
  19. package/dist/components/completion-input.js +61 -0
  20. package/dist/components/completion-input.js.map +1 -0
  21. package/dist/components/components.css +2212 -0
  22. package/dist/components/confirm-dialog.d.ts +40 -0
  23. package/dist/components/confirm-dialog.d.ts.map +1 -0
  24. package/dist/components/confirm-dialog.js +11 -0
  25. package/dist/components/confirm-dialog.js.map +1 -0
  26. package/dist/components/control-styles.d.ts +12 -0
  27. package/dist/components/control-styles.d.ts.map +1 -0
  28. package/dist/components/control-styles.js +14 -0
  29. package/dist/components/control-styles.js.map +1 -0
  30. package/dist/components/copy-field.d.ts +8 -0
  31. package/dist/components/copy-field.d.ts.map +1 -0
  32. package/dist/components/copy-field.js +106 -0
  33. package/dist/components/copy-field.js.map +1 -0
  34. package/dist/components/dialog.d.ts +21 -0
  35. package/dist/components/dialog.d.ts.map +1 -0
  36. package/dist/components/dialog.js +25 -0
  37. package/dist/components/dialog.js.map +1 -0
  38. package/dist/components/drawer.d.ts +22 -0
  39. package/dist/components/drawer.d.ts.map +1 -0
  40. package/dist/components/drawer.js +32 -0
  41. package/dist/components/drawer.js.map +1 -0
  42. package/dist/components/error-boundary.d.ts +33 -0
  43. package/dist/components/error-boundary.d.ts.map +1 -0
  44. package/dist/components/error-boundary.js +36 -0
  45. package/dist/components/error-boundary.js.map +1 -0
  46. package/dist/components/extension-combo-builder.d.ts +70 -0
  47. package/dist/components/extension-combo-builder.d.ts.map +1 -0
  48. package/dist/components/extension-combo-builder.js +154 -0
  49. package/dist/components/extension-combo-builder.js.map +1 -0
  50. package/dist/components/extension-grouping.d.ts +65 -0
  51. package/dist/components/extension-grouping.d.ts.map +1 -0
  52. package/dist/components/extension-grouping.js +78 -0
  53. package/dist/components/extension-grouping.js.map +1 -0
  54. package/dist/components/extension-picker.d.ts +35 -0
  55. package/dist/components/extension-picker.d.ts.map +1 -0
  56. package/dist/components/extension-picker.js +31 -0
  57. package/dist/components/extension-picker.js.map +1 -0
  58. package/dist/components/external-link.d.ts +19 -0
  59. package/dist/components/external-link.d.ts.map +1 -0
  60. package/dist/components/external-link.js +12 -0
  61. package/dist/components/external-link.js.map +1 -0
  62. package/dist/components/field.d.ts +64 -0
  63. package/dist/components/field.d.ts.map +1 -0
  64. package/dist/components/field.js +56 -0
  65. package/dist/components/field.js.map +1 -0
  66. package/dist/components/fleet-report.d.ts +39 -0
  67. package/dist/components/fleet-report.d.ts.map +1 -0
  68. package/dist/components/fleet-report.js +50 -0
  69. package/dist/components/fleet-report.js.map +1 -0
  70. package/dist/components/fonts.css +22 -0
  71. package/dist/components/icons.d.ts +142 -0
  72. package/dist/components/icons.d.ts.map +1 -0
  73. package/dist/components/icons.js +139 -0
  74. package/dist/components/icons.js.map +1 -0
  75. package/dist/components/inputs.d.ts +52 -0
  76. package/dist/components/inputs.d.ts.map +1 -0
  77. package/dist/components/inputs.js +35 -0
  78. package/dist/components/inputs.js.map +1 -0
  79. package/dist/components/json-diff.d.ts +40 -0
  80. package/dist/components/json-diff.d.ts.map +1 -0
  81. package/dist/components/json-diff.js +119 -0
  82. package/dist/components/json-diff.js.map +1 -0
  83. package/dist/components/json-tree.d.ts +8 -0
  84. package/dist/components/json-tree.d.ts.map +1 -0
  85. package/dist/components/json-tree.js +70 -0
  86. package/dist/components/json-tree.js.map +1 -0
  87. package/dist/components/modal-focus.d.ts +15 -0
  88. package/dist/components/modal-focus.d.ts.map +1 -0
  89. package/dist/components/modal-focus.js +136 -0
  90. package/dist/components/modal-focus.js.map +1 -0
  91. package/dist/components/page-header.d.ts +56 -0
  92. package/dist/components/page-header.d.ts.map +1 -0
  93. package/dist/components/page-header.js +24 -0
  94. package/dist/components/page-header.js.map +1 -0
  95. package/dist/components/primitives.d.ts +186 -0
  96. package/dist/components/primitives.d.ts.map +1 -0
  97. package/dist/components/primitives.js +204 -0
  98. package/dist/components/primitives.js.map +1 -0
  99. package/dist/components/progress-bar.d.ts +29 -0
  100. package/dist/components/progress-bar.d.ts.map +1 -0
  101. package/dist/components/progress-bar.js +48 -0
  102. package/dist/components/progress-bar.js.map +1 -0
  103. package/dist/components/radio-group.d.ts +37 -0
  104. package/dist/components/radio-group.d.ts.map +1 -0
  105. package/dist/components/radio-group.js +56 -0
  106. package/dist/components/radio-group.js.map +1 -0
  107. package/dist/components/reveal-input.d.ts +13 -0
  108. package/dist/components/reveal-input.d.ts.map +1 -0
  109. package/dist/components/reveal-input.js +31 -0
  110. package/dist/components/reveal-input.js.map +1 -0
  111. package/dist/components/scroll-region.d.ts +85 -0
  112. package/dist/components/scroll-region.d.ts.map +1 -0
  113. package/dist/components/scroll-region.js +574 -0
  114. package/dist/components/scroll-region.js.map +1 -0
  115. package/dist/components/select.d.ts +53 -0
  116. package/dist/components/select.d.ts.map +1 -0
  117. package/dist/components/select.js +33 -0
  118. package/dist/components/select.js.map +1 -0
  119. package/dist/components/table.d.ts +59 -0
  120. package/dist/components/table.d.ts.map +1 -0
  121. package/dist/components/table.js +20 -0
  122. package/dist/components/table.js.map +1 -0
  123. package/dist/components/tabs.d.ts +15 -0
  124. package/dist/components/tabs.d.ts.map +1 -0
  125. package/dist/components/tabs.js +13 -0
  126. package/dist/components/tabs.js.map +1 -0
  127. package/dist/components/tags.d.ts +46 -0
  128. package/dist/components/tags.d.ts.map +1 -0
  129. package/dist/components/tags.js +68 -0
  130. package/dist/components/tags.js.map +1 -0
  131. package/dist/components/tokens.css +392 -0
  132. package/dist/components/tokens.d.ts +15 -0
  133. package/dist/components/tokens.d.ts.map +1 -0
  134. package/dist/components/tokens.js +101 -0
  135. package/dist/components/tokens.js.map +1 -0
  136. package/dist/components/tool-picker.d.ts +24 -0
  137. package/dist/components/tool-picker.d.ts.map +1 -0
  138. package/dist/components/tool-picker.js +97 -0
  139. package/dist/components/tool-picker.js.map +1 -0
  140. package/dist/components/tooltip.d.ts +17 -0
  141. package/dist/components/tooltip.d.ts.map +1 -0
  142. package/dist/components/tooltip.js +18 -0
  143. package/dist/components/tooltip.js.map +1 -0
  144. package/dist/components/version-history-panel.d.ts +71 -0
  145. package/dist/components/version-history-panel.d.ts.map +1 -0
  146. package/dist/components/version-history-panel.js +148 -0
  147. package/dist/components/version-history-panel.js.map +1 -0
  148. package/dist/download.d.ts +7 -0
  149. package/dist/download.d.ts.map +1 -0
  150. package/dist/download.js +18 -0
  151. package/dist/download.js.map +1 -0
  152. package/dist/element-slot.d.ts +4 -0
  153. package/dist/element-slot.d.ts.map +1 -0
  154. package/dist/element-slot.js +20 -0
  155. package/dist/element-slot.js.map +1 -0
  156. package/dist/elicitation/ElicitationForm.d.ts +34 -0
  157. package/dist/elicitation/ElicitationForm.d.ts.map +1 -0
  158. package/dist/elicitation/ElicitationForm.js +24 -0
  159. package/dist/elicitation/ElicitationForm.js.map +1 -0
  160. package/dist/errors.d.ts +9 -0
  161. package/dist/errors.d.ts.map +1 -0
  162. package/dist/errors.js +15 -0
  163. package/dist/errors.js.map +1 -0
  164. package/dist/extension-combos.d.ts +13 -0
  165. package/dist/extension-combos.d.ts.map +1 -0
  166. package/dist/extension-combos.js +9 -0
  167. package/dist/extension-combos.js.map +1 -0
  168. package/dist/hooks/useApi.d.ts +1222 -0
  169. package/dist/hooks/useApi.d.ts.map +1 -0
  170. package/dist/hooks/useApi.js +22 -0
  171. package/dist/hooks/useApi.js.map +1 -0
  172. package/dist/hooks/useAuth.d.ts +13 -0
  173. package/dist/hooks/useAuth.d.ts.map +1 -0
  174. package/dist/hooks/useAuth.js +53 -0
  175. package/dist/hooks/useAuth.js.map +1 -0
  176. package/dist/hooks/useBreakpoint.d.ts +10 -0
  177. package/dist/hooks/useBreakpoint.d.ts.map +1 -0
  178. package/dist/hooks/useBreakpoint.js +66 -0
  179. package/dist/hooks/useBreakpoint.js.map +1 -0
  180. package/dist/hooks/useCapabilities.d.ts +88 -0
  181. package/dist/hooks/useCapabilities.d.ts.map +1 -0
  182. package/dist/hooks/useCapabilities.js +203 -0
  183. package/dist/hooks/useCapabilities.js.map +1 -0
  184. package/dist/hooks/useSse.d.ts +13 -0
  185. package/dist/hooks/useSse.d.ts.map +1 -0
  186. package/dist/hooks/useSse.js +298 -0
  187. package/dist/hooks/useSse.js.map +1 -0
  188. package/dist/hooks/useTheme.d.ts +20 -0
  189. package/dist/hooks/useTheme.d.ts.map +1 -0
  190. package/dist/hooks/useTheme.js +97 -0
  191. package/dist/hooks/useTheme.js.map +1 -0
  192. package/dist/hooks/useUnauthorized.d.ts +3 -0
  193. package/dist/hooks/useUnauthorized.d.ts.map +1 -0
  194. package/dist/hooks/useUnauthorized.js +18 -0
  195. package/dist/hooks/useUnauthorized.js.map +1 -0
  196. package/dist/host.d.ts +11 -0
  197. package/dist/host.d.ts.map +1 -0
  198. package/dist/host.js +10 -0
  199. package/dist/host.js.map +1 -0
  200. package/dist/index.d.ts +118 -0
  201. package/dist/index.d.ts.map +1 -0
  202. package/dist/index.js +91 -0
  203. package/dist/index.js.map +1 -0
  204. package/dist/navigation/context.d.ts +25 -0
  205. package/dist/navigation/context.d.ts.map +1 -0
  206. package/dist/navigation/context.js +45 -0
  207. package/dist/navigation/context.js.map +1 -0
  208. package/dist/navigation/index.d.ts +4 -0
  209. package/dist/navigation/index.d.ts.map +1 -0
  210. package/dist/navigation/index.js +2 -0
  211. package/dist/navigation/index.js.map +1 -0
  212. package/dist/navigation/types.d.ts +97 -0
  213. package/dist/navigation/types.d.ts.map +1 -0
  214. package/dist/navigation/types.js +16 -0
  215. package/dist/navigation/types.js.map +1 -0
  216. package/dist/plugin/host-state.d.ts +45 -0
  217. package/dist/plugin/host-state.d.ts.map +1 -0
  218. package/dist/plugin/host-state.js +62 -0
  219. package/dist/plugin/host-state.js.map +1 -0
  220. package/dist/plugin/registry.d.ts +35 -0
  221. package/dist/plugin/registry.d.ts.map +1 -0
  222. package/dist/plugin/registry.js +129 -0
  223. package/dist/plugin/registry.js.map +1 -0
  224. package/dist/plugin/types.d.ts +165 -0
  225. package/dist/plugin/types.d.ts.map +1 -0
  226. package/dist/plugin/types.js +2 -0
  227. package/dist/plugin/types.js.map +1 -0
  228. package/dist/plugin/version.d.ts +34 -0
  229. package/dist/plugin/version.d.ts.map +1 -0
  230. package/dist/plugin/version.js +37 -0
  231. package/dist/plugin/version.js.map +1 -0
  232. package/dist/query-keys.d.ts +31 -0
  233. package/dist/query-keys.d.ts.map +1 -0
  234. package/dist/query-keys.js +31 -0
  235. package/dist/query-keys.js.map +1 -0
  236. package/dist/schema-editor/SchemaEditor.d.ts +43 -0
  237. package/dist/schema-editor/SchemaEditor.d.ts.map +1 -0
  238. package/dist/schema-editor/SchemaEditor.js +106 -0
  239. package/dist/schema-editor/SchemaEditor.js.map +1 -0
  240. package/dist/schema-editor/index.d.ts +10 -0
  241. package/dist/schema-editor/index.d.ts.map +1 -0
  242. package/dist/schema-editor/index.js +8 -0
  243. package/dist/schema-editor/index.js.map +1 -0
  244. package/dist/schema-editor/lint.d.ts +37 -0
  245. package/dist/schema-editor/lint.d.ts.map +1 -0
  246. package/dist/schema-editor/lint.js +49 -0
  247. package/dist/schema-editor/lint.js.map +1 -0
  248. package/dist/schema-form/SchemaForm.d.ts +70 -0
  249. package/dist/schema-form/SchemaForm.d.ts.map +1 -0
  250. package/dist/schema-form/SchemaForm.js +13 -0
  251. package/dist/schema-form/SchemaForm.js.map +1 -0
  252. package/dist/schema-form/array-field.d.ts +20 -0
  253. package/dist/schema-form/array-field.d.ts.map +1 -0
  254. package/dist/schema-form/array-field.js +39 -0
  255. package/dist/schema-form/array-field.js.map +1 -0
  256. package/dist/schema-form/classify.d.ts +87 -0
  257. package/dist/schema-form/classify.d.ts.map +1 -0
  258. package/dist/schema-form/classify.js +199 -0
  259. package/dist/schema-form/classify.js.map +1 -0
  260. package/dist/schema-form/context.d.ts +4 -0
  261. package/dist/schema-form/context.d.ts.map +1 -0
  262. package/dist/schema-form/context.js +14 -0
  263. package/dist/schema-form/context.js.map +1 -0
  264. package/dist/schema-form/default-value.d.ts +8 -0
  265. package/dist/schema-form/default-value.d.ts.map +1 -0
  266. package/dist/schema-form/default-value.js +64 -0
  267. package/dist/schema-form/default-value.js.map +1 -0
  268. package/dist/schema-form/enum-field.d.ts +19 -0
  269. package/dist/schema-form/enum-field.d.ts.map +1 -0
  270. package/dist/schema-form/enum-field.js +26 -0
  271. package/dist/schema-form/enum-field.js.map +1 -0
  272. package/dist/schema-form/field-group.d.ts +9 -0
  273. package/dist/schema-form/field-group.d.ts.map +1 -0
  274. package/dist/schema-form/field-group.js +32 -0
  275. package/dist/schema-form/field-group.js.map +1 -0
  276. package/dist/schema-form/field-node.d.ts +24 -0
  277. package/dist/schema-form/field-node.d.ts.map +1 -0
  278. package/dist/schema-form/field-node.js +51 -0
  279. package/dist/schema-form/field-node.js.map +1 -0
  280. package/dist/schema-form/index.d.ts +13 -0
  281. package/dist/schema-form/index.d.ts.map +1 -0
  282. package/dist/schema-form/index.js +11 -0
  283. package/dist/schema-form/index.js.map +1 -0
  284. package/dist/schema-form/media-field.d.ts +24 -0
  285. package/dist/schema-form/media-field.d.ts.map +1 -0
  286. package/dist/schema-form/media-field.js +169 -0
  287. package/dist/schema-form/media-field.js.map +1 -0
  288. package/dist/schema-form/media.d.ts +40 -0
  289. package/dist/schema-form/media.d.ts.map +1 -0
  290. package/dist/schema-form/media.js +65 -0
  291. package/dist/schema-form/media.js.map +1 -0
  292. package/dist/schema-form/object-fields.d.ts +20 -0
  293. package/dist/schema-form/object-fields.d.ts.map +1 -0
  294. package/dist/schema-form/object-fields.js +24 -0
  295. package/dist/schema-form/object-fields.js.map +1 -0
  296. package/dist/schema-form/resolve.d.ts +41 -0
  297. package/dist/schema-form/resolve.d.ts.map +1 -0
  298. package/dist/schema-form/resolve.js +102 -0
  299. package/dist/schema-form/resolve.js.map +1 -0
  300. package/dist/schema-form/string-field.d.ts +20 -0
  301. package/dist/schema-form/string-field.d.ts.map +1 -0
  302. package/dist/schema-form/string-field.js +68 -0
  303. package/dist/schema-form/string-field.js.map +1 -0
  304. package/dist/schema-form/styles.d.ts +18 -0
  305. package/dist/schema-form/styles.d.ts.map +1 -0
  306. package/dist/schema-form/styles.js +18 -0
  307. package/dist/schema-form/styles.js.map +1 -0
  308. package/dist/schema-form/types.d.ts +67 -0
  309. package/dist/schema-form/types.d.ts.map +1 -0
  310. package/dist/schema-form/types.js +10 -0
  311. package/dist/schema-form/types.js.map +1 -0
  312. package/dist/schema-form/union-field.d.ts +24 -0
  313. package/dist/schema-form/union-field.d.ts.map +1 -0
  314. package/dist/schema-form/union-field.js +55 -0
  315. package/dist/schema-form/union-field.js.map +1 -0
  316. package/dist/schema-form/union.d.ts +4 -0
  317. package/dist/schema-form/union.d.ts.map +1 -0
  318. package/dist/schema-form/union.js +68 -0
  319. package/dist/schema-form/union.js.map +1 -0
  320. package/dist/schema-form/unsupported-notice.d.ts +18 -0
  321. package/dist/schema-form/unsupported-notice.d.ts.map +1 -0
  322. package/dist/schema-form/unsupported-notice.js +8 -0
  323. package/dist/schema-form/unsupported-notice.js.map +1 -0
  324. package/dist/schema-form/validate.d.ts +18 -0
  325. package/dist/schema-form/validate.d.ts.map +1 -0
  326. package/dist/schema-form/validate.js +162 -0
  327. package/dist/schema-form/validate.js.map +1 -0
  328. package/dist/structured-output/StructuredOutput.d.ts +27 -0
  329. package/dist/structured-output/StructuredOutput.d.ts.map +1 -0
  330. package/dist/structured-output/StructuredOutput.js +41 -0
  331. package/dist/structured-output/StructuredOutput.js.map +1 -0
  332. package/dist/testing.d.ts +80 -0
  333. package/dist/testing.d.ts.map +1 -0
  334. package/dist/testing.js +207 -0
  335. package/dist/testing.js.map +1 -0
  336. package/package.json +101 -0
  337. package/src/components/badge.tsx +31 -0
  338. package/src/components/checkbox.tsx +93 -0
  339. package/src/components/code-block.tsx +37 -0
  340. package/src/components/completion-input.tsx +137 -0
  341. package/src/components/components.css +2212 -0
  342. package/src/components/confirm-dialog.tsx +77 -0
  343. package/src/components/control-styles.ts +14 -0
  344. package/src/components/copy-field.tsx +178 -0
  345. package/src/components/dialog.tsx +76 -0
  346. package/src/components/drawer.tsx +83 -0
  347. package/src/components/error-boundary.tsx +56 -0
  348. package/src/components/extension-combo-builder.tsx +305 -0
  349. package/src/components/extension-grouping.ts +116 -0
  350. package/src/components/extension-picker.tsx +97 -0
  351. package/src/components/external-link.tsx +40 -0
  352. package/src/components/field.tsx +169 -0
  353. package/src/components/fleet-report.tsx +136 -0
  354. package/src/components/fonts.css +22 -0
  355. package/src/components/icons.tsx +504 -0
  356. package/src/components/inputs.tsx +125 -0
  357. package/src/components/json-diff.tsx +192 -0
  358. package/src/components/json-tree.tsx +129 -0
  359. package/src/components/modal-focus.ts +150 -0
  360. package/src/components/page-header.tsx +107 -0
  361. package/src/components/primitives.tsx +489 -0
  362. package/src/components/progress-bar.tsx +100 -0
  363. package/src/components/radio-group.tsx +160 -0
  364. package/src/components/reveal-input.tsx +87 -0
  365. package/src/components/scroll-region.tsx +703 -0
  366. package/src/components/select.tsx +149 -0
  367. package/src/components/table.tsx +94 -0
  368. package/src/components/tabs.tsx +51 -0
  369. package/src/components/tags.tsx +137 -0
  370. package/src/components/tokens.css +392 -0
  371. package/src/components/tokens.ts +102 -0
  372. package/src/components/tool-picker.tsx +175 -0
  373. package/src/components/tooltip.tsx +46 -0
  374. package/src/components/version-history-panel.tsx +407 -0
  375. package/src/css.d.ts +2 -0
  376. package/src/download.ts +17 -0
  377. package/src/element-slot.ts +22 -0
  378. package/src/elicitation/ElicitationForm.tsx +87 -0
  379. package/src/errors.ts +12 -0
  380. package/src/extension-combos.ts +18 -0
  381. package/src/hooks/useApi.ts +27 -0
  382. package/src/hooks/useAuth.ts +67 -0
  383. package/src/hooks/useBreakpoint.ts +78 -0
  384. package/src/hooks/useCapabilities.ts +242 -0
  385. package/src/hooks/useSse.ts +314 -0
  386. package/src/hooks/useTheme.ts +133 -0
  387. package/src/hooks/useUnauthorized.ts +20 -0
  388. package/src/host.ts +15 -0
  389. package/src/index.ts +267 -0
  390. package/src/navigation/context.tsx +90 -0
  391. package/src/navigation/index.ts +9 -0
  392. package/src/navigation/types.ts +90 -0
  393. package/src/plugin/host-state.ts +93 -0
  394. package/src/plugin/registry.ts +174 -0
  395. package/src/plugin/types.ts +178 -0
  396. package/src/plugin/version.ts +44 -0
  397. package/src/query-keys.ts +34 -0
  398. package/src/schema-editor/SchemaEditor.tsx +186 -0
  399. package/src/schema-editor/index.ts +9 -0
  400. package/src/schema-editor/lint.ts +70 -0
  401. package/src/schema-form/SchemaForm.tsx +107 -0
  402. package/src/schema-form/array-field.tsx +110 -0
  403. package/src/schema-form/classify.ts +302 -0
  404. package/src/schema-form/context.ts +17 -0
  405. package/src/schema-form/default-value.ts +65 -0
  406. package/src/schema-form/enum-field.tsx +65 -0
  407. package/src/schema-form/field-group.tsx +71 -0
  408. package/src/schema-form/field-node.tsx +161 -0
  409. package/src/schema-form/index.ts +12 -0
  410. package/src/schema-form/media-field.tsx +281 -0
  411. package/src/schema-form/media.ts +69 -0
  412. package/src/schema-form/object-fields.tsx +74 -0
  413. package/src/schema-form/resolve.ts +114 -0
  414. package/src/schema-form/string-field.tsx +161 -0
  415. package/src/schema-form/styles.ts +20 -0
  416. package/src/schema-form/types.ts +71 -0
  417. package/src/schema-form/union-field.tsx +122 -0
  418. package/src/schema-form/union.ts +78 -0
  419. package/src/schema-form/unsupported-notice.tsx +39 -0
  420. package/src/schema-form/validate.ts +183 -0
  421. package/src/structured-output/StructuredOutput.tsx +81 -0
  422. package/src/testing.ts +235 -0
@@ -0,0 +1,1222 @@
1
+ import type { ApiClient } from '@tai42/api-client';
2
+ export declare const ApiProvider: import("react").Provider<{
3
+ readonly baseUrl: string;
4
+ readonly listTools: (signal?: AbortSignal) => Promise<string[]>;
5
+ readonly getToolSchema: (name: string, signal?: AbortSignal) => Promise<{
6
+ description: string | null;
7
+ input: Record<string, unknown>;
8
+ output: Record<string, unknown> | null;
9
+ }>;
10
+ readonly getAllToolSchemas: (signal?: AbortSignal) => Promise<Record<string, {
11
+ description: string | null;
12
+ input: Record<string, unknown>;
13
+ output: Record<string, unknown> | null;
14
+ }>>;
15
+ readonly runTool: (args: import("@tai42/api-client").RunToolArgs, signal?: AbortSignal) => Promise<unknown>;
16
+ readonly submitToolRun: (args: import("@tai42/api-client").SubmitToolRunArgs, signal?: AbortSignal) => Promise<{
17
+ run_id: string;
18
+ }>;
19
+ readonly getToolRun: (runId: string, signal?: AbortSignal) => Promise<{
20
+ tool_name: string;
21
+ status: "running" | "succeeded" | "failed" | "lost";
22
+ run_id: string;
23
+ started_at: string;
24
+ error?: string | undefined;
25
+ result?: unknown;
26
+ finished_at?: string | undefined;
27
+ }>;
28
+ readonly listToolRuns: (toolName: string, signal?: AbortSignal) => Promise<{
29
+ tool_name: string;
30
+ status: "running" | "succeeded" | "failed" | "lost";
31
+ run_id: string;
32
+ started_at: string;
33
+ finished_at?: string | undefined;
34
+ }[]>;
35
+ readonly listToolTags: (signal?: AbortSignal) => Promise<{
36
+ name: string;
37
+ tags: string[];
38
+ }[]>;
39
+ readonly listPresets: (signal?: AbortSignal) => Promise<{
40
+ name: string;
41
+ description: string;
42
+ tags: string[];
43
+ base_tool: string;
44
+ active_version: number;
45
+ extensions: (string | {
46
+ name: string;
47
+ config: Record<string, unknown>;
48
+ })[][];
49
+ output_schema: Record<string, unknown> | null;
50
+ conflicted: boolean;
51
+ conflicted_reason: string | null;
52
+ }[]>;
53
+ readonly createPreset: (body: import("@tai42/api-client").CreatePresetBody) => Promise<{
54
+ name: string;
55
+ description: string;
56
+ tags: string[];
57
+ base_tool: string;
58
+ active_version: number;
59
+ extensions: (string | {
60
+ name: string;
61
+ config: Record<string, unknown>;
62
+ })[][];
63
+ output_schema: Record<string, unknown> | null;
64
+ conflicted: boolean;
65
+ conflicted_reason: string | null;
66
+ }>;
67
+ readonly getPreset: (name: string, signal?: AbortSignal) => Promise<{
68
+ name: string;
69
+ description: string;
70
+ tags: string[];
71
+ base_tool: string;
72
+ active_version: number;
73
+ extensions: (string | {
74
+ name: string;
75
+ config: Record<string, unknown>;
76
+ })[][];
77
+ output_schema: Record<string, unknown> | null;
78
+ conflicted: boolean;
79
+ conflicted_reason: string | null;
80
+ fixed_kwargs: Record<string, unknown>;
81
+ }>;
82
+ readonly listPresetVersions: (name: string, signal?: AbortSignal) => Promise<{
83
+ tags: string[];
84
+ version: number;
85
+ body: {
86
+ description: string;
87
+ tags: string[];
88
+ base_tool: string;
89
+ extensions: (string | {
90
+ name: string;
91
+ config: Record<string, unknown>;
92
+ })[][];
93
+ output_schema: Record<string, unknown> | null;
94
+ fixed_kwargs: Record<string, unknown>;
95
+ };
96
+ created_at: string;
97
+ is_current: boolean;
98
+ }[]>;
99
+ readonly getPresetVersion: (name: string, version: number, signal?: AbortSignal) => Promise<{
100
+ tags: string[];
101
+ version: number;
102
+ body: {
103
+ description: string;
104
+ tags: string[];
105
+ base_tool: string;
106
+ extensions: (string | {
107
+ name: string;
108
+ config: Record<string, unknown>;
109
+ })[][];
110
+ output_schema: Record<string, unknown> | null;
111
+ fixed_kwargs: Record<string, unknown>;
112
+ };
113
+ created_at: string;
114
+ is_current: boolean;
115
+ }>;
116
+ readonly savePresetVersion: (name: string, body: import("@tai42/api-client").SavePresetVersionBody) => Promise<{
117
+ tags: string[];
118
+ version: number;
119
+ body: {
120
+ description: string;
121
+ tags: string[];
122
+ base_tool: string;
123
+ extensions: (string | {
124
+ name: string;
125
+ config: Record<string, unknown>;
126
+ })[][];
127
+ output_schema: Record<string, unknown> | null;
128
+ fixed_kwargs: Record<string, unknown>;
129
+ };
130
+ created_at: string;
131
+ is_current: boolean;
132
+ }>;
133
+ readonly rollbackPreset: (name: string, version: number) => Promise<{
134
+ name: string;
135
+ active_version: number;
136
+ }>;
137
+ readonly deletePreset: (name: string) => Promise<{
138
+ name: string;
139
+ deleted: true;
140
+ }>;
141
+ readonly renamePreset: (name: string, newName: string) => Promise<{
142
+ name: string;
143
+ active_version: number;
144
+ renamed_from: string;
145
+ }>;
146
+ readonly getPresetReferees: (name: string, signal?: AbortSignal) => Promise<{
147
+ name: string;
148
+ referees: string[];
149
+ }>;
150
+ readonly validatePreset: (body: import("@tai42/api-client").ValidatePresetBody) => Promise<{
151
+ error: string | null;
152
+ valid: boolean;
153
+ }>;
154
+ readonly setPresetVersionTags: (name: string, version: number, tags: readonly string[]) => Promise<{
155
+ name: string;
156
+ tags: string[];
157
+ version: number;
158
+ }>;
159
+ readonly getStorageInfo: (signal?: AbortSignal) => Promise<{
160
+ present: boolean;
161
+ provider: string | null;
162
+ module: string | null;
163
+ }>;
164
+ readonly listStorageResources: (signal?: AbortSignal) => Promise<{
165
+ resources: string[];
166
+ }>;
167
+ readonly statStorageResource: (id: string, signal?: AbortSignal) => Promise<{
168
+ id: string;
169
+ content_type: string | null;
170
+ }>;
171
+ readonly downloadStorageResource: (id: string, signal?: AbortSignal) => Promise<Blob>;
172
+ readonly uploadStorageResource: (body: import("@tai42/api-client").StorageUploadBody) => Promise<{
173
+ id: string;
174
+ stored: true;
175
+ }>;
176
+ readonly deleteStorageResource: (id: string) => Promise<{
177
+ deleted: true;
178
+ id: string;
179
+ }>;
180
+ readonly deleteStorageDir: (path: string) => Promise<{
181
+ deleted: true;
182
+ dir: string;
183
+ }>;
184
+ readonly getBackendInfo: (signal?: AbortSignal) => Promise<{
185
+ present: boolean;
186
+ module: string | null;
187
+ backend: string | null;
188
+ }>;
189
+ readonly listFleetWorkers: (signal?: AbortSignal) => Promise<{
190
+ workers: {
191
+ kind: "backend" | "serve";
192
+ origin: string;
193
+ pid: number;
194
+ }[];
195
+ }>;
196
+ readonly reloadFleetConfig: (targets: string[] | null) => Promise<{
197
+ error: string | null;
198
+ op: string;
199
+ reachable: boolean;
200
+ local_only: boolean;
201
+ results: {
202
+ error: string | null;
203
+ origin: string;
204
+ outcome: "failed" | "applied" | "missing" | "departed" | "timed_out";
205
+ detail: string | null;
206
+ payload?: unknown;
207
+ }[];
208
+ }>;
209
+ readonly listExtensions: (signal?: AbortSignal) => Promise<{
210
+ name: string;
211
+ kind: string;
212
+ }[]>;
213
+ readonly getToolExtensions: (name: string, signal?: AbortSignal) => Promise<{
214
+ combos: (string | {
215
+ name: string;
216
+ config: Record<string, unknown>;
217
+ })[][];
218
+ available: {
219
+ name: string;
220
+ kind: string;
221
+ }[];
222
+ }>;
223
+ readonly setToolExtensions: (name: string, combos: readonly import("@tai42/api-client").PresetExtensionElement[][]) => Promise<{
224
+ status: string;
225
+ env_keys: number;
226
+ fanout: {
227
+ mode: "local-only";
228
+ note: string;
229
+ } | {
230
+ error: string | null;
231
+ op: string;
232
+ reachable: boolean;
233
+ local_only: boolean;
234
+ results: {
235
+ error: string | null;
236
+ origin: string;
237
+ outcome: "failed" | "applied" | "missing" | "departed" | "timed_out";
238
+ detail: string | null;
239
+ payload?: unknown;
240
+ }[];
241
+ mode: "fleet";
242
+ } | {
243
+ error: string | null;
244
+ op: string;
245
+ reachable: boolean;
246
+ local_only: boolean;
247
+ results: {
248
+ error: string | null;
249
+ origin: string;
250
+ outcome: "failed" | "applied" | "missing" | "departed" | "timed_out";
251
+ detail: string | null;
252
+ payload?: unknown;
253
+ }[];
254
+ mode: "unreachable";
255
+ };
256
+ }>;
257
+ readonly listTemplates: (signal?: AbortSignal) => Promise<string[]>;
258
+ readonly getTemplate: (templateId: string) => Promise<{
259
+ template: string;
260
+ schema: Record<string, unknown>;
261
+ }>;
262
+ readonly uploadTemplate: (path: string, content: string) => Promise<{
263
+ path: string;
264
+ uploaded: true;
265
+ }>;
266
+ readonly deleteTemplate: (path: string) => Promise<{
267
+ path: string;
268
+ deleted: true;
269
+ }>;
270
+ readonly renderTemplate: (body: {
271
+ content?: string;
272
+ template_id?: string;
273
+ kwargs?: Record<string, unknown>;
274
+ }) => Promise<{
275
+ rendered: string;
276
+ }>;
277
+ readonly clearTemplatesCache: () => Promise<{
278
+ cleared: true;
279
+ }>;
280
+ readonly getManifest: (signal?: AbortSignal) => Promise<{
281
+ mcp: Record<string, unknown>[];
282
+ user_tools: string[];
283
+ }>;
284
+ readonly setMcpConfig: (mcp: unknown[]) => Promise<{
285
+ status: string;
286
+ env_keys: number;
287
+ fanout: {
288
+ mode: "local-only";
289
+ note: string;
290
+ } | {
291
+ error: string | null;
292
+ op: string;
293
+ reachable: boolean;
294
+ local_only: boolean;
295
+ results: {
296
+ error: string | null;
297
+ origin: string;
298
+ outcome: "failed" | "applied" | "missing" | "departed" | "timed_out";
299
+ detail: string | null;
300
+ payload?: unknown;
301
+ }[];
302
+ mode: "fleet";
303
+ } | {
304
+ error: string | null;
305
+ op: string;
306
+ reachable: boolean;
307
+ local_only: boolean;
308
+ results: {
309
+ error: string | null;
310
+ origin: string;
311
+ outcome: "failed" | "applied" | "missing" | "departed" | "timed_out";
312
+ detail: string | null;
313
+ payload?: unknown;
314
+ }[];
315
+ mode: "unreachable";
316
+ };
317
+ }>;
318
+ readonly getMcpStatus: (signal?: AbortSignal) => Promise<{
319
+ failed: {
320
+ status: string;
321
+ title: string;
322
+ }[];
323
+ bound: Record<string, string[]>;
324
+ }>;
325
+ readonly reloadMcp: (title: string) => Promise<{
326
+ error: string | null;
327
+ op: string;
328
+ reachable: boolean;
329
+ local_only: boolean;
330
+ results: {
331
+ error: string | null;
332
+ origin: string;
333
+ outcome: "failed" | "applied" | "missing" | "departed" | "timed_out";
334
+ detail: string | null;
335
+ payload?: unknown;
336
+ }[];
337
+ }>;
338
+ readonly listSubMcp: (signal?: AbortSignal) => Promise<Record<string, Record<string, unknown>>>;
339
+ readonly createSubMcp: (slug: string, tools: string[]) => Promise<{
340
+ slug: string;
341
+ tools: string[];
342
+ }>;
343
+ readonly deleteSubMcp: (slug: string) => Promise<{
344
+ slug: string;
345
+ removed: true;
346
+ }>;
347
+ readonly getEnvConfig: (signal?: AbortSignal) => Promise<{
348
+ env: Record<string, string>;
349
+ secret_keys: string[];
350
+ }>;
351
+ readonly setEnvConfig: (env: Record<string, string>) => Promise<{
352
+ status: string;
353
+ env_keys: number;
354
+ fanout: {
355
+ mode: "local-only";
356
+ note: string;
357
+ } | {
358
+ error: string | null;
359
+ op: string;
360
+ reachable: boolean;
361
+ local_only: boolean;
362
+ results: {
363
+ error: string | null;
364
+ origin: string;
365
+ outcome: "failed" | "applied" | "missing" | "departed" | "timed_out";
366
+ detail: string | null;
367
+ payload?: unknown;
368
+ }[];
369
+ mode: "fleet";
370
+ } | {
371
+ error: string | null;
372
+ op: string;
373
+ reachable: boolean;
374
+ local_only: boolean;
375
+ results: {
376
+ error: string | null;
377
+ origin: string;
378
+ outcome: "failed" | "applied" | "missing" | "departed" | "timed_out";
379
+ detail: string | null;
380
+ payload?: unknown;
381
+ }[];
382
+ mode: "unreachable";
383
+ };
384
+ }>;
385
+ readonly getConfigMode: (signal?: AbortSignal) => Promise<{
386
+ config_mode: string;
387
+ read_only: boolean;
388
+ }>;
389
+ readonly listProviders: (signal?: AbortSignal) => Promise<{
390
+ description: string;
391
+ kind: "oauth" | "none";
392
+ id: string;
393
+ origin: "system" | "community";
394
+ display_name: string;
395
+ icon_url: string;
396
+ category: string;
397
+ sub_services: {
398
+ description: string;
399
+ id: string;
400
+ display_name: string;
401
+ scopes: string[];
402
+ }[];
403
+ config_fields: {
404
+ key: string;
405
+ required: boolean;
406
+ label: string;
407
+ target: "env" | "header";
408
+ secret: boolean;
409
+ }[];
410
+ }[]>;
411
+ readonly listConnections: (signal?: AbortSignal) => Promise<{
412
+ items: {
413
+ kind: "oauth" | "none";
414
+ created_at: string;
415
+ connection_id: string;
416
+ provider_id: string;
417
+ alias: string;
418
+ account_identity: string | null;
419
+ enabled_sub_services: string[];
420
+ granted_scopes: string[];
421
+ auth_health_state: "healthy" | "reconnect_required" | "refresh_failing";
422
+ }[];
423
+ total: number;
424
+ }>;
425
+ readonly getConnection: (id: string, signal?: AbortSignal) => Promise<{
426
+ kind: "oauth" | "none";
427
+ created_at: string;
428
+ connection_id: string;
429
+ provider_id: string;
430
+ alias: string;
431
+ account_identity: string | null;
432
+ enabled_sub_services: string[];
433
+ granted_scopes: string[];
434
+ auth_health_state: "healthy" | "reconnect_required" | "refresh_failing";
435
+ }>;
436
+ readonly startConnect: (args: import("@tai42/api-client").StartConnectArgs) => Promise<{
437
+ flow_id: string;
438
+ authorize_url: string;
439
+ } | {
440
+ fanout: {
441
+ mode: "local-only";
442
+ note: string;
443
+ } | {
444
+ error: string | null;
445
+ op: string;
446
+ reachable: boolean;
447
+ local_only: boolean;
448
+ results: {
449
+ error: string | null;
450
+ origin: string;
451
+ outcome: "failed" | "applied" | "missing" | "departed" | "timed_out";
452
+ detail: string | null;
453
+ payload?: unknown;
454
+ }[];
455
+ mode: "fleet";
456
+ } | {
457
+ error: string | null;
458
+ op: string;
459
+ reachable: boolean;
460
+ local_only: boolean;
461
+ results: {
462
+ error: string | null;
463
+ origin: string;
464
+ outcome: "failed" | "applied" | "missing" | "departed" | "timed_out";
465
+ detail: string | null;
466
+ payload?: unknown;
467
+ }[];
468
+ mode: "unreachable";
469
+ } | null;
470
+ connection_id: string;
471
+ added_manifest_entries: string[];
472
+ }>;
473
+ readonly disconnect: (id: string) => Promise<{
474
+ fanout: {
475
+ mode: "local-only";
476
+ note: string;
477
+ } | {
478
+ error: string | null;
479
+ op: string;
480
+ reachable: boolean;
481
+ local_only: boolean;
482
+ results: {
483
+ error: string | null;
484
+ origin: string;
485
+ outcome: "failed" | "applied" | "missing" | "departed" | "timed_out";
486
+ detail: string | null;
487
+ payload?: unknown;
488
+ }[];
489
+ mode: "fleet";
490
+ } | {
491
+ error: string | null;
492
+ op: string;
493
+ reachable: boolean;
494
+ local_only: boolean;
495
+ results: {
496
+ error: string | null;
497
+ origin: string;
498
+ outcome: "failed" | "applied" | "missing" | "departed" | "timed_out";
499
+ detail: string | null;
500
+ payload?: unknown;
501
+ }[];
502
+ mode: "unreachable";
503
+ } | null;
504
+ connection_id: string;
505
+ upstream_revoke_outcome: "failed" | "success" | "skipped";
506
+ upstream_revoke_status: number | null;
507
+ removed_manifest_entries: string[];
508
+ }>;
509
+ readonly reconnect: (id: string, enabled_sub_services: string[], return_url?: string) => Promise<{
510
+ flow_id: string;
511
+ authorize_url: string;
512
+ }>;
513
+ readonly patchSubServices: (id: string, enabled_sub_services: string[], return_url?: string) => Promise<{
514
+ fanout: {
515
+ mode: "local-only";
516
+ note: string;
517
+ } | {
518
+ error: string | null;
519
+ op: string;
520
+ reachable: boolean;
521
+ local_only: boolean;
522
+ results: {
523
+ error: string | null;
524
+ origin: string;
525
+ outcome: "failed" | "applied" | "missing" | "departed" | "timed_out";
526
+ detail: string | null;
527
+ payload?: unknown;
528
+ }[];
529
+ mode: "fleet";
530
+ } | {
531
+ error: string | null;
532
+ op: string;
533
+ reachable: boolean;
534
+ local_only: boolean;
535
+ results: {
536
+ error: string | null;
537
+ origin: string;
538
+ outcome: "failed" | "applied" | "missing" | "departed" | "timed_out";
539
+ detail: string | null;
540
+ payload?: unknown;
541
+ }[];
542
+ mode: "unreachable";
543
+ } | null;
544
+ connection_id: string;
545
+ enabled_sub_services: string[];
546
+ flow_id: string | null;
547
+ authorize_url: string | null;
548
+ added_manifest_entries: string[];
549
+ removed_manifest_entries: string[];
550
+ consent_required: boolean;
551
+ }>;
552
+ readonly completeOAuth: (state: string, code: string, error?: string) => Promise<{
553
+ kind: "success";
554
+ fanout: {
555
+ mode: "local-only";
556
+ note: string;
557
+ } | {
558
+ error: string | null;
559
+ op: string;
560
+ reachable: boolean;
561
+ local_only: boolean;
562
+ results: {
563
+ error: string | null;
564
+ origin: string;
565
+ outcome: "failed" | "applied" | "missing" | "departed" | "timed_out";
566
+ detail: string | null;
567
+ payload?: unknown;
568
+ }[];
569
+ mode: "fleet";
570
+ } | {
571
+ error: string | null;
572
+ op: string;
573
+ reachable: boolean;
574
+ local_only: boolean;
575
+ results: {
576
+ error: string | null;
577
+ origin: string;
578
+ outcome: "failed" | "applied" | "missing" | "departed" | "timed_out";
579
+ detail: string | null;
580
+ payload?: unknown;
581
+ }[];
582
+ mode: "unreachable";
583
+ } | null;
584
+ connection_id: string;
585
+ return_url: string;
586
+ } | {
587
+ reason: string;
588
+ kind: "failed";
589
+ } | {
590
+ message: string;
591
+ kind: "cancelled";
592
+ }>;
593
+ readonly listStudioPlugins: (signal?: AbortSignal) => Promise<{
594
+ name: string;
595
+ version: string;
596
+ api_version: number;
597
+ entry: string;
598
+ integrity: Record<string, string>;
599
+ contributions: {
600
+ tool_panels: Record<string, string>;
601
+ pages: string[];
602
+ settings_tabs: string[];
603
+ nav_entries: string[];
604
+ };
605
+ }[]>;
606
+ readonly answerInteraction: (interactionId: string, answer: unknown) => Promise<{
607
+ status: string;
608
+ interaction_id: string;
609
+ }>;
610
+ readonly listChannels: (signal?: AbortSignal) => Promise<{
611
+ channels: string[];
612
+ }>;
613
+ readonly listNotifications: (signal?: AbortSignal) => Promise<{
614
+ notifications: {
615
+ message: string;
616
+ created_at: string;
617
+ id: string;
618
+ recipient: string | null;
619
+ }[];
620
+ }>;
621
+ readonly listAgents: (signal?: AbortSignal) => Promise<{
622
+ items: {
623
+ name: string;
624
+ description: string;
625
+ tool_name: string;
626
+ input_schema: Record<string, unknown>;
627
+ spec_runnable: boolean;
628
+ }[];
629
+ total: number;
630
+ }>;
631
+ readonly listSpecRunnableAgents: (signal?: AbortSignal) => Promise<{
632
+ items: {
633
+ name: string;
634
+ description: string;
635
+ tool_name: string;
636
+ input_schema: Record<string, unknown>;
637
+ spec_runnable: boolean;
638
+ }[];
639
+ total: number;
640
+ }>;
641
+ readonly streamAgentRun: (name: string, input: unknown, signal?: AbortSignal) => Promise<AsyncGenerator<import("@tai42/api-client").ParsedAgentEvent, any, any>>;
642
+ readonly streamAuthoredAgentRun: (name: string, input: unknown, signal?: AbortSignal) => Promise<AsyncGenerator<import("@tai42/api-client").ParsedAgentEvent, any, any>>;
643
+ readonly listHooks: (topic?: string, signal?: AbortSignal) => Promise<{
644
+ items: {
645
+ name: string;
646
+ tool: string;
647
+ topic: string;
648
+ execution_key: string;
649
+ tool_kwargs: Record<string, unknown>;
650
+ condition: string | null;
651
+ condition_id: string | null;
652
+ condition_kwargs: Record<string, unknown>;
653
+ expr: string | null;
654
+ expr_id: string | null;
655
+ expr_kwargs: Record<string, unknown>;
656
+ }[];
657
+ total: number;
658
+ topic_verifiers: Record<string, {
659
+ config: Record<string, unknown>;
660
+ verifier: string;
661
+ }>;
662
+ trigger_auth: Record<string, "public" | "verifier" | "token" | "token+api_key" | "out-of-service">;
663
+ }>;
664
+ readonly registerHook: (params: import("@tai42/api-client").HookParams) => Promise<{
665
+ name: string;
666
+ registered: boolean;
667
+ }>;
668
+ readonly unregisterHook: (name: string) => Promise<{
669
+ name: string;
670
+ removed: boolean;
671
+ }>;
672
+ readonly listHookVerifiers: (signal?: AbortSignal) => Promise<string[]>;
673
+ readonly setTopicVerifier: (topic: string, body: import("@tai42/api-client").TopicVerifierBody) => Promise<{
674
+ verifier: string;
675
+ topic: string;
676
+ }>;
677
+ readonly deleteTopicVerifier: (topic: string) => Promise<{
678
+ removed: boolean;
679
+ topic: string;
680
+ }>;
681
+ readonly createTriggerLink: (body: import("@tai42/api-client").TriggerLinkCreateBody) => Promise<{
682
+ name: string;
683
+ token: string;
684
+ topic: string;
685
+ trigger_path: string;
686
+ expires_at: string | null;
687
+ }>;
688
+ readonly listTriggerLinks: (signal?: AbortSignal) => Promise<{
689
+ items: {
690
+ name: string;
691
+ created_at: string;
692
+ topic: string;
693
+ execution_key: string;
694
+ tool_kwargs: Record<string, unknown> | null;
695
+ trigger_auth: "public" | "verifier" | "token" | "token+api_key" | "out-of-service";
696
+ expires_at: string | null;
697
+ created_by: string | null;
698
+ token_hash_prefix: string;
699
+ }[];
700
+ total: number;
701
+ }>;
702
+ readonly deleteTriggerLink: (name: string) => Promise<{
703
+ name: string;
704
+ removed: boolean;
705
+ }>;
706
+ readonly getMcpConfigSchema: (signal?: AbortSignal) => Promise<Record<string, unknown>>;
707
+ readonly getSettingsSchema: (signal?: AbortSignal) => Promise<{
708
+ groups: {
709
+ name: string;
710
+ module: string;
711
+ qualname: string;
712
+ fields: {
713
+ name: string;
714
+ description: string | null;
715
+ type: string;
716
+ required: boolean;
717
+ secret: boolean;
718
+ env_var: string;
719
+ nested_group: string | null;
720
+ value?: unknown;
721
+ default?: unknown;
722
+ }[];
723
+ }[];
724
+ }>;
725
+ readonly listScopes: (signal?: AbortSignal) => Promise<Record<string, string>>;
726
+ readonly addUrlToScope: (body: import("@tai42/api-client").AddUrlToScopeBody) => Promise<{
727
+ url: string;
728
+ scope_id: string;
729
+ }>;
730
+ readonly removeUrlFromScope: (body: {
731
+ url: string;
732
+ }) => Promise<{
733
+ url: string;
734
+ }>;
735
+ readonly removeScope: (scopeId: string) => Promise<{
736
+ scope_id: string;
737
+ deleted_keys: number;
738
+ }>;
739
+ readonly listAuthRoutes: (signal?: AbortSignal) => Promise<{
740
+ path: string;
741
+ tags: string[];
742
+ methods: string[];
743
+ mapped: string | null;
744
+ summary: string;
745
+ action: "secret" | "read" | "write" | "fenced" | null;
746
+ }[]>;
747
+ readonly listPublicRoutes: (signal?: AbortSignal) => Promise<string[]>;
748
+ readonly pinRoutePublic: (body: import("@tai42/api-client").PinRoutePublicBody) => Promise<{
749
+ url: string;
750
+ }>;
751
+ readonly unpinPublicRoute: (url: string) => Promise<{
752
+ url: string;
753
+ }>;
754
+ readonly listRoles: (signal?: AbortSignal) => Promise<{
755
+ name: string;
756
+ description: string;
757
+ scopes: string[];
758
+ condition: string | null;
759
+ condition_id: string | null;
760
+ base_tier: string | null;
761
+ allow_all: boolean;
762
+ grants: Record<string, "none" | "read" | "write">;
763
+ condition_kwargs?: unknown;
764
+ }[]>;
765
+ readonly createRole: (body: import("@tai42/api-client").RoleCreateBody) => Promise<{
766
+ name: string;
767
+ description: string;
768
+ scopes: string[];
769
+ condition: string | null;
770
+ condition_id: string | null;
771
+ base_tier: string | null;
772
+ allow_all: boolean;
773
+ grants: Record<string, "none" | "read" | "write">;
774
+ condition_kwargs?: unknown;
775
+ }>;
776
+ readonly updateRole: (name: string, body: import("@tai42/api-client").RoleUpdateBody) => Promise<{
777
+ name: string;
778
+ description: string;
779
+ scopes: string[];
780
+ condition: string | null;
781
+ condition_id: string | null;
782
+ base_tier: string | null;
783
+ allow_all: boolean;
784
+ grants: Record<string, "none" | "read" | "write">;
785
+ condition_kwargs?: unknown;
786
+ }>;
787
+ readonly deleteRole: (name: string) => Promise<{
788
+ name: string;
789
+ deleted: boolean;
790
+ }>;
791
+ readonly listRoleVersions: (name: string, signal?: AbortSignal) => Promise<{
792
+ versions: {
793
+ tags: string[];
794
+ version: number;
795
+ body: {
796
+ name: string;
797
+ description: string;
798
+ scopes: string[];
799
+ condition: string | null;
800
+ condition_id: string | null;
801
+ base_tier: string | null;
802
+ allow_all: boolean;
803
+ grants: Record<string, "none" | "read" | "write">;
804
+ condition_kwargs?: unknown;
805
+ };
806
+ created_at: string;
807
+ is_current: boolean;
808
+ }[];
809
+ audit: {
810
+ tags: string[];
811
+ version: number;
812
+ body: {
813
+ action: string;
814
+ actor: string | null;
815
+ before?: unknown;
816
+ after?: unknown;
817
+ };
818
+ created_at: string;
819
+ is_current: boolean;
820
+ }[];
821
+ }>;
822
+ readonly rollbackRole: (name: string, version: number) => Promise<{
823
+ name: string;
824
+ description: string;
825
+ scopes: string[];
826
+ condition: string | null;
827
+ condition_id: string | null;
828
+ base_tier: string | null;
829
+ allow_all: boolean;
830
+ grants: Record<string, "none" | "read" | "write">;
831
+ condition_kwargs?: unknown;
832
+ }>;
833
+ readonly listTokensPayload: (signal?: AbortSignal) => Promise<{
834
+ description: string;
835
+ scopes: string[];
836
+ user_id: string;
837
+ condition?: string | null | undefined;
838
+ condition_id?: string | null | undefined;
839
+ condition_kwargs?: unknown;
840
+ policy_data?: unknown;
841
+ }[]>;
842
+ readonly createApiKey: (body: import("@tai42/api-client").ApiKeyBody) => Promise<string>;
843
+ readonly editApiKey: (userId: string, body: Omit<import("@tai42/api-client").ApiKeyBody, "user_id">) => Promise<{
844
+ user_id: string;
845
+ updated: boolean;
846
+ }>;
847
+ readonly revokeApiKey: (userId: string) => Promise<{
848
+ user_id: string;
849
+ revoked: boolean;
850
+ }>;
851
+ readonly createClaimLink: (body: import("@tai42/api-client").ClaimLinkBody) => Promise<{
852
+ token: string;
853
+ expires_at: string;
854
+ claim_path: string;
855
+ }>;
856
+ readonly getMe: (signal?: AbortSignal) => Promise<{
857
+ tools: string[];
858
+ scopes: string[];
859
+ user_id: string;
860
+ owner_user_id: string | null;
861
+ admin: boolean;
862
+ routes: {
863
+ path: string;
864
+ methods: string[];
865
+ }[];
866
+ route_patterns: {
867
+ scope_id: string;
868
+ pattern: string;
869
+ }[];
870
+ sub_mcp: {
871
+ slug: string;
872
+ tools: string[];
873
+ transport: string;
874
+ }[];
875
+ agents: string[];
876
+ mintable: boolean;
877
+ }>;
878
+ readonly getLoginMethods: (options?: {
879
+ signal?: AbortSignal;
880
+ }) => Promise<{
881
+ methods: ({
882
+ shape: "form";
883
+ id: string;
884
+ title: string;
885
+ fields: {
886
+ name: string;
887
+ label: string;
888
+ secret: boolean;
889
+ autocomplete?: string | undefined;
890
+ }[];
891
+ purpose: "login" | "bootstrap" | "invite";
892
+ submit_path: string;
893
+ } | {
894
+ shape: "button";
895
+ id: string;
896
+ label: string;
897
+ href: string;
898
+ icon?: string | undefined;
899
+ })[];
900
+ bootstrap: boolean;
901
+ }>;
902
+ readonly submitLoginForm: (path: string, values: Record<string, string>) => Promise<{
903
+ token: string;
904
+ user_id: string;
905
+ }>;
906
+ readonly exchangeSsoCode: (code: string) => Promise<{
907
+ token: string;
908
+ user_id: string;
909
+ }>;
910
+ readonly claimLogin: (body: {
911
+ token: string;
912
+ }) => Promise<{
913
+ token: string;
914
+ user_id: string;
915
+ }>;
916
+ readonly getAuthCapabilities: (signal?: AbortSignal) => Promise<{
917
+ mintable: boolean;
918
+ providers: {
919
+ name: string;
920
+ mintable: boolean;
921
+ }[];
922
+ }>;
923
+ readonly logout: () => Promise<{
924
+ revoked: boolean;
925
+ }>;
926
+ readonly validateCondition: (body: import("@tai42/api-client").ValidateConditionBody) => Promise<{
927
+ result: boolean | null;
928
+ ok: boolean;
929
+ }>;
930
+ readonly listPolicyVersions: (userId: string, signal?: AbortSignal) => Promise<{
931
+ tags: string[];
932
+ version: number;
933
+ body: {
934
+ scopes: string[];
935
+ condition: string | null;
936
+ condition_id: string | null;
937
+ condition_kwargs?: unknown;
938
+ policy_data?: unknown;
939
+ };
940
+ created_at: string;
941
+ is_current: boolean;
942
+ }[]>;
943
+ readonly rollbackPolicy: (userId: string, version: number) => Promise<{
944
+ active_version: number;
945
+ user_id: string;
946
+ }>;
947
+ readonly listBackupSections: (signal?: AbortSignal) => Promise<{
948
+ name: string;
949
+ secret: boolean;
950
+ }[]>;
951
+ readonly exportBackup: (sections: string[], signal?: AbortSignal) => Promise<Blob>;
952
+ readonly importBackup: (body: {
953
+ document: unknown;
954
+ sections: string[];
955
+ }) => Promise<{
956
+ ok: boolean;
957
+ sections: Record<string, {
958
+ skipped: number;
959
+ updated: number;
960
+ errors: string[];
961
+ created: number;
962
+ fanout?: {
963
+ mode: "local-only";
964
+ note: string;
965
+ } | {
966
+ error: string | null;
967
+ op: string;
968
+ reachable: boolean;
969
+ local_only: boolean;
970
+ results: {
971
+ error: string | null;
972
+ origin: string;
973
+ outcome: "failed" | "applied" | "missing" | "departed" | "timed_out";
974
+ detail: string | null;
975
+ payload?: unknown;
976
+ }[];
977
+ mode: "fleet";
978
+ } | {
979
+ error: string | null;
980
+ op: string;
981
+ reachable: boolean;
982
+ local_only: boolean;
983
+ results: {
984
+ error: string | null;
985
+ origin: string;
986
+ outcome: "failed" | "applied" | "missing" | "departed" | "timed_out";
987
+ detail: string | null;
988
+ payload?: unknown;
989
+ }[];
990
+ mode: "unreachable";
991
+ } | undefined;
992
+ new_api_keys?: {
993
+ description: string;
994
+ user_id: string;
995
+ api_key: string;
996
+ }[] | undefined;
997
+ }>;
998
+ }>;
999
+ readonly listSchedules: (signal?: AbortSignal) => Promise<import("zod").objectOutputType<{
1000
+ name: import("zod").ZodString;
1001
+ enabled: import("zod").ZodOptional<import("zod").ZodBoolean>;
1002
+ schedule: import("zod").ZodOptional<import("zod").ZodType<unknown, import("zod").ZodTypeDef, unknown>>;
1003
+ target: import("zod").ZodOptional<import("zod").ZodType<unknown, import("zod").ZodTypeDef, unknown>>;
1004
+ args: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodType<unknown, import("zod").ZodTypeDef, unknown>, "many">>;
1005
+ kwargs: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodType<unknown, import("zod").ZodTypeDef, unknown>>>;
1006
+ }, import("zod").ZodTypeAny, "passthrough">[]>;
1007
+ readonly getServerDateTime: (signal?: AbortSignal) => Promise<import("zod").objectOutputType<{
1008
+ utc: import("zod").ZodType<unknown, import("zod").ZodTypeDef, unknown>;
1009
+ local: import("zod").ZodOptional<import("zod").ZodType<unknown, import("zod").ZodTypeDef, unknown>>;
1010
+ system: import("zod").ZodOptional<import("zod").ZodType<unknown, import("zod").ZodTypeDef, unknown>>;
1011
+ }, import("zod").ZodTypeAny, "passthrough">>;
1012
+ readonly addSchedule: (body: {
1013
+ tool_name: string;
1014
+ tool_kwargs: Record<string, unknown>;
1015
+ schedule_kwargs: Record<string, unknown>;
1016
+ }) => Promise<unknown>;
1017
+ readonly deleteSchedule: (name: string) => Promise<unknown>;
1018
+ readonly getObservabilityMetrics: (params?: import("@tai42/api-client").MetricsQuery, signal?: AbortSignal) => Promise<{
1019
+ summary: {
1020
+ totalRuns: number;
1021
+ totalCost: number;
1022
+ totalTokens: number;
1023
+ averageLatencyMs: number;
1024
+ avgCostPerRun: number;
1025
+ avgTokensPerRun: number;
1026
+ timeToFirstTokenMs: number | null;
1027
+ };
1028
+ timeSeries: {
1029
+ totalTokens: number;
1030
+ bucket: string | null;
1031
+ runs: number;
1032
+ cost: number;
1033
+ avgLatencyMs: number;
1034
+ }[];
1035
+ byModel: {
1036
+ model: string;
1037
+ totalTokens: number;
1038
+ cost: number;
1039
+ avgLatencyMs: number;
1040
+ calls: number;
1041
+ }[];
1042
+ granularity: "hour" | "day" | "week";
1043
+ }>;
1044
+ readonly listRuns: (params?: import("@tai42/api-client").RunsQuery, signal?: AbortSignal) => Promise<{
1045
+ items: {
1046
+ status: "error" | "success";
1047
+ model: string | null;
1048
+ tags: string[];
1049
+ id: string;
1050
+ totalTokens: number | null;
1051
+ cost: number | null;
1052
+ traceId: string;
1053
+ createdAt: string | null;
1054
+ latencyMs: number | null;
1055
+ fetchError: string | null;
1056
+ inputPreview?: unknown;
1057
+ outputPreview?: unknown;
1058
+ }[];
1059
+ page: number;
1060
+ nextPage: number | null;
1061
+ }>;
1062
+ readonly getRunTrace: (traceId: string, signal?: AbortSignal) => Promise<{
1063
+ tags: string[];
1064
+ totalCost: number | null;
1065
+ traceId: string;
1066
+ fetchError: string | null;
1067
+ timestamp: string | null;
1068
+ availability: "partial" | "unavailable" | "full";
1069
+ spans: {
1070
+ name: string | null;
1071
+ type: string | null;
1072
+ model: string | null;
1073
+ id: string;
1074
+ traceId: string | null;
1075
+ parentId: string | null;
1076
+ level: string | null;
1077
+ statusMessage: string | null;
1078
+ start: string | null;
1079
+ end: string | null;
1080
+ nodeId: string | null;
1081
+ input?: unknown;
1082
+ output?: unknown;
1083
+ usage?: unknown;
1084
+ metadata?: unknown;
1085
+ }[];
1086
+ input?: unknown;
1087
+ output?: unknown;
1088
+ metadata?: unknown;
1089
+ }>;
1090
+ readonly exportTrace: (traceId: string, signal?: AbortSignal) => Promise<Blob>;
1091
+ readonly exportRuns: (params: import("@tai42/api-client").RunsQuery & {
1092
+ format: "csv" | "json";
1093
+ }, signal?: AbortSignal) => Promise<Blob>;
1094
+ readonly searchMarketplace: (query?: import("@tai42/api-client").MarketplaceSearchQuery, signal?: AbortSignal) => Promise<{
1095
+ items: {
1096
+ name: string;
1097
+ description: string;
1098
+ tags: string[];
1099
+ display_name: string | null;
1100
+ icon_url: string | null;
1101
+ item: {
1102
+ name: string;
1103
+ description: string;
1104
+ tags: string[];
1105
+ kind: string;
1106
+ };
1107
+ ref: string;
1108
+ namespace: string;
1109
+ package: string;
1110
+ categories: string[];
1111
+ trust_tier: string;
1112
+ pricing: string;
1113
+ latest_version: string | null;
1114
+ downloads: number;
1115
+ updated_at: string;
1116
+ }[];
1117
+ total: number;
1118
+ page: number;
1119
+ page_size: number;
1120
+ }>;
1121
+ readonly getMarketplacePlugin: (namespace: string, name: string, signal?: AbortSignal) => Promise<{
1122
+ name: string;
1123
+ description: string;
1124
+ tags: string[];
1125
+ display_name: string | null;
1126
+ icon_url: string | null;
1127
+ versions: {
1128
+ status: string;
1129
+ version: string;
1130
+ contract_range: string | null;
1131
+ published_at: string | null;
1132
+ }[];
1133
+ namespace: string;
1134
+ package: string;
1135
+ categories: string[];
1136
+ trust_tier: string;
1137
+ pricing: string;
1138
+ downloads: number;
1139
+ readme_md: string | null;
1140
+ license: string | null;
1141
+ homepage_url: string | null;
1142
+ repository_url: string | null;
1143
+ latest: {
1144
+ status: string;
1145
+ items: {
1146
+ name: string;
1147
+ description: string;
1148
+ tags: string[];
1149
+ kind: string;
1150
+ }[];
1151
+ version: string;
1152
+ contract_range: string | null;
1153
+ published_at: string | null;
1154
+ } | null;
1155
+ }>;
1156
+ readonly listMarketplaceCategories: (signal?: AbortSignal) => Promise<string[]>;
1157
+ readonly listInstalledMarketplacePlugins: (signal?: AbortSignal) => Promise<{
1158
+ version: string;
1159
+ ref: string;
1160
+ latest: string | null;
1161
+ source: string;
1162
+ installed_at: string;
1163
+ update_available: boolean;
1164
+ missing_upstream: boolean;
1165
+ }[]>;
1166
+ readonly installMarketplacePlugin: (body: import("@tai42/api-client").MarketplaceInstallBody) => Promise<{
1167
+ version: string;
1168
+ ref: string;
1169
+ advisories: {
1170
+ created_at: string;
1171
+ id: number;
1172
+ summary: string;
1173
+ listing: string;
1174
+ affected_versions: string;
1175
+ severity: string;
1176
+ withdrawn_at: string | null;
1177
+ }[];
1178
+ notes: string[];
1179
+ }>;
1180
+ readonly uninstallMarketplacePlugin: (body: import("@tai42/api-client").MarketplaceUninstallBody) => Promise<{
1181
+ ref: string;
1182
+ notes: string[];
1183
+ uninstalled: true;
1184
+ }>;
1185
+ readonly updateMarketplacePlugin: (body: import("@tai42/api-client").MarketplaceInstallBody) => Promise<{
1186
+ version: string;
1187
+ ref: string;
1188
+ advisories: {
1189
+ created_at: string;
1190
+ id: number;
1191
+ summary: string;
1192
+ listing: string;
1193
+ affected_versions: string;
1194
+ severity: string;
1195
+ withdrawn_at: string | null;
1196
+ }[];
1197
+ notes: string[];
1198
+ }>;
1199
+ readonly getMarketplaceAdvisories: (signal?: AbortSignal) => Promise<{
1200
+ advisories: {
1201
+ created_at: string;
1202
+ id: number;
1203
+ summary: string;
1204
+ listing: string;
1205
+ affected_versions: string;
1206
+ severity: string;
1207
+ withdrawn_at: string | null;
1208
+ }[];
1209
+ fetched_at: string;
1210
+ }>;
1211
+ readonly getHealth: (signal?: AbortSignal) => Promise<string>;
1212
+ readonly getSystemKinds: (signal?: AbortSignal) => Promise<{
1213
+ kind: string;
1214
+ detail: string;
1215
+ state: "active" | "default" | "off";
1216
+ plugin: string | null;
1217
+ }[]>;
1218
+ readonly streamInteractions: (signal?: AbortSignal) => Promise<AsyncGenerator<import("@tai42/api-client").SseFrame, any, any>>;
1219
+ } | null>;
1220
+ export declare function useApi(): ApiClient;
1221
+ export type { ApiClient };
1222
+ //# sourceMappingURL=useApi.d.ts.map