@tai42/studio-sdk 16.0.1 → 17.0.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 (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 +77 -7
  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
@@ -1,5 +1,21 @@
1
- import type { ReactNode } from 'react';
1
+ /**
2
+ * `useCapabilities` — the caller's capability projection (`GET /api/auth/me`),
3
+ * fetched once per auth flip and held as SDK state. The UI is a projection of
4
+ * this: nav, pages, and plugin loading filter on what the projection says the
5
+ * caller can reach, and the server stays the sole authority (projection ⊆ gate).
6
+ *
7
+ * A PLAIN fetch state machine (`loading` / `ready` / `failed`), NOT TanStack
8
+ * Query, and for the same reason the login page fetches its methods with plain
9
+ * `fetch`: the shell wipes the query cache around auth flips, so a
10
+ * query-cached projection would be dropped underneath the components that gate
11
+ * on it. This provider owns the projection lifecycle instead.
12
+ *
13
+ * FAILED IS LOUD AND BLOCKING: on a `/me` failure the shell renders an
14
+ * `ErrorState` with `retry` in the nav region — never an optimistic full nav on
15
+ * error. The UI fails closed exactly as the server would.
16
+ */
2
17
  import type { MeProjection } from '@tai42/api-client';
18
+ import type { ReactNode } from 'react';
3
19
  export type CapabilityState = {
4
20
  readonly status: 'loading';
5
21
  } | {
@@ -20,7 +36,7 @@ export declare function CapabilityProvider({ children }: {
20
36
  export declare function useCapabilities(): CapabilityContextValue;
21
37
  /**
22
38
  * Whether the projection is the synthetic TOTAL projection — the admin session
23
- * (the condition-free ownerless `"*"` discriminator) and the gate-off local-dev
39
+ * (the condition-free `"*"` discriminator) and the gate-off local-dev
24
40
  * projection alike. This is `projection.admin === true` and NOTHING else: a
25
41
  * seeded editor/viewer carries `["*"]` scopes PLUS a jq fence, so keying on `"*"`
26
42
  * scopes would hand every editor/viewer the unfiltered nav and a wall of 403s on
@@ -1 +1 @@
1
- {"version":3,"file":"useCapabilities.d.ts","sourceRoot":"","sources":["../../src/hooks/useCapabilities.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMtD,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAC9B;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAA;CAAE,GAC/D;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3D,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;CAC5B;AAID,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,0GA4DvE;AAED,wBAAgB,eAAe,IAAI,sBAAsB,CAMxD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,YAAY,GAAG,OAAO,CAElE;AAaD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAa7F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAKzF;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,SAAS,GAAG,OAAO,CAGlE"}
1
+ {"version":3,"file":"useCapabilities.d.ts","sourceRoot":"","sources":["../../src/hooks/useCapabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAgBvC,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAC9B;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAA;CAAE,GAC/D;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3D,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;CAC5B;AAID,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,0GA4DvE;AAED,wBAAgB,eAAe,IAAI,sBAAsB,CAMxD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,YAAY,GAAG,OAAO,CAElE;AAaD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAa7F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAKzF;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,SAAS,GAAG,OAAO,CAGlE"}
@@ -1,19 +1,3 @@
1
- /**
2
- * `useCapabilities` — the caller's capability projection (`GET /api/auth/me`),
3
- * fetched once per auth flip and held as SDK state. The UI is a projection of
4
- * this: nav, pages, and plugin loading filter on what the projection says the
5
- * caller can reach, and the server stays the sole authority (projection ⊆ gate).
6
- *
7
- * A PLAIN fetch state machine (`loading` / `ready` / `failed`), NOT TanStack
8
- * Query, and for the same reason the login page fetches its methods with plain
9
- * `fetch`: the shell wipes the query cache around auth flips, so a
10
- * query-cached projection would be dropped underneath the components that gate
11
- * on it. This provider owns the projection lifecycle instead.
12
- *
13
- * FAILED IS LOUD AND BLOCKING: on a `/me` failure the shell renders an
14
- * `ErrorState` with `retry` in the nav region — never an optimistic full nav on
15
- * error. The UI fails closed exactly as the server would.
16
- */
17
1
  import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState, } from 'react';
18
2
  import { createElement } from 'react';
19
3
  import { useApi } from './useApi';
@@ -84,7 +68,7 @@ export function useCapabilities() {
84
68
  }
85
69
  /**
86
70
  * Whether the projection is the synthetic TOTAL projection — the admin session
87
- * (the condition-free ownerless `"*"` discriminator) and the gate-off local-dev
71
+ * (the condition-free `"*"` discriminator) and the gate-off local-dev
88
72
  * projection alike. This is `projection.admin === true` and NOTHING else: a
89
73
  * seeded editor/viewer carries `["*"]` scopes PLUS a jq fence, so keying on `"*"`
90
74
  * scopes would hand every editor/viewer the unfiltered nav and a wall of 403s on
@@ -1 +1 @@
1
- {"version":3,"file":"useCapabilities.js","sourceRoot":"","sources":["../../src/hooks/useCapabilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useCapabilities.js","sourceRoot":"","sources":["../../src/hooks/useCapabilities.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,34 @@
1
+ /**
2
+ * `useInteractionsStream` — the live interactions inbox, a TAIL-ONLY SSE stream
3
+ * (via the api-client's `streamInteractions`: fetch + ReadableStream, never
4
+ * EventSource) laid over a PAGED base the caller supplies.
5
+ *
6
+ * The stream carries only the live tail: events `interaction.add` /
7
+ * `interaction.answered` / `interaction.removed` (no backlog, no
8
+ * `interaction.backlog_done`). The PENDING SET is not replayed on the stream — it
9
+ * is the `seed` the caller passes from the paged `GET /api/interactions` door; this
10
+ * hook overlays the live deltas onto it. The hook calls `onResync` on every
11
+ * (re)connect ONLY, so the caller refetches that base to catch up anything missed
12
+ * while disconnected; a live delta never triggers a refetch — the overlay updates
13
+ * the list and the derived `count` in place.
14
+ *
15
+ * The published list is `merge(seed, live)`: every seeded pending item, plus any
16
+ * item added on the tail since connect, minus any removed on the tail, with the
17
+ * client `answered` flag set on an item the tail reported answered. The published
18
+ * `count` is the live PENDING tally, derived from the same overlay without a
19
+ * refetch, reconciled by EPOCH so a resync never double-counts.
20
+ *
21
+ * The pure frame parsing, overlay reducer and derived projections live in
22
+ * `interactions-stream`; the fetch/reconnect/resync loop lives in
23
+ * `interactions-connection`. This hook holds the React state those two operate on
24
+ * and wires them together: the overlay is a ref (mutated in place by the driver),
25
+ * the published list is `merge(seed, overlay)` held in state and recomputed on
26
+ * every overlay change and every seed change, and the count is derived on render.
27
+ *
28
+ * The `Interaction` type is imported type-only (no runtime dep on api-client);
29
+ * `answered` is not a wire field — it is a client flag flipped on an
30
+ * `interaction.answered` event.
31
+ */
1
32
  import type { Interaction } from '@tai42/api-client';
2
33
  import { type StreamInteraction } from './interactions-stream';
3
34
  export type { StreamInteraction } from './interactions-stream';
@@ -1 +1 @@
1
- {"version":3,"file":"useSse.d.ts","sourceRoot":"","sources":["../../src/hooks/useSse.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,8DAA8D;AAC9D,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,CAAC;IACtC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;;;;;;;OASG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,yBAAyB,GAAG,uBAAuB,CAkEjG"}
1
+ {"version":3,"file":"useSse.d.ts","sourceRoot":"","sources":["../../src/hooks/useSse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAI/B,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,8DAA8D;AAC9D,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,CAAC;IACtC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;;;;;;;OASG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,yBAAyB,GAAG,uBAAuB,CAkEjG"}
@@ -1,39 +1,8 @@
1
- /**
2
- * `useInteractionsStream` — the live interactions inbox, a TAIL-ONLY SSE stream
3
- * (via the api-client's `streamInteractions`: fetch + ReadableStream, never
4
- * EventSource) laid over a PAGED base the caller supplies.
5
- *
6
- * The stream carries only the live tail: events `interaction.add` /
7
- * `interaction.answered` / `interaction.removed` (no backlog, no
8
- * `interaction.backlog_done`). The PENDING SET is not replayed on the stream — it
9
- * is the `seed` the caller passes from the paged `GET /api/interactions` door; this
10
- * hook overlays the live deltas onto it. The hook calls `onResync` on every
11
- * (re)connect ONLY, so the caller refetches that base to catch up anything missed
12
- * while disconnected; a live delta never triggers a refetch — the overlay updates
13
- * the list and the derived `count` in place.
14
- *
15
- * The published list is `merge(seed, live)`: every seeded pending item, plus any
16
- * item added on the tail since connect, minus any removed on the tail, with the
17
- * client `answered` flag set on an item the tail reported answered. The published
18
- * `count` is the live PENDING tally, derived from the same overlay without a
19
- * refetch, reconciled by EPOCH so a resync never double-counts.
20
- *
21
- * The pure frame parsing, overlay reducer and derived projections live in
22
- * `interactions-stream`; the fetch/reconnect/resync loop lives in
23
- * `interactions-connection`. This hook holds the React state those two operate on
24
- * and wires them together: the overlay is a ref (mutated in place by the driver),
25
- * the published list is `merge(seed, overlay)` held in state and recomputed on
26
- * every overlay change and every seed change, and the count is derived on render.
27
- *
28
- * The `Interaction` type is imported type-only (no runtime dep on api-client);
29
- * `answered` is not a wire field — it is a client flag flipped on an
30
- * `interaction.answered` event.
31
- */
32
1
  import { useEffect, useRef, useState } from 'react';
2
+ import { startInteractionsStream } from './interactions-connection';
3
+ import { emptyOverlay, merge, pendingCount, } from './interactions-stream';
33
4
  import { useApi } from './useApi';
34
5
  import { useOnUnauthorized } from './useUnauthorized';
35
- import { emptyOverlay, merge, pendingCount, } from './interactions-stream';
36
- import { startInteractionsStream } from './interactions-connection';
37
6
  export function useInteractionsStream(options) {
38
7
  const { seed, total, onResync } = options;
39
8
  const api = useApi();
@@ -1 +1 @@
1
- {"version":3,"file":"useSse.js","sourceRoot":"","sources":["../../src/hooks/useSse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EACL,YAAY,EACZ,KAAK,EACL,YAAY,GAGb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,uBAAuB,EAAwB,MAAM,2BAA2B,CAAC;AAkD1F,MAAM,UAAU,qBAAqB,CAAC,OAAkC;IACtE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC1C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAkB;QACtE,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,6EAA6E;IAC7E,8EAA8E;IAC9E,mFAAmF;IACnF,MAAM,UAAU,GAAG,MAAM,CAAc,YAAY,EAAE,CAAC,CAAC;IACvD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAsB,GAAG,EAAE,CACzE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,CAChC,CAAC;IAEF,mFAAmF;IACnF,iFAAiF;IACjF,kFAAkF;IAClF,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEhD,+EAA+E;IAC/E,8CAA8C;IAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IACvB,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IAE/B,gFAAgF;IAChF,SAAS,CAAC,GAAG,EAAE;QACb,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,SAAS,CACP,GAAG,EAAE,CACH,uBAAuB,CAAC;QACtB,GAAG;QACH,UAAU;QACV,QAAQ;QACR,OAAO;QACP,WAAW;QACX,cAAc;QACd,kBAAkB;QAClB,eAAe;QACf,aAAa;KACd,CAAC,EACJ,CAAC,GAAG,EAAE,cAAc,CAAC,CACtB,CAAC;IAEF,mFAAmF;IACnF,gFAAgF;IAChF,mEAAmE;IACnE,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAExE,OAAO;QACL,YAAY;QACZ,KAAK;QACL,SAAS,EAAE,eAAe,CAAC,SAAS;QACpC,KAAK,EAAE,eAAe,CAAC,KAAK;QAC5B,QAAQ,EAAE,eAAe,CAAC,QAAQ;KACnC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useSse.js","sourceRoot":"","sources":["../../src/hooks/useSse.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAwB,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EACL,YAAY,EAEZ,KAAK,EACL,YAAY,GAEb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAkDtD,MAAM,UAAU,qBAAqB,CAAC,OAAkC;IACtE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC1C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAkB;QACtE,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,6EAA6E;IAC7E,8EAA8E;IAC9E,mFAAmF;IACnF,MAAM,UAAU,GAAG,MAAM,CAAc,YAAY,EAAE,CAAC,CAAC;IACvD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAsB,GAAG,EAAE,CACzE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,CAChC,CAAC;IAEF,mFAAmF;IACnF,iFAAiF;IACjF,kFAAkF;IAClF,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEhD,+EAA+E;IAC/E,8CAA8C;IAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IACvB,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IAE/B,gFAAgF;IAChF,SAAS,CAAC,GAAG,EAAE;QACb,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,SAAS,CACP,GAAG,EAAE,CACH,uBAAuB,CAAC;QACtB,GAAG;QACH,UAAU;QACV,QAAQ;QACR,OAAO;QACP,WAAW;QACX,cAAc;QACd,kBAAkB;QAClB,eAAe;QACf,aAAa;KACd,CAAC,EACJ,CAAC,GAAG,EAAE,cAAc,CAAC,CACtB,CAAC;IAEF,mFAAmF;IACnF,gFAAgF;IAChF,mEAAmE;IACnE,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAExE,OAAO;QACL,YAAY;QACZ,KAAK;QACL,SAAS,EAAE,eAAe,CAAC,SAAS;QACpC,KAAK,EAAE,eAAe,CAAC,KAAK;QAC5B,QAAQ,EAAE,eAAe,CAAC,QAAQ;KACnC,CAAC;AACJ,CAAC"}
@@ -16,8 +16,8 @@
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 ReactNode } from 'react';
20
19
  import type { KindStatus } from '@tai42/api-client';
20
+ import { type ReactNode } from 'react';
21
21
  export type SystemKindsState = {
22
22
  readonly status: 'loading';
23
23
  } | {
@@ -1 +1 @@
1
- {"version":3,"file":"useSystemKinds.d.ts","sourceRoot":"","sources":["../../src/hooks/useSystemKinds.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKpD,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAC9B;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAA;CAAE,GACnE;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAI3D;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,oGA4BxE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,gBAAgB,CAEjD;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAInD;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKhE"}
1
+ {"version":3,"file":"useSystemKinds.d.ts","sourceRoot":"","sources":["../../src/hooks/useSystemKinds.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAGL,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAKf,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAC9B;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAA;CAAE,GACnE;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAI3D;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,oGA4BxE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,gBAAgB,CAEjD;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAInD;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKhE"}
@@ -1,21 +1,3 @@
1
- /**
2
- * `useFeatureOff` — the PROACTIVE read of a DB-backed feature's OFF state, off the
3
- * system kind-status table (`GET /api/system/kinds`), fetched once per auth flip and
4
- * held as SDK state.
5
- *
6
- * A deployment leaves a database-backed feature cleanly OFF by configuring no store
7
- * for it; the kind-status table then reports that kind's `state` as `off` (rather
8
- * than `active` / `default`). A write affordance for an OFF feature reads this and
9
- * hides itself BEFORE the user acts, instead of learning OFF only from a write's 501
10
- * refusal — the reactive `isFeatureDisabled` swallow stays as the backstop for a
11
- * stale table.
12
- *
13
- * A PLAIN fetch state machine (`loading` / `ready` / `failed`), NOT TanStack Query:
14
- * the SDK is the shared leaf across the plugin boundary and holds no query context,
15
- * exactly as `useCapabilities` does. It is DELIBERATELY non-blocking — a kind counts
16
- * as not-off until the table is `ready`, and a failed fetch leaves every kind not-off
17
- * so the surface falls back to its reactive 501 handling, never a hard-failed page.
18
- */
19
1
  import { createContext, createElement, useContext, useEffect, useState, } from 'react';
20
2
  import { useApi } from './useApi';
21
3
  import { useAuth } from './useAuth';
@@ -1 +1 @@
1
- {"version":3,"file":"useSystemKinds.js","sourceRoot":"","sources":["../../src/hooks/useSystemKinds.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSystemKinds.js","sourceRoot":"","sources":["../../src/hooks/useSystemKinds.tsx"],"names":[],"mappings":"AAmBA,OAAO,EACL,aAAa,EACb,aAAa,EAEb,UAAU,EACV,SAAS,EACT,QAAQ,GACT,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,MAAM,kBAAkB,GAAG,aAAa,CAA0B,IAAI,CAAC,CAAC;AAExE;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAE,QAAQ,EAA2B;IACvE,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAmB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAE5E,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,+EAA+E;YAC/E,uEAAuE;YACvE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAChC,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CACxC,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO;gBAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACvE,CAAC,EACD,CAAC,KAAc,EAAE,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO;gBAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACxE,CAAC,CACF,CAAC;QACF,OAAO,GAAG,EAAE;YACV,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;IAE3B,OAAO,aAAa,CAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC;AAChF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,UAAU,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACjE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3C,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IACtF,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC"}
@@ -1,3 +1,18 @@
1
+ /**
2
+ * `useTheme` — light/dark theme, token-driven. The active theme stamps
3
+ * `data-theme` on the document root, which the DS token layers key off.
4
+ *
5
+ * A three-state PREFERENCE sits behind the resolved theme: `'light'` and
6
+ * `'dark'` pin it, `'system'` follows `prefers-color-scheme` and tracks OS
7
+ * changes live. The resolved `theme` a consumer reads is always the concrete
8
+ * `'light' | 'dark'` the tokens need — never `'system'`.
9
+ *
10
+ * The preference persists to `localStorage`, but ONLY when the operator sets it
11
+ * explicitly (`setPreference` / `setTheme` / `toggle`). Boot READS the stored
12
+ * value; it never WRITES one, so a session that only ever renders the app leaves
13
+ * storage untouched. A `'system'` preference clears any pinned choice and hands
14
+ * the theme back to the OS.
15
+ */
1
16
  import type { ReactNode } from 'react';
2
17
  export type Theme = 'light' | 'dark';
3
18
  export type ThemePreference = 'light' | 'dark' | 'system';
@@ -1 +1 @@
1
- {"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../src/hooks/useTheme.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AACrC,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE1D,MAAM,WAAW,UAAU;IACzB,iFAAiF;IACjF,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC,4EAA4E;IAC5E,QAAQ,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,IAAI,CAAC;IAC9D,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC1C,oFAAoF;IACpF,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;CAC7B;AA4BD,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,8FA0DlE;AAED,wBAAgB,QAAQ,IAAI,UAAU,CAIrC"}
1
+ {"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../src/hooks/useTheme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAWvC,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AACrC,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE1D,MAAM,WAAW,UAAU;IACzB,iFAAiF;IACjF,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC,4EAA4E;IAC5E,QAAQ,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,IAAI,CAAC;IAC9D,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC1C,oFAAoF;IACpF,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;CAC7B;AA4BD,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,8FA0DlE;AAED,wBAAgB,QAAQ,IAAI,UAAU,CAIrC"}
@@ -1,18 +1,3 @@
1
- /**
2
- * `useTheme` — light/dark theme, token-driven. The active theme stamps
3
- * `data-theme` on the document root, which the DS token layers key off.
4
- *
5
- * A three-state PREFERENCE sits behind the resolved theme: `'light'` and
6
- * `'dark'` pin it, `'system'` follows `prefers-color-scheme` and tracks OS
7
- * changes live. The resolved `theme` a consumer reads is always the concrete
8
- * `'light' | 'dark'` the tokens need — never `'system'`.
9
- *
10
- * The preference persists to `localStorage`, but ONLY when the operator sets it
11
- * explicitly (`setPreference` / `setTheme` / `toggle`). Boot READS the stored
12
- * value; it never WRITES one, so a session that only ever renders the app leaves
13
- * storage untouched. A `'system'` preference clears any pinned choice and hands
14
- * the theme back to the OS.
15
- */
16
1
  import { createContext, createElement, useCallback, useContext, useEffect, useMemo, useState, } from 'react';
17
2
  const ThemeContext = createContext(null);
18
3
  /** Where the explicit preference is stored between sessions. */
@@ -1 +1 @@
1
- {"version":3,"file":"useTheme.js","sourceRoot":"","sources":["../../src/hooks/useTheme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useTheme.js","sourceRoot":"","sources":["../../src/hooks/useTheme.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,EACV,SAAS,EACT,OAAO,EACP,QAAQ,GACT,MAAM,OAAO,CAAC;AAkBf,MAAM,YAAY,GAAG,aAAa,CAAoB,IAAI,CAAC,CAAC;AAE5D,gEAAgE;AAChE,MAAM,WAAW,GAAG,6BAA6B,CAAC;AAElD,SAAS,WAAW;IAClB,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAC1F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;qDAEqD;AACrD,SAAS,oBAAoB;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACzD,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,8EAA8E;IAChF,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAE,QAAQ,EAA2B;IACjE,MAAM,CAAC,UAAU,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAkB,oBAAoB,CAAC,CAAC;IACzF,gFAAgF;IAChF,qDAAqD;IACrD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAQ,WAAW,CAAC,CAAC;IACzE,MAAM,KAAK,GAAU,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC;IAE3E,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,gFAAgF;IAChF,0EAA0E;IAC1E,8EAA8E;IAC9E,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,KAAK,QAAQ;YAAE,OAAO;QACpC,IAAI,KAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,CAAC,KAA0B,EAAQ,EAAE;YACpD,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC,CAAC;QACF,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC3C,OAAO,GAAG,EAAE;YACV,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,IAAqB,EAAE,EAAE;QAC1D,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC;YACH,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,6EAA6E;QAC/E,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,WAAW,CAC1B,CAAC,IAAW,EAAE,EAAE;QACd,aAAa,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,EACD,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,aAAa,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;IAE3B,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAC9D,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,CACrD,CAAC;IAEF,OAAO,aAAa,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACvC,IAAI,KAAK,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACtF,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,17 +1,3 @@
1
- /**
2
- * `useToolDisplayNames` — the tool-meta display-name overlay (`GET /api/tool-meta`),
3
- * fetched once per auth flip and held as SDK state, so every tool picker across the
4
- * app labels a raw tool name with its human display name from ONE shared read rather
5
- * than each picker refetching the overlay.
6
- *
7
- * A PLAIN fetch state machine (`loading` / `ready` / `failed`), NOT TanStack Query:
8
- * the SDK is the shared leaf across the plugin boundary and holds no query context,
9
- * exactly as `useSystemKinds` and `useCapabilities` do. It is DELIBERATELY
10
- * non-blocking — the map reads empty until the overlay is `ready`, and a failed fetch
11
- * settles into `failed` QUIETLY (no unauthorized routing, no loud error) because a
12
- * display name is cosmetic: a picker with an empty map falls back to the bare raw
13
- * name, never a hard-failed page.
14
- */
15
1
  import { type ReactNode } from 'react';
16
2
  export type ToolDisplayNamesState = {
17
3
  readonly status: 'loading';
@@ -1 +1 @@
1
- {"version":3,"file":"useToolDisplayNames.d.ts","sourceRoot":"","sources":["../../src/hooks/useToolDisplayNames.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAMf,MAAM,MAAM,qBAAqB,GAC7B;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAC9B;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE,GAC9E;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3D,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC;IACtC,qFAAqF;IACrF,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;CAC7B;AAkBD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,gHAqC7E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAItE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,IAAI,CAGtD;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAKjG;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,EAC7C,KAAK,EACL,MAAwB,EACxB,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC9B,gHAMA"}
1
+ {"version":3,"file":"useToolDisplayNames.d.ts","sourceRoot":"","sources":["../../src/hooks/useToolDisplayNames.tsx"],"names":[],"mappings":"AAeA,OAAO,EAGL,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AAKf,MAAM,MAAM,qBAAqB,GAC7B;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAC9B;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE,GAC9E;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3D,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC;IACtC,qFAAqF;IACrF,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;CAC7B;AAkBD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,gHAqC7E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAItE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,IAAI,CAGtD;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAKjG;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,EAC7C,KAAK,EACL,MAAwB,EACxB,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC9B,gHAMA"}
@@ -1,17 +1,3 @@
1
- /**
2
- * `useToolDisplayNames` — the tool-meta display-name overlay (`GET /api/tool-meta`),
3
- * fetched once per auth flip and held as SDK state, so every tool picker across the
4
- * app labels a raw tool name with its human display name from ONE shared read rather
5
- * than each picker refetching the overlay.
6
- *
7
- * A PLAIN fetch state machine (`loading` / `ready` / `failed`), NOT TanStack Query:
8
- * the SDK is the shared leaf across the plugin boundary and holds no query context,
9
- * exactly as `useSystemKinds` and `useCapabilities` do. It is DELIBERATELY
10
- * non-blocking — the map reads empty until the overlay is `ready`, and a failed fetch
11
- * settles into `failed` QUIETLY (no unauthorized routing, no loud error) because a
12
- * display name is cosmetic: a picker with an empty map falls back to the bare raw
13
- * name, never a hard-failed page.
14
- */
15
1
  import { createContext, createElement, useCallback, useContext, useEffect, useMemo, useState, } from 'react';
16
2
  import { useApi } from './useApi';
17
3
  import { useAuth } from './useAuth';
@@ -1 +1 @@
1
- {"version":3,"file":"useToolDisplayNames.js","sourceRoot":"","sources":["../../src/hooks/useToolDisplayNames.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EACL,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,EACV,SAAS,EACT,OAAO,EACP,QAAQ,GAET,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,MAAM,uBAAuB,GAAG,aAAa,CAAsC,IAAI,CAAC,CAAC;AAEzF,sFAAsF;AACtF,MAAM,WAAW,GAAqC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAExE,gGAAgG;AAChG,SAAS,UAAU,CAAC,OAAwB;IAC1C,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,GAAG,CAAC,YAAY,KAAK,IAAI,IAAI,GAAG,CAAC,YAAY,KAAK,EAAE,EAAE,CAAC;YACzD,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CAAC,EAAE,QAAQ,EAA2B;IAC5E,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAwB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACjF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE1C,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,+EAA+E;YAC/E,+EAA+E;YAC/E,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAChC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CACtC,CAAC,OAAO,EAAE,EAAE;YACV,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC/B,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,EACD,CAAC,KAAc,EAAE,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO;gBAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACxE,CAAC,CACF,CAAC;QACF,OAAO,GAAG,EAAE;YACV,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpC,MAAM,KAAK,GAAG,OAAO,CAA+B,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAEhG,OAAO,aAAa,CAAC,uBAAuB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC9E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,KAAK,GAAG,UAAU,CAAC,uBAAuB,CAAC,CAAC;IAClD,IAAI,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,OAAO;QAAE,OAAO,WAAW,CAAC;IACxD,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB;IACvC,MAAM,KAAK,GAAG,UAAU,CAAC,uBAAuB,CAAC,CAAC;IAClD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAuC,EAAE,OAAe;IACvF,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,OAAO,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,OAAO;QACnE,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,GAAG;QAC3B,CAAC,CAAC,OAAO,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAAC,EAC7C,KAAK,EACL,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,EACxB,QAAQ,GAKT;IACC,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EACrD,CAAC,KAAK,EAAE,MAAM,CAAC,CAChB,CAAC;IACF,OAAO,aAAa,CAAC,uBAAuB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"useToolDisplayNames.js","sourceRoot":"","sources":["../../src/hooks/useToolDisplayNames.tsx"],"names":[],"mappings":"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"}
package/dist/host.d.ts CHANGED
@@ -5,7 +5,7 @@
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';
9
- export { setPluginHostState, getPluginHostState, subscribePluginHost, usePluginContributions, } from './plugin/host-state';
10
- export type { PluginLoaderState, LoadedPlugin, PluginContributionsSnapshot, } from './plugin/host-state';
8
+ export type { LoadedPlugin, PluginContributionsSnapshot, PluginLoaderState, } from './plugin/host-state';
9
+ export { getPluginHostState, setPluginHostState, subscribePluginHost, usePluginContributions, } from './plugin/host-state';
10
+ export { getContributions, loadPlugin } from './plugin/registry';
11
11
  //# sourceMappingURL=host.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,iBAAiB,EACjB,YAAY,EACZ,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,YAAY,EACV,YAAY,EACZ,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/host.js CHANGED
@@ -1,10 +1,3 @@
1
- /**
2
- * @tai42/studio-sdk/host — the HOST-ONLY registry API. `loadPlugin` (the one entry
3
- * through which a plugin's `register` contributes) and `getContributions` (what the
4
- * shell reads) live here, apart from the plugin surface, so the served plugin asset
5
- * carries no way to forge, wipe, or enumerate the registry. Only the host bundle
6
- * imports this. See SECURITY.md for the trust boundary.
7
- */
8
- export { loadPlugin, getContributions } from './plugin/registry';
9
- export { setPluginHostState, getPluginHostState, subscribePluginHost, usePluginContributions, } from './plugin/host-state';
1
+ export { getPluginHostState, setPluginHostState, subscribePluginHost, usePluginContributions, } from './plugin/host-state';
2
+ export { getContributions, loadPlugin } from './plugin/registry';
10
3
  //# sourceMappingURL=host.js.map
package/dist/host.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"host.js","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}