@truefoundry/trueforge-ui 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/CHANGELOG.md +26 -15
  2. package/README.md +38 -38
  3. package/dist/{ConnectorSettings-H37ZFC6Z.js → ConnectorSettings-4CYGRWPH.js} +6 -4
  4. package/dist/{ConnectorSettings-H37ZFC6Z.js.map → ConnectorSettings-4CYGRWPH.js.map} +1 -1
  5. package/dist/{DockLayout-KEMFRWIR.js → DockLayout-FEDQX2UT.js} +8 -6
  6. package/dist/{DockLayout-KEMFRWIR.js.map → DockLayout-FEDQX2UT.js.map} +1 -1
  7. package/dist/{DrawerLayout-ZVWCKEIS.js → DrawerLayout-NMA7P64K.js} +10 -7
  8. package/dist/{DrawerLayout-ZVWCKEIS.js.map → DrawerLayout-NMA7P64K.js.map} +1 -1
  9. package/dist/{ModelSettings-QJMYHCMD.js → ModelSettings-H5FKRZLK.js} +6 -4
  10. package/dist/{ModelSettings-QJMYHCMD.js.map → ModelSettings-H5FKRZLK.js.map} +1 -1
  11. package/dist/{SandboxSettings-BUBMLW7Q.js → SandboxSettings-CBSC3C3G.js} +6 -4
  12. package/dist/{SandboxSettings-BUBMLW7Q.js.map → SandboxSettings-CBSC3C3G.js.map} +1 -1
  13. package/dist/{SettingsBuilder-26XSGIHK.js → SettingsBuilder-EGSH7BUA.js} +9 -7
  14. package/dist/{SettingsBuilder-26XSGIHK.js.map → SettingsBuilder-EGSH7BUA.js.map} +1 -1
  15. package/dist/ShellRouteSync-53FTXNZZ.js +172 -0
  16. package/dist/ShellRouteSync-53FTXNZZ.js.map +1 -0
  17. package/dist/{SidebarLayout-F3XFXW7B.js → SidebarLayout-5WM2BHZG.js} +10 -7
  18. package/dist/{SidebarLayout-F3XFXW7B.js.map → SidebarLayout-5WM2BHZG.js.map} +1 -1
  19. package/dist/{SkillSettings-IRMGDFRG.js → SkillSettings-A2OQSQUT.js} +6 -4
  20. package/dist/{SkillSettings-IRMGDFRG.js.map → SkillSettings-A2OQSQUT.js.map} +1 -1
  21. package/dist/TrueForgeUIWithRouter-2AQ3HW6L.js +30 -0
  22. package/dist/TrueForgeUIWithRouter-2AQ3HW6L.js.map +1 -0
  23. package/dist/{WidgetLayout-SZMABKIR.js → WidgetLayout-IKGVAZFV.js} +8 -6
  24. package/dist/{WidgetLayout-SZMABKIR.js.map → WidgetLayout-IKGVAZFV.js.map} +1 -1
  25. package/dist/{chunk-7EEOWDLE.js → chunk-4STVL6W6.js} +9 -7
  26. package/dist/{chunk-7EEOWDLE.js.map → chunk-4STVL6W6.js.map} +1 -1
  27. package/dist/chunk-7LAVNBJC.js +477 -0
  28. package/dist/chunk-7LAVNBJC.js.map +1 -0
  29. package/dist/{chunk-LRQHHZDX.js → chunk-BMLCISMH.js} +6 -4
  30. package/dist/{chunk-LRQHHZDX.js.map → chunk-BMLCISMH.js.map} +1 -1
  31. package/dist/chunk-EK6OUU24.js +441 -0
  32. package/dist/chunk-EK6OUU24.js.map +1 -0
  33. package/dist/chunk-FXCYLEFB.js +64 -0
  34. package/dist/chunk-FXCYLEFB.js.map +1 -0
  35. package/dist/{chunk-H7DR64W3.js → chunk-GJ3SK4G3.js} +38 -93
  36. package/dist/chunk-GJ3SK4G3.js.map +1 -0
  37. package/dist/chunk-IDXUUOSM.js +436 -0
  38. package/dist/chunk-IDXUUOSM.js.map +1 -0
  39. package/dist/{chunk-QGNLP2EE.js → chunk-MIHHZQOQ.js} +6 -4
  40. package/dist/{chunk-QGNLP2EE.js.map → chunk-MIHHZQOQ.js.map} +1 -1
  41. package/dist/chunk-YIWUG6MC.js +101 -0
  42. package/dist/chunk-YIWUG6MC.js.map +1 -0
  43. package/dist/index.d.ts +54 -9
  44. package/dist/index.js +39 -426
  45. package/dist/index.js.map +1 -1
  46. package/dist/plugins/trueforge-agent-server-adapter/index.js.map +1 -1
  47. package/package.json +14 -6
  48. package/dist/chunk-H7DR64W3.js.map +0 -1
  49. package/dist/chunk-XAZ5HJXV.js +0 -862
  50. package/dist/chunk-XAZ5HJXV.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,10 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 9a4d1a7: Add opt-in `withRouter` URL sync for shell places (`/`, `/agents/:agentName`, `/sessions/:sessionId`, `/settings`), with path customization via `routes` and `react-router-dom` as an optional peer. Serve the app shell for client-side deep links from the TrueForge server.
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [5100c59]
12
+ - @truefoundry/trueforge-sdk@0.1.1
13
+
3
14
  ## 0.1.0
4
15
 
5
16
  ### Minor Changes
6
17
 
7
- - 2f08a99: Remember plain-draft composer choices (model, skills, MCP connectors, config) across New Chat and reloads via localStorage. Edit-flow and immutable library agents are unchanged. `TrueforgeUI` `layout` is optional and defaults to `"sidebar"`.
18
+ - 2f08a99: Remember plain-draft composer choices (model, skills, MCP connectors, config) across New Chat and reloads via localStorage. Edit-flow and immutable library agents are unchanged. `TrueForgeUI` `layout` is optional and defaults to `"sidebar"`.
8
19
  - b56c003: Initial 0.1.0-rc.1 prerelease of all public packages.
9
20
 
10
21
  ### Patch Changes
@@ -20,7 +31,7 @@
20
31
 
21
32
  ### Minor Changes
22
33
 
23
- - 2f08a99: Remember plain-draft composer choices (model, skills, MCP connectors, config) across New Chat and reloads via localStorage. Edit-flow and immutable library agents are unchanged. `TrueforgeUI` `layout` is optional and defaults to `"sidebar"`.
34
+ - 2f08a99: Remember plain-draft composer choices (model, skills, MCP connectors, config) across New Chat and reloads via localStorage. Edit-flow and immutable library agents are unchanged. `TrueForgeUI` `layout` is optional and defaults to `"sidebar"`.
24
35
 
25
36
  ### Patch Changes
26
37
 
@@ -83,8 +94,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
83
94
  config choices are remembered (in-memory + `localStorage`) and seed the next
84
95
  New Chat after reload. Stale catalog entries are pruned once catalogs load.
85
96
  Edit-flow (`agentId` set) and immutable library agents are unchanged.
86
- - **Optional `layout`** — `<TrueforgeUI />` `layout` prop defaults to `"sidebar"`.
87
- - **`type: "trueforge"` built-in server** — `<TrueforgeUI server={{ type: 'trueforge', baseUrl?, token?, fetch? }} />`
97
+ - **Optional `layout`** — `<TrueForgeUI />` `layout` prop defaults to `"sidebar"`.
98
+ - **`type: "trueforge"` built-in server** — `<TrueForgeUI server={{ type: 'trueforge', baseUrl?, token?, fetch? }} />`
88
99
  resolves a full Harness `AgentUIServer` via
89
100
  `@truefoundry/trueforge-ui/plugins/trueforge-agent-server-adapter`
90
101
  (`createTrueForgeAgentUIServer`), including chat, builder, and default settings
@@ -164,9 +175,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
164
175
  Save Agent / welcome chrome key off `isMutable`, not draft|named.
165
176
  Hosts that inspected `mode.type` must switch to `mode.status` /
166
177
  `mode.isMutable` (see `shellIsMutable`).
167
- - **Renamed `TrueFoundryAssistantUI` → `TrueforgeUI`** (props type
168
- `TrueFoundryAssistantUIProps` → `TrueforgeUIProps`). Update imports and JSX.
169
- - **`TrueforgeUI` agent props** — replaced top-level `agentName` and
178
+ - **Renamed `TrueFoundryAssistantUI` → `TrueForgeUI`** (props type
179
+ `TrueFoundryAssistantUIProps` → `TrueForgeUIProps`). Update imports and JSX.
180
+ - **`TrueForgeUI` agent props** — replaced top-level `agentName` and
170
181
  `defaultAgentSpec` with a single discriminated `agentConfig`. There is no
171
182
  compat shim; hosts must update call sites.
172
183
  - **Icons use Lucide** (`lucide-react`) instead of Font Awesome. Default
@@ -220,10 +231,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
220
231
  `CreateSandboxRequest`, `UpdateSandboxRequest`, `SandboxCatalogServer`.
221
232
  `apiKey` is never stored in the catalog and is optional on update (blank keeps
222
233
  the existing key).
223
- - `TrueforgeBuiltInServerConfig` exported for hosts that build the built-in
234
+ - `TrueForgeBuiltInServerConfig` exported for hosts that build the built-in
224
235
  config separately.
225
236
 
226
- - **`agentConfig` shell modes** on `TrueforgeUI` /
237
+ - **`agentConfig` shell modes** on `TrueForgeUI` /
227
238
  `ShellModeProvider`:
228
239
  - `SingleAgent` — locked named agent (`name` required)
229
240
  - `AgentLibrary` — Agents Library only; idle empty state until pick; no New Chat
@@ -259,8 +270,8 @@ import { TrueFoundryAssistantUI } from '@truefoundry/trueforge-ui';
259
270
  <TrueFoundryAssistantUI server={server} layout="sidebar" />;
260
271
 
261
272
  // After
262
- import { TrueforgeUI } from '@truefoundry/trueforge-ui';
263
- <TrueforgeUI server={server} layout="sidebar" />;
273
+ import { TrueForgeUI } from '@truefoundry/trueforge-ui';
274
+ <TrueForgeUI server={server} layout="sidebar" />;
264
275
  ```
265
276
 
266
277
  #### `agentConfig` (host must update)
@@ -282,12 +293,12 @@ import { TrueforgeUI } from '@truefoundry/trueforge-ui';
282
293
  />
283
294
 
284
295
  // After
285
- <TrueforgeUI
296
+ <TrueForgeUI
286
297
  server={server}
287
298
  layout="sidebar"
288
299
  agentConfig={{ mode: "SingleAgent", name: "support-agent" }}
289
300
  />
290
- <TrueforgeUI
301
+ <TrueForgeUI
291
302
  server={server}
292
303
  layout="sidebar"
293
304
  agentConfig={{
@@ -336,7 +347,7 @@ import { TrueforgeUI } from '@truefoundry/trueforge-ui';
336
347
 
337
348
  ### Added
338
349
 
339
- - `TrueforgeUI` quick-start component with `layout`: `sidebar` | `drawer` |
350
+ - `TrueForgeUI` quick-start component with `layout`: `sidebar` | `drawer` |
340
351
  `dock` | `widget` (slots outside the chat provider so toast overrides apply).
341
352
  - Curated re-exports: `useAui`, `useAuiState`, `AssistantState` from the main
342
353
  barrel and `@truefoundry/trueforge-ui/assistant-ui`; `useTheme` from the main
@@ -368,7 +379,7 @@ import { TrueforgeUI } from '@truefoundry/trueforge-ui';
368
379
  - Font Awesome packages this SDK imports (`fontawesome-svg-core`,
369
380
  `free-solid-svg-icons`) moved to `dependencies`.
370
381
  - `SlotOverrides` is `Partial<AtomSlots>` only (no `Record<string, unknown>`).
371
- - `TrueforgeUI` lazy-layout `Suspense` fallback is a pulse skeleton
382
+ - `TrueForgeUI` lazy-layout `Suspense` fallback is a pulse skeleton
372
383
  instead of blank.
373
384
  - README reordered: quick start (prefer `client`) before advanced sections.
374
385
 
package/README.md CHANGED
@@ -12,7 +12,7 @@ Powered by [assistant-ui](https://www.assistant-ui.com/), it follows the familia
12
12
 
13
13
  - **Fully themeable** — Use built-in themes inspired by **TrueFoundry**, **ChatGPT**, **Claude**, and **Gemini**, or create your own brand identity.
14
14
  - **Composable by design** — Swap layouts, components, and interaction patterns to fit your product.
15
- - **Backend agnostic** — Connect to **TrueFoundry**, **TrueForge**, or any custom API via `TrueforgeServerConfig`.
15
+ - **Backend agnostic** — Connect to **TrueFoundry**, **TrueForge**, or any custom API via `TrueForgeServerConfig`.
16
16
  - **Open source** — Extend, customize, and contribute without vendor lock-in.
17
17
  - **Built on assistant-ui** — Leverage a modern React foundation with seamless shadcn/ui and Tailwind CSS integration.
18
18
  - **Production ready** — Focus on your agents while the SDK handles the chat experience.
@@ -27,7 +27,7 @@ Bring your own **brand, colors, layout, components, and server**—the Agent SDK
27
27
 
28
28
  - [Installation](#installation)
29
29
  - [Getting started](#getting-started)
30
- - [`<TrueforgeUI />` props](#trueforgeui--props)
30
+ - [`<TrueForgeUI />` props](#trueforgeui--props)
31
31
  - [Theming](#theming)
32
32
  - [Content classNames](#content-classnames)
33
33
  - [Brand / logo](#brand--logo)
@@ -60,7 +60,7 @@ and your app chrome work alongside the SDK. In the host stylesheet:
60
60
  @import 'tailwindcss';
61
61
  ```
62
62
 
63
- SDK styles (tokens, utilities, OpenUI) load automatically when `TrueforgeUI` /
63
+ SDK styles (tokens, utilities, OpenUI) load automatically when `TrueForgeUI` /
64
64
  `ThemeProvider` mounts — you do **not** need to import the SDK stylesheet for
65
65
  client-only apps.
66
66
 
@@ -83,12 +83,12 @@ Zero-config path: the SDK builds the agent UI server from your API key and
83
83
  control plane URL (optional explicit gateway URL).
84
84
 
85
85
  ```tsx
86
- import { TrueforgeUI } from '@truefoundry/trueforge-ui';
86
+ import { TrueForgeUI } from '@truefoundry/trueforge-ui';
87
87
 
88
88
  export default function App() {
89
89
  return (
90
90
  <div style={{ height: '100dvh' }}>
91
- <TrueforgeUI
91
+ <TrueForgeUI
92
92
  server={{
93
93
  type: 'truefoundry',
94
94
  apiKey: process.env.TFY_API_KEY!,
@@ -118,12 +118,12 @@ pnpm add @truefoundry/trueforge-sdk
118
118
  **Bearer token (embeds / remote API):**
119
119
 
120
120
  ```tsx
121
- import { TrueforgeUI } from '@truefoundry/trueforge-ui';
121
+ import { TrueForgeUI } from '@truefoundry/trueforge-ui';
122
122
 
123
123
  export default function App() {
124
124
  return (
125
125
  <div style={{ height: '100dvh' }}>
126
- <TrueforgeUI
126
+ <TrueForgeUI
127
127
  server={{
128
128
  type: 'trueforge',
129
129
  baseUrl: process.env.TRUEFORGE_BASE_URL, // optional; default '/'
@@ -140,7 +140,7 @@ export default function App() {
140
140
  auth-aware wrapper that follows OIDC cookies):
141
141
 
142
142
  ```tsx
143
- <TrueforgeUI
143
+ <TrueForgeUI
144
144
  server={{
145
145
  type: 'trueforge',
146
146
  baseUrl: '/',
@@ -157,7 +157,7 @@ auth-aware wrapper that follows OIDC cookies):
157
157
  Optional: pass `catalog` to override the built-in settings catalogs, or import
158
158
  `createTrueForgeAgentUIServer` from
159
159
  `@truefoundry/trueforge-ui/plugins/trueforge-agent-server-adapter` when you need
160
- the factory outside `<TrueforgeUI />`.
160
+ the factory outside `<TrueForgeUI />`.
161
161
 
162
162
  **Custom** — bring your own `AgentUIServer`
163
163
 
@@ -165,7 +165,7 @@ Use this when you compose chat + builder yourself (e.g. chat-only gateway
165
165
  adapter + stub catalog, or a full host BFF). Pass the server object directly.
166
166
 
167
167
  ```tsx
168
- import { TrueforgeUI, createTrueFoundryServer } from '@truefoundry/trueforge-ui';
168
+ import { TrueForgeUI, createTrueFoundryServer } from '@truefoundry/trueforge-ui';
169
169
  import { createTrueFoundryChatServer } from '@truefoundry/assistant-ui-runtime/plugins/truefoundry-agent-server-adapter';
170
170
 
171
171
  const chatServer = createTrueFoundryChatServer({
@@ -185,18 +185,18 @@ const server = createTrueFoundryServer({
185
185
  export default function App() {
186
186
  return (
187
187
  <div style={{ height: '100dvh' }}>
188
- <TrueforgeUI server={server} layout="sidebar" />
188
+ <TrueForgeUI server={server} layout="sidebar" />
189
189
  </div>
190
190
  );
191
191
  }
192
192
  ```
193
193
 
194
- ## `<TrueforgeUI />` props
194
+ ## `<TrueForgeUI />` props
195
195
 
196
- `<TrueforgeUI />` is the single entry point. Every capability is driven by a prop.
196
+ `<TrueForgeUI />` is the single entry point. Every capability is driven by a prop.
197
197
 
198
198
  ```tsx
199
- <TrueforgeUI
199
+ <TrueForgeUI
200
200
  server={{
201
201
  type: 'truefoundry',
202
202
  apiKey: process.env.TFY_API_KEY!,
@@ -218,7 +218,7 @@ export default function App() {
218
218
 
219
219
  | Prop | Type | Required | Description |
220
220
  | ------------------ | -------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------ |
221
- | `server` | `TrueforgeServerConfig` | ✅ | Built-in config (`truefoundry` / `trueforge`) **or** a ready `AgentUIServer`. |
221
+ | `server` | `TrueForgeServerConfig` | ✅ | Built-in config (`truefoundry` / `trueforge`) **or** a ready `AgentUIServer`. |
222
222
  | `layout` | `LayoutProp` | ✅ | Built-in layout string **or** a custom React component. |
223
223
  | `agentConfig` | `AgentConfig` | — | Shell mode: SingleAgent / AgentLibrary / AgentComposer / AgentLibraryWithComposer. Defaults to library + composer. |
224
224
  | `theme` | `ThemeConfig` | — | Preset, mode, tokens, brand, icons, **content `classNames`** (see [Theming](#theming)). |
@@ -227,7 +227,7 @@ export default function App() {
227
227
  | `initialSessionId` | `string` | — | Resume a specific session. |
228
228
  | `onError` | `(error: unknown) => void` | — | Host error hook (runtime + server init). |
229
229
 
230
- Later sections use `server` as a `TrueforgeServerConfig` (usually `type: "truefoundry"`). For a host-built port, pass the `AgentUIServer` directly.
230
+ Later sections use `server` as a `TrueForgeServerConfig` (usually `type: "truefoundry"`). For a host-built port, pass the `AgentUIServer` directly.
231
231
 
232
232
  ---
233
233
 
@@ -242,7 +242,7 @@ const server = {
242
242
  controlPlaneURL: process.env.TFY_CONTROL_PLANE_URL!,
243
243
  };
244
244
 
245
- <TrueforgeUI
245
+ <TrueForgeUI
246
246
  server={server}
247
247
  layout="sidebar"
248
248
  theme={{
@@ -280,11 +280,11 @@ See [docs/theming.md](./docs/theming.md) for presets, controlled vs uncontrolled
280
280
  ## Content classNames
281
281
 
282
282
  Style content renderers (markdown, code fences, OpenUI, Monaco) without swapping
283
- slots. Pass `theme.classNames` on `<TrueforgeUI />` — values merge onto the
283
+ slots. Pass `theme.classNames` on `<TrueForgeUI />` — values merge onto the
284
284
  defaults via `cn()`:
285
285
 
286
286
  ```tsx
287
- <TrueforgeUI
287
+ <TrueForgeUI
288
288
  server={server}
289
289
  layout="sidebar"
290
290
  theme={{
@@ -324,7 +324,7 @@ package). Host CSS on `.aui-markdown` / `.aui-syntax-highlighter` / `.aui-openui
324
324
  **Base layouts** — pass `theme.brand` and the SDK positions the mark + name in the default slots:
325
325
 
326
326
  ```tsx
327
- <TrueforgeUI
327
+ <TrueForgeUI
328
328
  server={server}
329
329
  layout="sidebar"
330
330
  theme={{
@@ -340,7 +340,7 @@ package). Host CSS on `.aui-markdown` / `.aui-syntax-highlighter` / `.aui-openui
340
340
  the resolved mode. `href` wraps the logo in a same-tab link:
341
341
 
342
342
  ```tsx
343
- <TrueforgeUI
343
+ <TrueForgeUI
344
344
  server={server}
345
345
  layout="sidebar"
346
346
  theme={{
@@ -358,7 +358,7 @@ Set only one mode and it is used for both. `name` labels the image, so no `alt`
358
358
  component, override the `BrandLogo` slot, the same way you replace any other atom:
359
359
 
360
360
  ```tsx
361
- <TrueforgeUI server={server} layout="sidebar" overrides={{ BrandLogo: MyMark }} />
361
+ <TrueForgeUI server={server} layout="sidebar" overrides={{ BrandLogo: MyMark }} />
362
362
  ```
363
363
 
364
364
  **Custom layouts** — import `BrandLogo` and place it anywhere; pair it with `useBrandName()` when you also want the name as text (see [Custom layouts](#custom-layouts)).
@@ -384,22 +384,22 @@ In library modes, picking an agent from the Agents Library switches to a named c
384
384
  {
385
385
  /* Library + draft (default) */
386
386
  }
387
- <TrueforgeUI server={server} layout="sidebar" />;
387
+ <TrueForgeUI server={server} layout="sidebar" />;
388
388
 
389
389
  {
390
390
  /* Named-only lock */
391
391
  }
392
- <TrueforgeUI server={server} layout="sidebar" agentConfig={{ mode: 'SingleAgent', name: 'support-agent' }} />;
392
+ <TrueForgeUI server={server} layout="sidebar" agentConfig={{ mode: 'SingleAgent', name: 'support-agent' }} />;
393
393
 
394
394
  {
395
395
  /* Library only — select an agent to start */
396
396
  }
397
- <TrueforgeUI server={server} layout="sidebar" agentConfig={{ mode: 'AgentLibrary' }} />;
397
+ <TrueForgeUI server={server} layout="sidebar" agentConfig={{ mode: 'AgentLibrary' }} />;
398
398
 
399
399
  {
400
400
  /* Composer only */
401
401
  }
402
- <TrueforgeUI
402
+ <TrueForgeUI
403
403
  server={server}
404
404
  layout="sidebar"
405
405
  agentConfig={{
@@ -456,10 +456,10 @@ function Layout({ className }: { className?: string }) {
456
456
  );
457
457
  }
458
458
 
459
- <TrueforgeUI server={server} layout={Layout} />;
459
+ <TrueForgeUI server={server} layout={Layout} />;
460
460
  ```
461
461
 
462
- For deeper composition without `TrueforgeUI`, nest `SlotsProvider` outside `TrueFoundryChatProvider` — see [docs/customization.md](./docs/customization.md).
462
+ For deeper composition without `TrueForgeUI`, nest `SlotsProvider` outside `TrueFoundryChatProvider` — see [docs/customization.md](./docs/customization.md).
463
463
 
464
464
  > _Screenshot: a custom layout assembled from_ `BrandLogo`_,_ `ThreadListContainer`_, and_ `Thread`_._
465
465
 
@@ -470,7 +470,7 @@ For deeper composition without `TrueforgeUI`, nest `SlotsProvider` outside `True
470
470
  Every curated feature atom is overridable. Provide an `overrides` map to swap any single component while inheriting the rest.
471
471
 
472
472
  ```tsx
473
- import { TrueforgeUI, type AssistantMessageBubbleProps } from '@truefoundry/trueforge-ui';
473
+ import { TrueForgeUI, type AssistantMessageBubbleProps } from '@truefoundry/trueforge-ui';
474
474
 
475
475
  function MyBubble({ children, error, actionBar, className }: AssistantMessageBubbleProps) {
476
476
  return (
@@ -482,7 +482,7 @@ function MyBubble({ children, error, actionBar, className }: AssistantMessageBub
482
482
  );
483
483
  }
484
484
 
485
- <TrueforgeUI
485
+ <TrueForgeUI
486
486
  server={server}
487
487
  layout="sidebar"
488
488
  overrides={{
@@ -500,11 +500,11 @@ See [docs/customization.md](./docs/customization.md) for the full slot list.
500
500
 
501
501
  ## Server
502
502
 
503
- `<TrueforgeUI />` takes a **`TrueforgeServerConfig`**: built-in backends init
503
+ `<TrueForgeUI />` takes a **`TrueForgeServerConfig`**: built-in backends init
504
504
  inside the component, or pass a ready `AgentUIServer` directly.
505
505
 
506
506
  ```ts
507
- type TrueforgeServerConfig =
507
+ type TrueForgeServerConfig =
508
508
  | {
509
509
  type: 'truefoundry';
510
510
  apiKey: string;
@@ -539,7 +539,7 @@ host-owned: pass `token` and/or `fetch`.
539
539
  **Compose your own `AgentUIServer` (custom):**
540
540
 
541
541
  ```tsx
542
- import { TrueforgeUI, createTrueFoundryServer } from '@truefoundry/trueforge-ui';
542
+ import { TrueForgeUI, createTrueFoundryServer } from '@truefoundry/trueforge-ui';
543
543
  import { createTrueFoundryChatServer } from '@truefoundry/assistant-ui-runtime/plugins/truefoundry-agent-server-adapter';
544
544
 
545
545
  const chatServer = createTrueFoundryChatServer({ apiKey, baseUrl });
@@ -552,13 +552,13 @@ const agentServer = createTrueFoundryServer({
552
552
  saveAgent,
553
553
  });
554
554
 
555
- <TrueforgeUI server={agentServer} layout="sidebar" />;
555
+ <TrueForgeUI server={agentServer} layout="sidebar" />;
556
556
  ```
557
557
 
558
558
  **Implement `AgentUIServer` yourself:**
559
559
 
560
560
  ```tsx
561
- import { TrueforgeUI, type AgentUIServer } from '@truefoundry/trueforge-ui';
561
+ import { TrueForgeUI, type AgentUIServer } from '@truefoundry/trueforge-ui';
562
562
 
563
563
  const agentServer: AgentUIServer = {
564
564
  // AgentChatServer methods…
@@ -576,7 +576,7 @@ const agentServer: AgentUIServer = {
576
576
  saveAgent: async ({ agentName, agentSpec }) => ({ ok: true }),
577
577
  };
578
578
 
579
- <TrueforgeUI server={agentServer} layout="sidebar" />;
579
+ <TrueForgeUI server={agentServer} layout="sidebar" />;
580
580
  ```
581
581
 
582
582
  See [docs/server.md](./docs/server.md) for the full method list and BYO guidance.
@@ -587,8 +587,8 @@ See [docs/server.md](./docs/server.md) for the full method list and BYO guidance
587
587
 
588
588
  | Export | Kind | Purpose |
589
589
  | ------------------------------------------------------------------ | ---------- | ------------------------------------------------------------ |
590
- | `TrueforgeUI` | Component | Root component — accepts all props above |
591
- | `TrueforgeServerConfig` | Type | `server` prop: `truefoundry` / `trueforge` / `AgentUIServer` |
590
+ | `TrueForgeUI` | Component | Root component — accepts all props above |
591
+ | `TrueForgeServerConfig` | Type | `server` prop: `truefoundry` / `trueforge` / `AgentUIServer` |
592
592
  | `createTrueFoundryServer` | Function | Compose chat + builder into `AgentUIServer` |
593
593
  | `Thread`, `ThreadListContainer`, `BrandLogo` | Components | Layout primitives for custom layouts |
594
594
  | Composer / message / tool atoms | Components | Overridable, themeable building blocks |
@@ -7,12 +7,14 @@ import {
7
7
  auiInputClass,
8
8
  useMCPAuth,
9
9
  useToasterOptional
10
- } from "./chunk-QGNLP2EE.js";
10
+ } from "./chunk-MIHHZQOQ.js";
11
11
  import {
12
12
  Icon,
13
- getErrorMessage,
13
+ getErrorMessage
14
+ } from "./chunk-EK6OUU24.js";
15
+ import {
14
16
  useCatalogServer
15
- } from "./chunk-XAZ5HJXV.js";
17
+ } from "./chunk-IDXUUOSM.js";
16
18
  import "./chunk-HT5HKQXE.js";
17
19
  import {
18
20
  cn
@@ -918,4 +920,4 @@ var ConnectorSettings_default = ConnectorSettings;
918
920
  export {
919
921
  ConnectorSettings_default as default
920
922
  };
921
- //# sourceMappingURL=ConnectorSettings-H37ZFC6Z.js.map
923
+ //# sourceMappingURL=ConnectorSettings-4CYGRWPH.js.map