@tai42/studio-sdk 16.0.1 → 17.1.1

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 (308) hide show
  1. package/dist/components/code-block.js +1 -1
  2. package/dist/components/code-block.js.map +1 -1
  3. package/dist/components/confirm-dialog.js +1 -1
  4. package/dist/components/confirm-dialog.js.map +1 -1
  5. package/dist/components/copy-field.js +1 -1
  6. package/dist/components/copy-field.js.map +1 -1
  7. package/dist/components/date-range-picker.d.ts.map +1 -1
  8. package/dist/components/date-range-picker.js.map +1 -1
  9. package/dist/components/dialog.d.ts.map +1 -1
  10. package/dist/components/dialog.js.map +1 -1
  11. package/dist/components/dirty-guard.d.ts.map +1 -1
  12. package/dist/components/dirty-guard.js +1 -1
  13. package/dist/components/dirty-guard.js.map +1 -1
  14. package/dist/components/explorer-body.d.ts +1 -1
  15. package/dist/components/explorer-body.d.ts.map +1 -1
  16. package/dist/components/explorer-body.js +1 -1
  17. package/dist/components/explorer-body.js.map +1 -1
  18. package/dist/components/explorer-view.d.ts +1 -1
  19. package/dist/components/explorer-view.d.ts.map +1 -1
  20. package/dist/components/explorer-view.js +5 -5
  21. package/dist/components/explorer-view.js.map +1 -1
  22. package/dist/components/extension-combo-builder.d.ts +1 -1
  23. package/dist/components/extension-combo-builder.d.ts.map +1 -1
  24. package/dist/components/extension-combo-builder.js +1 -38
  25. package/dist/components/extension-combo-builder.js.map +1 -1
  26. package/dist/components/extension-combo-parts.d.ts +1 -1
  27. package/dist/components/extension-combo-parts.d.ts.map +1 -1
  28. package/dist/components/extension-combo-parts.js +0 -5
  29. package/dist/components/extension-combo-parts.js.map +1 -1
  30. package/dist/components/field.d.ts +8 -0
  31. package/dist/components/field.d.ts.map +1 -1
  32. package/dist/components/field.js +0 -8
  33. package/dist/components/field.js.map +1 -1
  34. package/dist/components/fleet-report.d.ts +1 -1
  35. package/dist/components/fleet-report.d.ts.map +1 -1
  36. package/dist/components/fleet-report.js.map +1 -1
  37. package/dist/components/folder-nav.d.ts.map +1 -1
  38. package/dist/components/folder-nav.js +1 -1
  39. package/dist/components/folder-nav.js.map +1 -1
  40. package/dist/components/form-dialog.d.ts.map +1 -1
  41. package/dist/components/form-dialog.js +1 -1
  42. package/dist/components/form-dialog.js.map +1 -1
  43. package/dist/components/icons/index.d.ts +5 -5
  44. package/dist/components/icons/index.d.ts.map +1 -1
  45. package/dist/components/icons/index.js +37 -4
  46. package/dist/components/icons/index.js.map +1 -1
  47. package/dist/components/icons/nav-map.js +1 -1
  48. package/dist/components/icons/nav-map.js.map +1 -1
  49. package/dist/components/inputs.js.map +1 -1
  50. package/dist/components/json-diff.js +1 -1
  51. package/dist/components/json-diff.js.map +1 -1
  52. package/dist/components/json-tree-nodes.d.ts +5 -0
  53. package/dist/components/json-tree-nodes.d.ts.map +1 -1
  54. package/dist/components/json-tree-nodes.js +2 -7
  55. package/dist/components/json-tree-nodes.js.map +1 -1
  56. package/dist/components/json-tree.d.ts +20 -0
  57. package/dist/components/json-tree.d.ts.map +1 -1
  58. package/dist/components/json-tree.js +4 -24
  59. package/dist/components/json-tree.js.map +1 -1
  60. package/dist/components/markdown.js.map +1 -1
  61. package/dist/components/page-fill.d.ts.map +1 -1
  62. package/dist/components/page-fill.js.map +1 -1
  63. package/dist/components/radio-group.d.ts.map +1 -1
  64. package/dist/components/radio-group.js.map +1 -1
  65. package/dist/components/scroll-region.d.ts +24 -0
  66. package/dist/components/scroll-region.d.ts.map +1 -1
  67. package/dist/components/scroll-region.js +3 -27
  68. package/dist/components/scroll-region.js.map +1 -1
  69. package/dist/components/table.d.ts +1 -1
  70. package/dist/components/table.d.ts.map +1 -1
  71. package/dist/components/tags.d.ts.map +1 -1
  72. package/dist/components/tags.js +1 -1
  73. package/dist/components/tags.js.map +1 -1
  74. package/dist/components/templated-text-field.d.ts +1 -1
  75. package/dist/components/templated-text-field.d.ts.map +1 -1
  76. package/dist/components/templated-text-field.js +0 -26
  77. package/dist/components/templated-text-field.js.map +1 -1
  78. package/dist/components/templated-text-kwargs-editor.d.ts.map +1 -1
  79. package/dist/components/templated-text-kwargs-editor.js +2 -2
  80. package/dist/components/templated-text-kwargs-editor.js.map +1 -1
  81. package/dist/components/templated-text-source.d.ts +1 -1
  82. package/dist/components/templated-text-source.d.ts.map +1 -1
  83. package/dist/components/templated-text-source.js +2 -2
  84. package/dist/components/templated-text-source.js.map +1 -1
  85. package/dist/components/version-history-panel.d.ts.map +1 -1
  86. package/dist/components/version-history-panel.js.map +1 -1
  87. package/dist/components/view-toggle.d.ts.map +1 -1
  88. package/dist/components/view-toggle.js.map +1 -1
  89. package/dist/element-slot.d.ts +11 -0
  90. package/dist/element-slot.d.ts.map +1 -1
  91. package/dist/element-slot.js +0 -11
  92. package/dist/element-slot.js.map +1 -1
  93. package/dist/hooks/interactions-connection.d.ts +1 -1
  94. package/dist/hooks/interactions-connection.d.ts.map +1 -1
  95. package/dist/hooks/interactions-connection.js.map +1 -1
  96. package/dist/hooks/useApi.d.ts +97 -14
  97. package/dist/hooks/useApi.d.ts.map +1 -1
  98. package/dist/hooks/useApi.js +0 -11
  99. package/dist/hooks/useApi.js.map +1 -1
  100. package/dist/hooks/useAuth.d.ts +6 -0
  101. package/dist/hooks/useAuth.d.ts.map +1 -1
  102. package/dist/hooks/useAuth.js +0 -6
  103. package/dist/hooks/useAuth.js.map +1 -1
  104. package/dist/hooks/useCapabilities.d.ts +18 -2
  105. package/dist/hooks/useCapabilities.d.ts.map +1 -1
  106. package/dist/hooks/useCapabilities.js +1 -17
  107. package/dist/hooks/useCapabilities.js.map +1 -1
  108. package/dist/hooks/useSse.d.ts +31 -0
  109. package/dist/hooks/useSse.d.ts.map +1 -1
  110. package/dist/hooks/useSse.js +2 -33
  111. package/dist/hooks/useSse.js.map +1 -1
  112. package/dist/hooks/useSystemKinds.d.ts +1 -1
  113. package/dist/hooks/useSystemKinds.d.ts.map +1 -1
  114. package/dist/hooks/useSystemKinds.js +0 -18
  115. package/dist/hooks/useSystemKinds.js.map +1 -1
  116. package/dist/hooks/useTheme.d.ts +15 -0
  117. package/dist/hooks/useTheme.d.ts.map +1 -1
  118. package/dist/hooks/useTheme.js +0 -15
  119. package/dist/hooks/useTheme.js.map +1 -1
  120. package/dist/hooks/useToolDisplayNames.d.ts +0 -14
  121. package/dist/hooks/useToolDisplayNames.d.ts.map +1 -1
  122. package/dist/hooks/useToolDisplayNames.js +0 -14
  123. package/dist/hooks/useToolDisplayNames.js.map +1 -1
  124. package/dist/host.d.ts +3 -3
  125. package/dist/host.d.ts.map +1 -1
  126. package/dist/host.js +2 -9
  127. package/dist/host.js.map +1 -1
  128. package/dist/index.d.ts +103 -103
  129. package/dist/index.d.ts.map +1 -1
  130. package/dist/index.js +49 -62
  131. package/dist/index.js.map +1 -1
  132. package/dist/navigation/app-link.d.ts.map +1 -1
  133. package/dist/navigation/app-link.js.map +1 -1
  134. package/dist/navigation/context.d.ts.map +1 -1
  135. package/dist/navigation/context.js.map +1 -1
  136. package/dist/navigation/index.d.ts +4 -4
  137. package/dist/navigation/index.d.ts.map +1 -1
  138. package/dist/navigation/index.js +1 -1
  139. package/dist/navigation/index.js.map +1 -1
  140. package/dist/navigation/use-back-forward-guard.d.ts +7 -0
  141. package/dist/navigation/use-back-forward-guard.d.ts.map +1 -1
  142. package/dist/navigation/use-back-forward-guard.js +0 -7
  143. package/dist/navigation/use-back-forward-guard.js.map +1 -1
  144. package/dist/navigation/use-search-commit.d.ts.map +1 -1
  145. package/dist/navigation/use-search-commit.js.map +1 -1
  146. package/dist/plugin/host-state.d.ts.map +1 -1
  147. package/dist/plugin/host-state.js.map +1 -1
  148. package/dist/schema-editor/SchemaEditor.d.ts.map +1 -1
  149. package/dist/schema-editor/SchemaEditor.js.map +1 -1
  150. package/dist/schema-editor/index.d.ts +3 -3
  151. package/dist/schema-editor/index.d.ts.map +1 -1
  152. package/dist/schema-editor/index.js +1 -6
  153. package/dist/schema-editor/index.js.map +1 -1
  154. package/dist/schema-form/SecretRefField.d.ts +16 -0
  155. package/dist/schema-form/SecretRefField.d.ts.map +1 -1
  156. package/dist/schema-form/SecretRefField.js +0 -16
  157. package/dist/schema-form/SecretRefField.js.map +1 -1
  158. package/dist/schema-form/classify.d.ts +9 -0
  159. package/dist/schema-form/classify.d.ts.map +1 -1
  160. package/dist/schema-form/classify.js +0 -9
  161. package/dist/schema-form/classify.js.map +1 -1
  162. package/dist/schema-form/context.d.ts +6 -0
  163. package/dist/schema-form/context.d.ts.map +1 -1
  164. package/dist/schema-form/context.js +0 -6
  165. package/dist/schema-form/context.js.map +1 -1
  166. package/dist/schema-form/field-group.d.ts +6 -0
  167. package/dist/schema-form/field-group.d.ts.map +1 -1
  168. package/dist/schema-form/field-group.js +0 -6
  169. package/dist/schema-form/field-group.js.map +1 -1
  170. package/dist/schema-form/field-node.d.ts.map +1 -1
  171. package/dist/schema-form/field-node.js.map +1 -1
  172. package/dist/schema-form/index.d.ts +8 -8
  173. package/dist/schema-form/index.d.ts.map +1 -1
  174. package/dist/schema-form/index.js +3 -34
  175. package/dist/schema-form/index.js.map +1 -1
  176. package/dist/schema-form/json-field.d.ts +19 -0
  177. package/dist/schema-form/json-field.d.ts.map +1 -1
  178. package/dist/schema-form/json-field.js +0 -19
  179. package/dist/schema-form/json-field.js.map +1 -1
  180. package/dist/schema-form/media-field.d.ts.map +1 -1
  181. package/dist/schema-form/media-field.js +2 -2
  182. package/dist/schema-form/media-field.js.map +1 -1
  183. package/dist/schema-form/record-field.d.ts +12 -0
  184. package/dist/schema-form/record-field.d.ts.map +1 -1
  185. package/dist/schema-form/record-field.js +1 -13
  186. package/dist/schema-form/record-field.js.map +1 -1
  187. package/dist/schema-form/string-field.d.ts.map +1 -1
  188. package/dist/schema-form/string-field.js +1 -1
  189. package/dist/schema-form/string-field.js.map +1 -1
  190. package/dist/schema-form/union-field.d.ts.map +1 -1
  191. package/dist/schema-form/union-field.js.map +1 -1
  192. package/dist/schema-form/union.d.ts +7 -0
  193. package/dist/schema-form/union.d.ts.map +1 -1
  194. package/dist/schema-form/union.js +0 -7
  195. package/dist/schema-form/union.js.map +1 -1
  196. package/dist/schema-form/validate.d.ts.map +1 -1
  197. package/dist/schema-form/validate.js +1 -1
  198. package/dist/schema-form/validate.js.map +1 -1
  199. package/dist/state-binding/AdapterMapping.d.ts.map +1 -1
  200. package/dist/state-binding/AdapterMapping.js +0 -0
  201. package/dist/state-binding/AdapterMapping.js.map +1 -1
  202. package/dist/state-binding/BindingJqField.d.ts.map +1 -1
  203. package/dist/state-binding/BindingJqField.js +2 -2
  204. package/dist/state-binding/BindingJqField.js.map +1 -1
  205. package/dist/state-binding/InputInjectionRow.d.ts.map +1 -1
  206. package/dist/state-binding/InputInjectionRow.js +3 -3
  207. package/dist/state-binding/InputInjectionRow.js.map +1 -1
  208. package/dist/state-binding/StateAttachRow.d.ts.map +1 -1
  209. package/dist/state-binding/StateAttachRow.js +5 -5
  210. package/dist/state-binding/StateAttachRow.js.map +1 -1
  211. package/dist/state-binding/StateBindingSection.d.ts.map +1 -1
  212. package/dist/state-binding/StateBindingSection.js.map +1 -1
  213. package/dist/state-binding/SubjectScopeFields.d.ts.map +1 -1
  214. package/dist/state-binding/SubjectScopeFields.js.map +1 -1
  215. package/dist/state-binding/UpdateRow.d.ts.map +1 -1
  216. package/dist/state-binding/UpdateRow.js +2 -2
  217. package/dist/state-binding/UpdateRow.js.map +1 -1
  218. package/dist/state-binding/adapter-mapping-row.d.ts +1 -1
  219. package/dist/state-binding/adapter-mapping-row.d.ts.map +1 -1
  220. package/dist/state-binding/adapter-mapping-row.js +3 -3
  221. package/dist/state-binding/adapter-mapping-row.js.map +1 -1
  222. package/dist/state-binding/index.d.ts +21 -21
  223. package/dist/state-binding/index.d.ts.map +1 -1
  224. package/dist/state-binding/index.js +9 -15
  225. package/dist/state-binding/index.js.map +1 -1
  226. package/dist/state-binding/templated-text-catalog.d.ts.map +1 -1
  227. package/dist/state-binding/templated-text-catalog.js.map +1 -1
  228. package/dist/state-binding/types.d.ts +2 -2
  229. package/dist/state-binding/types.d.ts.map +1 -1
  230. package/dist/structured-output/StructuredOutput.d.ts.map +1 -1
  231. package/dist/structured-output/StructuredOutput.js +1 -1
  232. package/dist/structured-output/StructuredOutput.js.map +1 -1
  233. package/package.json +2 -2
  234. package/src/components/code-block.tsx +1 -1
  235. package/src/components/confirm-dialog.tsx +1 -1
  236. package/src/components/copy-field.tsx +1 -1
  237. package/src/components/date-range-picker.tsx +1 -1
  238. package/src/components/dialog.tsx +1 -1
  239. package/src/components/dirty-guard.tsx +3 -3
  240. package/src/components/explorer-body.tsx +3 -3
  241. package/src/components/explorer-view.tsx +9 -9
  242. package/src/components/extension-combo-builder.tsx +2 -3
  243. package/src/components/extension-combo-parts.tsx +1 -2
  244. package/src/components/field.tsx +1 -1
  245. package/src/components/fleet-report.tsx +3 -3
  246. package/src/components/folder-nav.tsx +2 -2
  247. package/src/components/form-dialog.tsx +2 -2
  248. package/src/components/icons/index.ts +38 -38
  249. package/src/components/icons/nav-map.ts +11 -11
  250. package/src/components/inputs.tsx +1 -1
  251. package/src/components/json-diff.tsx +1 -1
  252. package/src/components/json-tree-nodes.tsx +3 -3
  253. package/src/components/json-tree.tsx +7 -7
  254. package/src/components/markdown.tsx +2 -2
  255. package/src/components/page-fill.tsx +1 -1
  256. package/src/components/radio-group.tsx +1 -1
  257. package/src/components/scroll-region.tsx +11 -10
  258. package/src/components/table.tsx +1 -1
  259. package/src/components/tags.tsx +2 -2
  260. package/src/components/templated-text-field.tsx +3 -4
  261. package/src/components/templated-text-kwargs-editor.tsx +3 -3
  262. package/src/components/templated-text-source.tsx +3 -3
  263. package/src/components/version-history-panel.tsx +1 -1
  264. package/src/components/view-toggle.tsx +1 -1
  265. package/src/element-slot.ts +1 -1
  266. package/src/hooks/interactions-connection.ts +3 -3
  267. package/src/hooks/useApi.ts +1 -1
  268. package/src/hooks/useAuth.ts +1 -1
  269. package/src/hooks/useCapabilities.ts +3 -3
  270. package/src/hooks/useSse.ts +5 -5
  271. package/src/hooks/useSystemKinds.tsx +2 -2
  272. package/src/hooks/useTheme.ts +1 -1
  273. package/src/hooks/useToolDisplayNames.tsx +2 -2
  274. package/src/host.ts +7 -7
  275. package/src/index.ts +292 -292
  276. package/src/navigation/app-link.tsx +2 -2
  277. package/src/navigation/context.tsx +3 -3
  278. package/src/navigation/index.ts +14 -14
  279. package/src/navigation/use-back-forward-guard.ts +1 -1
  280. package/src/navigation/use-search-commit.ts +1 -1
  281. package/src/plugin/host-state.ts +1 -1
  282. package/src/schema-editor/SchemaEditor.tsx +1 -1
  283. package/src/schema-editor/index.ts +3 -3
  284. package/src/schema-form/SecretRefField.tsx +1 -1
  285. package/src/schema-form/classify.ts +2 -2
  286. package/src/schema-form/context.ts +1 -1
  287. package/src/schema-form/field-group.tsx +1 -1
  288. package/src/schema-form/field-node.tsx +1 -1
  289. package/src/schema-form/index.ts +10 -10
  290. package/src/schema-form/json-field.tsx +1 -1
  291. package/src/schema-form/media-field.tsx +3 -3
  292. package/src/schema-form/record-field.tsx +2 -2
  293. package/src/schema-form/string-field.tsx +2 -2
  294. package/src/schema-form/union-field.tsx +2 -2
  295. package/src/schema-form/union.ts +1 -1
  296. package/src/schema-form/validate.ts +2 -2
  297. package/src/state-binding/AdapterMapping.tsx +0 -0
  298. package/src/state-binding/BindingJqField.tsx +3 -3
  299. package/src/state-binding/InputInjectionRow.tsx +4 -4
  300. package/src/state-binding/StateAttachRow.tsx +7 -7
  301. package/src/state-binding/StateBindingSection.tsx +1 -1
  302. package/src/state-binding/SubjectScopeFields.tsx +1 -1
  303. package/src/state-binding/UpdateRow.tsx +3 -3
  304. package/src/state-binding/adapter-mapping-row.tsx +4 -4
  305. package/src/state-binding/index.ts +43 -43
  306. package/src/state-binding/templated-text-catalog.ts +0 -1
  307. package/src/state-binding/types.ts +2 -2
  308. package/src/structured-output/StructuredOutput.tsx +1 -1
@@ -31,54 +31,54 @@
31
31
  * none of it; the map is exhaustive over {@link RouteToken} regardless, so a new
32
32
  * route fails the build here until it has a mark.
33
33
  */
34
- export type { IconProps, IconComponent } from './icon-frame';
35
34
  export {
36
- DashboardIcon,
37
- ToolsIcon,
38
- AgentsIcon,
39
- PresetsIcon,
40
- ExtensionsIcon,
41
- TemplatesIcon,
42
- ConnectorsIcon,
43
- HooksIcon,
44
- StorageIcon,
45
- DatabaseIcon,
46
- SchedulingIcon,
47
- InteractionsIcon,
48
- NotificationsIcon,
49
- ConversationsIcon,
50
- MarketplaceIcon,
51
- ManifestIcon,
52
- SettingsIcon,
53
- SystemIcon,
54
- ServedEndpointsIcon,
55
- PluginIcon,
56
- } from './nav-marks';
57
- export {
58
- SearchIcon,
59
- SignOutIcon,
60
- MenuIcon,
61
- CloseIcon,
62
- FilterIcon,
35
+ ArrowDownIcon,
63
36
  ArrowLeftIcon,
64
37
  ArrowUpIcon,
65
- ArrowDownIcon,
38
+ CheckIcon,
66
39
  ChevronDownIcon,
67
40
  ChevronRightIcon,
68
- CheckIcon,
69
- MinusIcon,
70
- PlusIcon,
71
- EditIcon,
72
- UnplugIcon,
41
+ CloseIcon,
73
42
  CopyIcon,
43
+ EditIcon,
74
44
  ExternalLinkIcon,
75
- SortAscIcon,
76
- SortDescIcon,
77
45
  EyeIcon,
78
46
  EyeOffIcon,
47
+ FilterIcon,
79
48
  FolderIcon,
80
49
  GridIcon,
50
+ MenuIcon,
51
+ MinusIcon,
52
+ PlusIcon,
53
+ SearchIcon,
54
+ SignOutIcon,
55
+ SortAscIcon,
56
+ SortDescIcon,
57
+ UnplugIcon,
81
58
  } from './chrome-marks';
82
- export { SunIcon, MoonIcon, MonitorIcon } from './theme-marks';
83
- export { CheckCircleIcon, AlertTriangleIcon, XCircleIcon, PendingIcon } from './status-marks';
59
+ export type { IconComponent, IconProps } from './icon-frame';
84
60
  export { NAV_ICONS } from './nav-map';
61
+ export {
62
+ AgentsIcon,
63
+ ConnectorsIcon,
64
+ ConversationsIcon,
65
+ DashboardIcon,
66
+ DatabaseIcon,
67
+ ExtensionsIcon,
68
+ HooksIcon,
69
+ InteractionsIcon,
70
+ ManifestIcon,
71
+ MarketplaceIcon,
72
+ NotificationsIcon,
73
+ PluginIcon,
74
+ PresetsIcon,
75
+ SchedulingIcon,
76
+ ServedEndpointsIcon,
77
+ SettingsIcon,
78
+ StorageIcon,
79
+ SystemIcon,
80
+ TemplatesIcon,
81
+ ToolsIcon,
82
+ } from './nav-marks';
83
+ export { AlertTriangleIcon, CheckCircleIcon, PendingIcon, XCircleIcon } from './status-marks';
84
+ export { MonitorIcon, MoonIcon, SunIcon } from './theme-marks';
@@ -6,25 +6,25 @@
6
6
  import type { RouteToken } from '../../navigation/types';
7
7
  import type { IconComponent } from './icon-frame';
8
8
  import {
9
- DashboardIcon,
10
- ToolsIcon,
11
9
  AgentsIcon,
12
- PresetsIcon,
10
+ ConnectorsIcon,
11
+ ConversationsIcon,
12
+ DashboardIcon,
13
13
  DatabaseIcon,
14
14
  ExtensionsIcon,
15
- TemplatesIcon,
16
- ConnectorsIcon,
17
- ServedEndpointsIcon,
18
15
  HooksIcon,
19
- StorageIcon,
20
- SchedulingIcon,
21
16
  InteractionsIcon,
22
- NotificationsIcon,
23
- ConversationsIcon,
24
- MarketplaceIcon,
25
17
  ManifestIcon,
18
+ MarketplaceIcon,
19
+ NotificationsIcon,
20
+ PresetsIcon,
21
+ SchedulingIcon,
22
+ ServedEndpointsIcon,
26
23
  SettingsIcon,
24
+ StorageIcon,
27
25
  SystemIcon,
26
+ TemplatesIcon,
27
+ ToolsIcon,
28
28
  } from './nav-marks';
29
29
 
30
30
  /**
@@ -40,7 +40,7 @@
40
40
  import type { AriaAttributes, InputHTMLAttributes, Ref, TextareaHTMLAttributes } from 'react';
41
41
 
42
42
  import { controlClassName, INPUT_CLASS, TEXTAREA_CLASS } from './control-styles';
43
- import { useFieldControl, type FieldControlProps } from './field';
43
+ import { type FieldControlProps, useFieldControl } from './field';
44
44
 
45
45
  /** The three attributes a `Field` and its control can both want to own. */
46
46
  interface WiredControlAttributes {
@@ -21,10 +21,10 @@
21
21
  */
22
22
  import { type ReactNode } from 'react';
23
23
 
24
+ import { isRecord } from '../guards';
24
25
  import { Badge } from './badge';
25
26
  import { JsonTree } from './json-tree';
26
27
  import { Table, TBody, TD, TH, THead, TR } from './table';
27
- import { isRecord } from '../guards';
28
28
 
29
29
  /** One leaf difference between the two JSON values. */
30
30
  export interface JsonDiffRow {
@@ -3,11 +3,12 @@
3
3
  * and a node's paged children. State is read from the tree context; layout uses
4
4
  * the code-block rhythm.
5
5
  */
6
- import { useEffect, useRef, useState } from 'react';
7
6
  import type { CSSProperties, MouseEvent as ReactMouseEvent, ReactElement } from 'react';
7
+ import { useEffect, useRef, useState } from 'react';
8
8
 
9
- import { CheckIcon, CopyIcon } from './icons';
10
9
  import { COPIED_LABEL, COPIED_RESET_MS } from '../hooks/useClipboardCopy';
10
+ import { CheckIcon, CopyIcon } from './icons';
11
+ import { useJsonTreeContext } from './json-tree-context';
11
12
  import {
12
13
  childPath,
13
14
  containerCount,
@@ -16,7 +17,6 @@ import {
16
17
  sliceEntries,
17
18
  } from './json-tree-model';
18
19
  import { primitiveClass, primitiveText } from './json-value-format';
19
- import { useJsonTreeContext } from './json-tree-context';
20
20
 
21
21
  /** A copy control's resting face; whichever is exposed is also its accessible name. */
22
22
  export const COPY_LABEL = 'Copy';
@@ -18,23 +18,23 @@
18
18
  * The scrolling pane IS the scrolling box, carrying the region attributes itself
19
19
  * rather than nesting a `ScrollRegion` that would add a second scroller.
20
20
  */
21
- import { useCallback, useMemo, useState } from 'react';
22
21
  import type { ReactElement } from 'react';
22
+ import { useCallback, useMemo, useState } from 'react';
23
23
 
24
- import { XCircleIcon } from './icons';
25
- import { useOverflowRegion } from './scroll-region';
26
24
  import { useClipboardCopy } from '../hooks/useClipboardCopy';
25
+ import { XCircleIcon } from './icons';
26
+ import { JsonTreeContext, type JsonTreeContextValue } from './json-tree-context';
27
27
  import {
28
- PAGE_SIZE,
28
+ type Baseline,
29
29
  computeOpen,
30
30
  expandedOpenPaths,
31
31
  initialBaseline,
32
32
  isContainer,
33
- type Baseline,
33
+ PAGE_SIZE,
34
34
  } from './json-tree-model';
35
- import { NO_CLIPBOARD, copyFailed, serializeForCopy } from './json-value-format';
36
- import { JsonTreeContext, type JsonTreeContextValue } from './json-tree-context';
37
35
  import { COPY_LABEL, CopyButton, JsonNode } from './json-tree-nodes';
36
+ import { copyFailed, NO_CLIPBOARD, serializeForCopy } from './json-value-format';
37
+ import { useOverflowRegion } from './scroll-region';
38
38
 
39
39
  export interface JsonTreeProps {
40
40
  readonly data: unknown;
@@ -10,10 +10,10 @@
10
10
  * `![alt](url)` collapses to its `alt` text, so no source URL is fetched. Fenced
11
11
  * code goes to `CodeBlock`, itself text-only.
12
12
  */
13
- import { useMemo, type ReactNode } from 'react';
13
+ import { type ReactNode, useMemo } from 'react';
14
14
 
15
15
  import { CodeBlock } from './code-block';
16
- import { parseMarkdown, type HeadingLevel, type MarkdownBlock } from './markdown-blocks';
16
+ import { type HeadingLevel, type MarkdownBlock, parseMarkdown } from './markdown-blocks';
17
17
  import { renderInline } from './markdown-inline';
18
18
 
19
19
  export type { HeadingLevel, MarkdownBlock } from './markdown-blocks';
@@ -11,7 +11,7 @@
11
11
  * the modifier survives a route transition (old page unmounts after the new one
12
12
  * mounts) and clears exactly when the last fill page leaves.
13
13
  */
14
- import { createContext, useContext, useEffect, useMemo, useState, type ReactNode } from 'react';
14
+ import { createContext, type ReactNode, useContext, useEffect, useMemo, useState } from 'react';
15
15
 
16
16
  /** The registrar a fill page acquires against; each acquire returns its own
17
17
  * one-shot release, so double-release is inert. */
@@ -22,8 +22,8 @@
22
22
  * rather than being pinned to one.
23
23
  */
24
24
  import * as RadixRadioGroup from '@radix-ui/react-radio-group';
25
- import { useId } from 'react';
26
25
  import type { ReactNode } from 'react';
26
+ import { useId } from 'react';
27
27
 
28
28
  import { useFieldControl } from './field';
29
29
 
@@ -22,26 +22,27 @@
22
22
  * mounts later than the hook (a README that arrives with the second render) and
23
23
  * would never notice one being swapped for another.
24
24
  */
25
- import { useCallback, useState } from 'react';
26
25
  import type { CSSProperties, ReactNode, Ref, RefCallback } from 'react';
26
+ import { useCallback, useState } from 'react';
27
+
27
28
  import {
29
+ holdContentTarget,
30
+ holdResizeTarget,
31
+ releaseContentTarget,
32
+ releaseResizeTarget,
33
+ } from './observer-registry';
34
+ import {
35
+ clearScrollRegionAttributes,
28
36
  needsRegion,
29
37
  refreshRegions,
30
- clearScrollRegionAttributes,
31
38
  SCROLL_REGION_CLASS,
32
39
  type TrackedSurface,
33
40
  } from './overflow-measure';
34
- import {
35
- holdResizeTarget,
36
- releaseResizeTarget,
37
- holdContentTarget,
38
- releaseContentTarget,
39
- } from './observer-registry';
40
41
  import {
41
42
  DEFAULT_PROSE_LABELS,
42
- MAX_PROSE_REGIONS,
43
- labelledProseSurfaces,
44
43
  ensureScrollWrapper,
44
+ labelledProseSurfaces,
45
+ MAX_PROSE_REGIONS,
45
46
  uniquelyNamed,
46
47
  } from './prose-regions';
47
48
 
@@ -13,7 +13,7 @@
13
13
  * so a caller that has to measure or scroll a cell is not forced back to a raw
14
14
  * `<td>` and out of the system.
15
15
  */
16
- import type { HTMLAttributes, Ref, ReactNode, TdHTMLAttributes, ThHTMLAttributes } from 'react';
16
+ import type { HTMLAttributes, ReactNode, Ref, TdHTMLAttributes, ThHTMLAttributes } from 'react';
17
17
 
18
18
  export interface TableProps extends HTMLAttributes<HTMLTableElement> {
19
19
  readonly children?: ReactNode;
@@ -11,11 +11,11 @@
11
11
  * version-history panel's per-version tag editor) needs the same control; a single
12
12
  * canonical copy keeps the affordance identical everywhere.
13
13
  */
14
- import { useState, type CSSProperties, type ReactNode } from 'react';
14
+ import { type CSSProperties, type ReactNode, useState } from 'react';
15
15
 
16
16
  import { CloseIcon } from './icons';
17
- import { Button } from './primitives';
18
17
  import { TextInput } from './inputs';
18
+ import { Button } from './primitives';
19
19
 
20
20
  /** A tag and its remove control read as one unit, tighter than the row default. */
21
21
  const tagGroupStyle: CSSProperties = { gap: 'var(--tai-space-1)' };
@@ -24,17 +24,16 @@
24
24
  * its kwargs, never converted or dropped. See `storageAbsent` /
25
25
  * `storagePresenceLoading`.
26
26
  */
27
- import { useState, type ReactNode } from 'react';
28
-
29
27
  import type { TemplatedText } from '@tai42/api-client';
28
+ import { type ReactNode, useState } from 'react';
30
29
 
31
30
  import { Field } from './field';
32
31
  import {
33
32
  initialMode,
34
- objectToRows,
35
- templatedValueFrom,
36
33
  type KwargRow,
37
34
  type Mode,
35
+ objectToRows,
36
+ templatedValueFrom,
38
37
  } from './templated-text-kwargs';
39
38
  import { KwargsEditor, ReadOnlyKwargs } from './templated-text-kwargs-editor';
40
39
  import { TemplatedTextSource } from './templated-text-source';
@@ -3,11 +3,11 @@
3
3
  * (`KwargsEditor`) for editable values, and the read-only listing
4
4
  * (`ReadOnlyKwargs`) shown beside a read-only stored id.
5
5
  */
6
- import { useState, type ReactNode } from 'react';
6
+ import { type ReactNode, useState } from 'react';
7
7
 
8
- import { Button } from './primitives';
9
- import { TextInput } from './inputs';
10
8
  import { CloseIcon } from './icons';
9
+ import { TextInput } from './inputs';
10
+ import { Button } from './primitives';
11
11
  import type { KwargRow } from './templated-text-kwargs';
12
12
 
13
13
  /** The add/remove kwargs editor, revealed on demand and open when kwargs already exist. */
@@ -6,13 +6,13 @@
6
6
  */
7
7
  import type { ReactNode } from 'react';
8
8
 
9
- import { ErrorState, Skeleton } from './primitives';
10
9
  import { Field } from './field';
10
+ import { Textarea } from './inputs';
11
+ import { ErrorState, Skeleton } from './primitives';
11
12
  import { RadioGroup } from './radio-group';
12
13
  import { Select } from './select';
13
- import { Textarea } from './inputs';
14
- import type { Mode } from './templated-text-kwargs';
15
14
  import type { TemplatedTextInlineProps, TemplatedTextTemplateOption } from './templated-text-field';
15
+ import type { Mode } from './templated-text-kwargs';
16
16
 
17
17
  /** A labeled read-only reference to a stored template id, plus the note that
18
18
  * stored templates are unavailable here — NOT an editable field. */
@@ -25,7 +25,7 @@
25
25
  * machine voice (`tai-table-id` / `tai-mono`). The table itself sits in a
26
26
  * `ScrollRegion` so a narrow viewport scrolls it instead of the page.
27
27
  */
28
- import { useEffect, useRef, useState, type ReactNode } from 'react';
28
+ import { type ReactNode, useEffect, useRef, useState } from 'react';
29
29
 
30
30
  import { errorMessage } from '../errors';
31
31
  import { Dialog } from './dialog';
@@ -9,7 +9,7 @@
9
9
  * {@link useViewMode}. The two live in the SDK so every entity screen (and the
10
10
  * flows page) toggles identically; `EntityCardGrid` renders the card half.
11
11
  */
12
- import { useCallback, useState, type ReactNode } from 'react';
12
+ import { type ReactNode, useCallback, useState } from 'react';
13
13
 
14
14
  import { GridIcon, MenuIcon } from './icons';
15
15
  import { RadioGroup } from './radio-group';
@@ -9,8 +9,8 @@
9
9
  * onto it: the opener renders, carries no `aria-haspopup`/`aria-expanded`/
10
10
  * `aria-controls` and no handler, and fails nothing.
11
11
  */
12
- import { Fragment } from 'react';
13
12
  import type { ReactElement } from 'react';
13
+ import { Fragment } from 'react';
14
14
 
15
15
  /** Raises when an `asChild` slot is handed a fragment. `slot` names the prop. */
16
16
  export function assertSlotElement(element: ReactElement, slot: string): void {
@@ -6,21 +6,21 @@
6
6
  * overlay reducer and republishes the merged list. React state flows in as the
7
7
  * dispatchers the hook passes; this file holds no React.
8
8
  */
9
- import type { Dispatch, RefObject, SetStateAction } from 'react';
10
9
  import type { ApiClient, Interaction } from '@tai42/api-client';
10
+ import type { Dispatch, RefObject, SetStateAction } from 'react';
11
11
 
12
12
  import { isFeatureDisabled } from '../feature-disabled';
13
13
  import {
14
14
  emptyOverlay,
15
+ type LiveOverlay,
15
16
  merge,
16
17
  overlayApplyAdd,
17
18
  overlayApplyAnswered,
18
19
  overlayApplyRemoved,
19
20
  parseAddFrame,
20
21
  parseId,
21
- sweepAnswered,
22
- type LiveOverlay,
23
22
  type StreamInteraction,
23
+ sweepAnswered,
24
24
  } from './interactions-stream';
25
25
 
26
26
  // Reconnect backoff: capped exponential with full jitter. The delay for attempt
@@ -9,8 +9,8 @@
9
9
  * runtime dependency on @tai42/api-client (the SDK imports nothing internal at
10
10
  * runtime).
11
11
  */
12
- import { createContext, useContext } from 'react';
13
12
  import type { ApiClient } from '@tai42/api-client';
13
+ import { createContext, useContext } from 'react';
14
14
 
15
15
  const ApiContext = createContext<ApiClient | null>(null);
16
16
 
@@ -4,8 +4,8 @@
4
4
  * sessionStorage. localStorage is NEVER written: the README documents the
5
5
  * XSS trade-off and why localStorage persistence is not offered.
6
6
  */
7
- import { createContext, useCallback, useContext, useMemo, useState } from 'react';
8
7
  import type { ReactNode } from 'react';
8
+ import { createContext, useCallback, useContext, useMemo, useState } from 'react';
9
9
  import { createElement } from 'react';
10
10
 
11
11
  const SESSION_KEY = 'tai-studio.apiKey';
@@ -14,6 +14,8 @@
14
14
  * `ErrorState` with `retry` in the nav region — never an optimistic full nav on
15
15
  * error. The UI fails closed exactly as the server would.
16
16
  */
17
+ import type { MeProjection } from '@tai42/api-client';
18
+ import type { ReactNode } from 'react';
17
19
  import {
18
20
  createContext,
19
21
  useCallback,
@@ -23,9 +25,7 @@ import {
23
25
  useRef,
24
26
  useState,
25
27
  } from 'react';
26
- import type { ReactNode } from 'react';
27
28
  import { createElement } from 'react';
28
- import type { MeProjection } from '@tai42/api-client';
29
29
 
30
30
  import { useApi } from './useApi';
31
31
  import { useAuth } from './useAuth';
@@ -116,7 +116,7 @@ export function useCapabilities(): CapabilityContextValue {
116
116
 
117
117
  /**
118
118
  * Whether the projection is the synthetic TOTAL projection — the admin session
119
- * (the condition-free ownerless `"*"` discriminator) and the gate-off local-dev
119
+ * (the condition-free `"*"` discriminator) and the gate-off local-dev
120
120
  * projection alike. This is `projection.admin === true` and NOTHING else: a
121
121
  * seeded editor/viewer carries `["*"]` scopes PLUS a jq fence, so keying on `"*"`
122
122
  * scopes would hand every editor/viewer the unfiltered nav and a wall of 403s on
@@ -29,19 +29,19 @@
29
29
  * `answered` is not a wire field — it is a client flag flipped on an
30
30
  * `interaction.answered` event.
31
31
  */
32
- import { useEffect, useRef, useState } from 'react';
33
32
  import type { Interaction } from '@tai42/api-client';
33
+ import { useEffect, useRef, useState } from 'react';
34
34
 
35
- import { useApi } from './useApi';
36
- import { useOnUnauthorized } from './useUnauthorized';
35
+ import { type ConnectionState, startInteractionsStream } from './interactions-connection';
37
36
  import {
38
37
  emptyOverlay,
38
+ type LiveOverlay,
39
39
  merge,
40
40
  pendingCount,
41
- type LiveOverlay,
42
41
  type StreamInteraction,
43
42
  } from './interactions-stream';
44
- import { startInteractionsStream, type ConnectionState } from './interactions-connection';
43
+ import { useApi } from './useApi';
44
+ import { useOnUnauthorized } from './useUnauthorized';
45
45
 
46
46
  export type { StreamInteraction } from './interactions-stream';
47
47
 
@@ -16,15 +16,15 @@
16
16
  * as not-off until the table is `ready`, and a failed fetch leaves every kind not-off
17
17
  * so the surface falls back to its reactive 501 handling, never a hard-failed page.
18
18
  */
19
+ import type { KindStatus } from '@tai42/api-client';
19
20
  import {
20
21
  createContext,
21
22
  createElement,
23
+ type ReactNode,
22
24
  useContext,
23
25
  useEffect,
24
26
  useState,
25
- type ReactNode,
26
27
  } from 'react';
27
- import type { KindStatus } from '@tai42/api-client';
28
28
 
29
29
  import { useApi } from './useApi';
30
30
  import { useAuth } from './useAuth';
@@ -13,6 +13,7 @@
13
13
  * storage untouched. A `'system'` preference clears any pinned choice and hands
14
14
  * the theme back to the OS.
15
15
  */
16
+ import type { ReactNode } from 'react';
16
17
  import {
17
18
  createContext,
18
19
  createElement,
@@ -22,7 +23,6 @@ import {
22
23
  useMemo,
23
24
  useState,
24
25
  } from 'react';
25
- import type { ReactNode } from 'react';
26
26
 
27
27
  export type Theme = 'light' | 'dark';
28
28
  export type ThemePreference = 'light' | 'dark' | 'system';
@@ -12,17 +12,17 @@
12
12
  * display name is cosmetic: a picker with an empty map falls back to the bare raw
13
13
  * name, never a hard-failed page.
14
14
  */
15
+ import type { ToolMetaOverlay } from '@tai42/api-client';
15
16
  import {
16
17
  createContext,
17
18
  createElement,
19
+ type ReactNode,
18
20
  useCallback,
19
21
  useContext,
20
22
  useEffect,
21
23
  useMemo,
22
24
  useState,
23
- type ReactNode,
24
25
  } from 'react';
25
- import type { ToolMetaOverlay } from '@tai42/api-client';
26
26
 
27
27
  import { useApi } from './useApi';
28
28
  import { useAuth } from './useAuth';
package/src/host.ts CHANGED
@@ -5,15 +5,15 @@
5
5
  * carries no way to forge, wipe, or enumerate the registry. Only the host bundle
6
6
  * imports this. See SECURITY.md for the trust boundary.
7
7
  */
8
- export { loadPlugin, getContributions } from './plugin/registry';
8
+ export type {
9
+ LoadedPlugin,
10
+ PluginContributionsSnapshot,
11
+ PluginLoaderState,
12
+ } from './plugin/host-state';
9
13
  export {
10
- setPluginHostState,
11
14
  getPluginHostState,
15
+ setPluginHostState,
12
16
  subscribePluginHost,
13
17
  usePluginContributions,
14
18
  } from './plugin/host-state';
15
- export type {
16
- PluginLoaderState,
17
- LoadedPlugin,
18
- PluginContributionsSnapshot,
19
- } from './plugin/host-state';
19
+ export { getContributions, loadPlugin } from './plugin/registry';