@truefoundry/trueforge-ui 0.0.0 → 0.1.0-rc.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 (55) hide show
  1. package/CHANGELOG.md +340 -0
  2. package/LICENSE +21 -0
  3. package/NOTICE +17 -0
  4. package/README.md +640 -3
  5. package/dist/ConnectorSettings-CLBEWGQJ.js +898 -0
  6. package/dist/ConnectorSettings-CLBEWGQJ.js.map +1 -0
  7. package/dist/DockLayout-WRF7EQLD.js +35 -0
  8. package/dist/DockLayout-WRF7EQLD.js.map +1 -0
  9. package/dist/DrawerLayout-X2UXYTOS.js +156 -0
  10. package/dist/DrawerLayout-X2UXYTOS.js.map +1 -0
  11. package/dist/ModelSettings-IJ55QJQO.js +1082 -0
  12. package/dist/ModelSettings-IJ55QJQO.js.map +1 -0
  13. package/dist/OpenUiFenceBlock-SLLZSTMJ.js +9 -0
  14. package/dist/OpenUiFenceBlock-SLLZSTMJ.js.map +1 -0
  15. package/dist/SandboxSettings-S5XGZWOL.js +505 -0
  16. package/dist/SandboxSettings-S5XGZWOL.js.map +1 -0
  17. package/dist/SettingsBuilder-64Y33NP3.js +128 -0
  18. package/dist/SettingsBuilder-64Y33NP3.js.map +1 -0
  19. package/dist/SidebarLayout-M7HEOZVK.js +236 -0
  20. package/dist/SidebarLayout-M7HEOZVK.js.map +1 -0
  21. package/dist/SkillSettings-MXK4ZEI7.js +389 -0
  22. package/dist/SkillSettings-MXK4ZEI7.js.map +1 -0
  23. package/dist/WidgetLayout-7MDOKLHU.js +101 -0
  24. package/dist/WidgetLayout-7MDOKLHU.js.map +1 -0
  25. package/dist/assistant-ui.d.ts +1 -0
  26. package/dist/assistant-ui.js +9 -0
  27. package/dist/assistant-ui.js.map +1 -0
  28. package/dist/chunk-42GF723P.js +24 -0
  29. package/dist/chunk-42GF723P.js.map +1 -0
  30. package/dist/chunk-CFLVPV5M.js +29 -0
  31. package/dist/chunk-CFLVPV5M.js.map +1 -0
  32. package/dist/chunk-M6MHLVSO.js +8 -0
  33. package/dist/chunk-M6MHLVSO.js.map +1 -0
  34. package/dist/chunk-NBMP2XNL.js +89 -0
  35. package/dist/chunk-NBMP2XNL.js.map +1 -0
  36. package/dist/chunk-UBOFEI77.js +567 -0
  37. package/dist/chunk-UBOFEI77.js.map +1 -0
  38. package/dist/chunk-UHGSHDBM.js +633 -0
  39. package/dist/chunk-UHGSHDBM.js.map +1 -0
  40. package/dist/chunk-UXZOL5GO.js +2088 -0
  41. package/dist/chunk-UXZOL5GO.js.map +1 -0
  42. package/dist/chunk-WFC3W4C3.js +73 -0
  43. package/dist/chunk-WFC3W4C3.js.map +1 -0
  44. package/dist/chunk-XSHXH6EI.js +6800 -0
  45. package/dist/chunk-XSHXH6EI.js.map +1 -0
  46. package/dist/createTrueFoundryServer-B72bU-J7.d.ts +28 -0
  47. package/dist/index.d.ts +1569 -0
  48. package/dist/index.js +781 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/plugins/trueforge-agent-server-adapter/index.d.ts +479 -0
  51. package/dist/plugins/trueforge-agent-server-adapter/index.js +830 -0
  52. package/dist/plugins/trueforge-agent-server-adapter/index.js.map +1 -0
  53. package/dist/styles.css +2 -0
  54. package/package.json +129 -6
  55. package/index.js +0 -1
package/CHANGELOG.md ADDED
@@ -0,0 +1,340 @@
1
+ # Changelog
2
+
3
+ ## 0.1.0-rc.0
4
+
5
+ ### Minor Changes
6
+
7
+ - b56c003: Initial 0.1.0-rc.1 prerelease of all public packages.
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [b56c003]
12
+ - @truefoundry/trueforge-sdk@0.1.0-rc.0
13
+
14
+ All notable changes to this project will be documented in this file.
15
+
16
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
17
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
18
+
19
+ ## [Unreleased]
20
+
21
+ ### Added
22
+
23
+ - **`type: "trueforge"` built-in server** — `<TrueforgeUI server={{ type: 'trueforge', baseUrl?, token?, fetch? }} />`
24
+ resolves a full Harness `AgentUIServer` via
25
+ `@truefoundry/trueforge-ui/plugins/trueforge-agent-server-adapter`
26
+ (`createTrueForgeAgentUIServer`), including chat, builder, and default settings
27
+ catalogs. Depends on `@truefoundry/trueforge-sdk` (workspace:* in-monorepo; external in the bundle).
28
+ - **Light/dark brand logo** — `theme.brand.logo` accepts a `BrandLogoConfig`
29
+ (`{ src?, light?, dark?, href? }`). The source is picked from the resolved theme
30
+ mode, falling back to the other mode and then `src`, so a single configured mode
31
+ covers both and `{ light }` alone never renders a missing image. `href` wraps the
32
+ logo in a same-tab link. A bare string (`logo: '/logo.svg'`) is shorthand for a
33
+ mode-agnostic source. A config with no usable source falls back to the default
34
+ mark rather than an empty `<img>`.
35
+ - **`BrandLogo` slot** — now in the slot table and resolved through `useSlot` by
36
+ every layout, so `overrides={{ BrandLogo: MyMark }}` reaches the sidebar header,
37
+ widget FAB, and welcome screen.
38
+ - **`useBrandName()`** — the configured brand name or the default, so layouts no
39
+ longer inline the fallback string.
40
+
41
+ ### Changed
42
+
43
+ - **Theme preset rename** — default preset id `truefoundry` → `trueforge`
44
+ (`ThemePreset`, `PRESETS`, `data-preset`, docs).
45
+ - **Styles auto-inject** — `ThemeProvider` injects the SDK stylesheet at runtime.
46
+ Hosts no longer need `@import '@truefoundry/trueforge-ui/styles.css'` (export
47
+ kept for SSR). Semantic tokens and dark mode are scoped to `.aui-theme-root`
48
+ (no `html.dark` / `:root` retheme of the host page).
49
+ - **Dependency** — `@truefoundry/assistant-ui-runtime` pinned to `0.1.13`.
50
+ `ModelSelectorEntry` now requires `id`, nested `provider: ProviderEntry`, and
51
+ `properties: ModelProperties` (replacing flat `provider` / `providerLogo` /
52
+ `reasoningEfforts`). Re-exports `ProviderEntry` and `ModelProperties`.
53
+
54
+ ### Fixed
55
+
56
+ - **History row mutability** — prefer `custom.isMutable` from the session (runtime
57
+ stamp) over inferring from `agentName`. Orphaned named refs (deleted agent, no
58
+ `agentName`) open as immutable. `openHistorySession` allows `isMutable: false`
59
+ without an agent name.
60
+ - **Edit-bound draft history switch** — do not reuse the mutable shell via
61
+ `switchToThread` when the shell still carries an Edit `agentName`/`agentId`
62
+ and the row is a different session. Remount through `openHistorySession` so
63
+ Update Agent chrome cannot overwrite the wrong library agent.
64
+
65
+ ### Breaking
66
+
67
+ - **Server-port types owned by `@truefoundry/assistant-ui-runtime`** — this package no
68
+ longer defines `AgentChatServer` / `AgentBuilderServer` / catalog DTOs locally.
69
+ Host-facing types are re-exported from `@truefoundry/assistant-ui-runtime/server`
70
+ via `src/server/types.ts`. Prefer importing types from `@truefoundry/trueforge-ui`
71
+ (hosts should not need the runtime package for types). Requires runtime `0.1.13`.
72
+ - **Removed public pagination helpers** — `PageResult`, `TokenPagination`,
73
+ `ListSessionsResponse`, `ListTurnsResponse`, `ListSessionEventsResponse`, and
74
+ opaque `SessionEvent` are gone from this package. Chat list APIs use runtime
75
+ `ListResult<T>` (`{ data, nextPageToken? }`).
76
+ - **`AgentUIServer` / mounts follow the runtime contract** — composed port matches
77
+ runtime `AgentUIServerPort`; `SkillMount` / `McpServerMount` stay opaque `object`
78
+ (hosts widen via generics). Implement `getCapabilities()` on every builder host.
79
+ - **One brand component** — removed the `BrandIcon` export; `BrandLogo` is the only
80
+ product mark and renders the mark alone. Callers that also want the name as text
81
+ pair it with `useBrandName()` (as the sidebar header does), rather than relying on
82
+ a second component that hard-codes one arrangement. Replace `<BrandIcon />` with
83
+ `<BrandLogo />`, and `overrides={{ BrandIcon }}` with `overrides={{ BrandLogo }}`.
84
+ - **`brand.name` is required** — `theme.brand` stays optional, but setting it now
85
+ requires `name`, since it labels the logo and a logo with no name has no accessible
86
+ name. `logo` remains optional, so `brand: { name: 'Acme' }` still pairs host text
87
+ with the default mark. `useBrand()` returns `Partial<BrandConfig>`, since `brand`
88
+ may be absent entirely.
89
+ - **`theme.brand` is images-only** — removed `brand.icon`; there is one logo source.
90
+ Removed the `ReactNode` and render-function variants of the logo value (and with
91
+ them the `BrandImage` type export), so `brand.logo` is now
92
+ `string | BrandLogoConfig`. Component-valued marks move to the slot table:
93
+ `overrides={{ BrandLogo: MyMark }}`, which is how every other atom is replaced.
94
+ Also removed `alt` — the logo is labelled with `brand.name`, so there is one place
95
+ to set the accessible name.
96
+ - **Default brand name is `"TrueForge"`** (was `"TrueFoundry"`), used by
97
+ `BrandLogo`, the sidebar header, and `useBrandName()`.
98
+ - **`ShellMode` shape** — replaced `type: 'idle' | 'named' | 'draft'` with
99
+ `status: 'idle' | 'active'` plus `isMutable` on active bindings. Composer /
100
+ Save Agent / welcome chrome key off `isMutable`, not draft|named.
101
+ Hosts that inspected `mode.type` must switch to `mode.status` /
102
+ `mode.isMutable` (see `shellIsMutable`).
103
+ - **Renamed `TrueFoundryAssistantUI` → `TrueforgeUI`** (props type
104
+ `TrueFoundryAssistantUIProps` → `TrueforgeUIProps`). Update imports and JSX.
105
+ - **`TrueforgeUI` agent props** — replaced top-level `agentName` and
106
+ `defaultAgentSpec` with a single discriminated `agentConfig`. There is no
107
+ compat shim; hosts must update call sites.
108
+ - **Icons use Lucide** (`lucide-react`) instead of Font Awesome. Default
109
+ registry keys are unchanged (`paperclip`, `xmark`, …); `theme.icons` values
110
+ are Lucide components, React nodes, render fns, or SVGR SVGs — not
111
+ `IconDefinition`. Drop `@fortawesome/*` if you only used them for this SDK.
112
+ - **Removed `tfy-web-components`** dependency and peer. Primitives, icons,
113
+ theme, Markdown, and agent-chat molecules are owned by this SDK.
114
+ - `theme` prop is now `ThemeConfig` (object), not `"light" | "dark"`. Mode
115
+ lives at `theme.mode`. Example: `theme={{ mode: "dark", preset: "claude" }}`.
116
+ - `AtomSlots` and `SlotOverrides` are derived from `defaultSlots`; consumer
117
+ module augmentation of `AtomSlots` no longer adds override keys.
118
+ - `theme.classNames.openui` accepts only `root` and `scope`; arbitrary extra
119
+ keys are no longer supported.
120
+ - Complete `SemanticTokens` objects must include `success`,
121
+ `successForeground`, `warning`, and `warningForeground`.
122
+ - `Button`, `IconButton`, dialogs, sheets, avatars, and other low-level
123
+ primitives are customized through tokens/CSS rather than slots. Compound
124
+ APIs (`Button.Primary`, `icon=` string props) are gone.
125
+ - Import styles with only `@import "@truefoundry/trueforge-ui/styles.css"`
126
+ (no `tfy-web-components/theme.css`).
127
+ - `layout` accepts a built-in string **or** a host `React.ComponentType`.
128
+ - **`server` prop no longer accepts `{ type: "custom", server }`.** Pass a ready
129
+ `AgentUIServer` directly (`server={agentServer}`). Built-in configs
130
+ (`truefoundry` / `trueforge`) are unchanged and now accept an optional
131
+ `catalog`.
132
+
133
+ ### Added
134
+
135
+ - **Named agent header title** — when an immutable (named) agent chat is open,
136
+ the thread header shows the agent name on the left (sidebar / drawer / dock /
137
+ widget layouts). Hidden for idle and draft/mutable chats.
138
+ - **`AgentLibraryEntry.agentId?` / `agentSpec?`** — optional listing fields.
139
+ Hosts that only return `{ name }` keep working; `agentSpec` enables Edit.
140
+ - **Agents Library Edit** — when `isComposerEnabled` and the row has
141
+ `agentSpec`, Edit binds a mutable session seeded from that spec
142
+ (`isMutable: true`). Try Agent remains immutable (`isMutable: false`).
143
+ - **`selectLibraryAgent` / `shellIsMutable` / `libraryAgentId`** on shell
144
+ context. `selectAgent` / `openDraft` remain as thin wrappers.
145
+ - **Reasoning-effort selector** beside the model picker in the draft composer.
146
+ Shown only when the selected `ModelSelection` declares `reasoningEfforts`;
147
+ the effort is coerced into the spec on model change or explicit pick.
148
+ - **Skills catalog** — `getSkillCatalog` with an Available/Selected split;
149
+ registry skills (`catalogId`) return to Available on remove, GitHub imports
150
+ are deleted for good. New types: `RegistrySkill`, `GithubSkill`,
151
+ `DefinedSkill`, `SkillConfigBase`, `SkillCatalogEntry`,
152
+ `CreateSkillRequestBase`, `SelectRegistrySkillRequest`,
153
+ `ImportGithubSkillRequest`, `SkillCatalogServer.getSkillCatalog`.
154
+ - **Sandbox catalog** — list/create/update/delete of connected sandboxes from a
155
+ catalog. New types: `SandboxConfig`, `SandboxCatalogEntry`, `SandboxBase`,
156
+ `CreateSandboxRequest`, `UpdateSandboxRequest`, `SandboxCatalogServer`.
157
+ `apiKey` is never stored in the catalog and is optional on update (blank keeps
158
+ the existing key).
159
+ - `TrueforgeBuiltInServerConfig` exported for hosts that build the built-in
160
+ config separately.
161
+
162
+ - **`agentConfig` shell modes** on `TrueforgeUI` /
163
+ `ShellModeProvider`:
164
+ - `SingleAgent` — locked named agent (`name` required)
165
+ - `AgentLibrary` — Agents Library only; idle empty state until pick; no New Chat
166
+ - `AgentComposer` — draft composer only (no library)
167
+ - `AgentLibraryWithComposer` — library + draft (default when omitted)
168
+ - **Clear Chat** control in thread headers (sidebar / drawer / dock / widget).
169
+ Resets the current named thread or opens a fresh draft.
170
+ - `ClearChatButton`, `SelectAgentEmptyState`, `AgentConfig`,
171
+ `DEFAULT_AGENT_CONFIG` exported from the main barrel.
172
+ - Owned `ThemeProvider` with light / dark / system, CSS token injection,
173
+ `theme.brand`, `theme.icons`, `theme.classNames`, `theme.className`.
174
+ - Semantic success/warning and assistant-bubble tokens, plus complete Markdown,
175
+ syntax-highlighter, OpenUI, and Monaco class-name hooks.
176
+ - Presets: `truefoundry`, `claude`, `chatgpt`, `gemini`.
177
+ - `BrandLogo` / `BrandIcon` / `useBrand`; `Icon` / `IconRegistry`.
178
+ - Registry-backed robot brand fallback and overridable welcome/OAuth state
179
+ icons. The standalone OAuth callback now inherits the shell theme and slots.
180
+ - In-repo Markdown (OpenUI fences + syntax-highlighter), `MonacoEditorCore`,
181
+ `CodeEditor`.
182
+ - Public slots for agent-library/save/select controls, draft composer
183
+ selectors, code/content renderers, and file-download UI; nested SDK
184
+ composition now honors those overrides.
185
+ - Example app: preset switcher + custom layout demo; `VITE_TFY_AGENT_MODE` to
186
+ try shell modes.
187
+
188
+ ### Migration
189
+
190
+ #### Component rename
191
+
192
+ ```tsx
193
+ // Before
194
+ import { TrueFoundryAssistantUI } from '@truefoundry/trueforge-ui';
195
+ <TrueFoundryAssistantUI server={server} layout="sidebar" />;
196
+
197
+ // After
198
+ import { TrueforgeUI } from '@truefoundry/trueforge-ui';
199
+ <TrueforgeUI server={server} layout="sidebar" />;
200
+ ```
201
+
202
+ #### `agentConfig` (host must update)
203
+
204
+ | Before | After |
205
+ | ------------------------------------------------ | --------------------------------------------------------------------------------------------- |
206
+ | `agentName="support-agent"` | `agentConfig={{ mode: "SingleAgent", name: "support-agent" }}` |
207
+ | omit `agentName` (+ optional `defaultAgentSpec`) | omit `agentConfig`, or `agentConfig={{ mode: "AgentLibraryWithComposer", defaultAgentSpec }}` |
208
+ | — | `agentConfig={{ mode: "AgentLibrary" }}` — library only, pick agent to start |
209
+ | — | `agentConfig={{ mode: "AgentComposer", defaultAgentSpec }}` — draft only |
210
+
211
+ ```tsx
212
+ // Before
213
+ <TrueFoundryAssistantUI server={server} layout="sidebar" agentName="support-agent" />
214
+ <TrueFoundryAssistantUI
215
+ server={server}
216
+ layout="sidebar"
217
+ defaultAgentSpec={{ model: { name: "openai-main/gpt-4.1" } }}
218
+ />
219
+
220
+ // After
221
+ <TrueforgeUI
222
+ server={server}
223
+ layout="sidebar"
224
+ agentConfig={{ mode: "SingleAgent", name: "support-agent" }}
225
+ />
226
+ <TrueforgeUI
227
+ server={server}
228
+ layout="sidebar"
229
+ agentConfig={{
230
+ mode: "AgentLibraryWithComposer",
231
+ defaultAgentSpec: { model: { name: "openai-main/gpt-4.1" } },
232
+ }}
233
+ />
234
+ ```
235
+
236
+ `ShellModeProvider` likewise takes `agentConfig` instead of `agentName` /
237
+ `defaultAgentSpec`.
238
+
239
+ #### Other Unreleased migrations
240
+
241
+ 1. Drop `@import "tfy-web-components/theme.css"` and the `tfy-web-components`
242
+ package.
243
+ 2. Replace `theme="dark"` with `theme={{ mode: "dark" }}`.
244
+ 3. Update Button/IconButton overrides to the new prop surface.
245
+ 4. Replace product marks via `theme.brand`; action icons via `theme.icons`
246
+ (Lucide / SVG — not Font Awesome `IconDefinition`).
247
+ 5. Optionally set `layout={MyLayout}` and style content via
248
+ `theme.classNames` or `.aui-markdown` / `.aui-syntax-highlighter` /
249
+ `.aui-openui` / `.aui-monaco`.
250
+ 6. Remove consumer `AtomSlots` module augmentations and use the documented
251
+ `SlotOverrides` keys.
252
+ 7. Replace custom `theme.classNames.openui` keys with `root`, `scope`, or host
253
+ CSS targeting `.aui-openui`.
254
+ 8. Add success/warning pairs to any complete custom `SemanticTokens` maps.
255
+
256
+ ## [0.1.0]
257
+
258
+ ### Breaking
259
+
260
+ - Main entry no longer re-exports tfy design-system **values** (`Button`,
261
+ `IconButton`, `IconProvider`, `Modal`, `Dialog`, `Accordion*`, `Skeleton`,
262
+ `LightTooltip`, `registerIcons`, …). Import those from `tfy-web-components`.
263
+ Override **types** `ButtonProps` / `ButtonSize` / `IconButtonProps` remain
264
+ on `@truefoundry/trueforge-ui`.
265
+ - Peer dependency ranges aligned with supported versions (`@truefoundry/assistant-ui-runtime` `^0.1.4`, `truefoundry-gateway-sdk` `^0.4.0-rc.1`, `tfy-web-components` `^0.0.31`).
266
+ - tfy/MUI peer stack (`@mui/material`, `@emotion/*`, Font Awesome, `@openuidev/*`) moved from `dependencies` to `peerDependencies`; hosts must install them.
267
+ - `MessageTimestamp` is presentational and requires `createdAt`.
268
+ - `UserMessageActionBar` is presentational (copy/edit/retry props); runtime wiring lives in containers.
269
+ - `MessageActionBar` accepts optional `createdAt` and passes it to `MessageTimestamp`.
270
+ - Default stylesheet no longer loads Google Fonts from the CDN; override `--font-agent-ui` in host CSS if needed.
271
+ - `prepare` script replaced with `prepublishOnly` (install no longer builds automatically).
272
+
273
+ ### Added
274
+
275
+ - `TrueforgeUI` quick-start component with `layout`: `sidebar` | `drawer` |
276
+ `dock` | `widget` (slots outside the chat provider so toast overrides apply).
277
+ - Curated re-exports: `useAui`, `useAuiState`, `AssistantState` from the main
278
+ barrel and `@truefoundry/trueforge-ui/assistant-ui`; `useTheme` from the main
279
+ barrel.
280
+ - Optional `onThreadOpen` on `ThreadListContainer` for stack/drawer chrome.
281
+ - npm package metadata: `repository`, `homepage`, `bugs`, `keywords`.
282
+ - Drawer / widget Escape-to-close; drawer backdrop dismiss; widget `aria-modal`.
283
+ - Drawer / widget focus management (`inert` on background, focus dialog, restore).
284
+ - `docs/api.md` curated public API reference.
285
+ - CI coverage floor + example app build.
286
+ - Apache-2.0 `LICENSE`, `NOTICE`, `CONTRIBUTING.md`, `SECURITY.md`, `CODE_OF_CONDUCT.md`.
287
+ - GitHub issue/PR templates and CI workflow.
288
+ - `docs/` (architecture, customization, compatibility).
289
+ - ESLint + Prettier.
290
+ - Unit tests for tool-call parsing helpers and `computeAgentStepsSplit`.
291
+
292
+ ### Changed
293
+
294
+ - Required peers are only `react` / `react-dom`. `@assistant-ui/core`
295
+ (`^0.2.22`), `@assistant-ui/react` (`^0.14.24`), and
296
+ `tfy-web-components@^0.0.32` moved to `dependencies` (still listed as optional
297
+ peers for hosts that install them directly for customization). Happy path:
298
+ `yarn add @truefoundry/trueforge-ui`. Yarn `resolutions` pin a single
299
+ `@assistant-ui/core` / `store` / `tap` copy to avoid duplicate AuiProvider.
300
+ - `tfy-web-components` resolves from npm (`^0.0.32`) instead of a local
301
+ `file:` tarball.
302
+ - MUI / Emotion / OpenUI / Monaco / extra Font Awesome packages come from
303
+ `tfy-web-components` (not peers of this SDK).
304
+ - Font Awesome packages this SDK imports (`fontawesome-svg-core`,
305
+ `free-solid-svg-icons`) moved to `dependencies`.
306
+ - `SlotOverrides` is `Partial<AtomSlots>` only (no `Record<string, unknown>`).
307
+ - `TrueforgeUI` lazy-layout `Suspense` fallback is a pulse skeleton
308
+ instead of blank.
309
+ - README reordered: quick start (prefer `client`) before advanced sections.
310
+
311
+ ### Removed
312
+
313
+ - Unused `TokensProvider` / `useTokens` / `defaultTokens` public API (and
314
+ related token types). Theme via CSS variables from `styles.css` instead.
315
+ - `examples/vite-chat` sample app.
316
+ - Unused `classnames` dependency (provided by `tfy-web-components@^0.0.32`).
317
+ - Direct design-system `devDependencies` duplicated from web-components
318
+ (`@mui/material`, `@emotion/*`, `@openuidev/*`, `monaco-editor`,
319
+ `@fortawesome/free-regular-svg-icons`, `@fortawesome/react-fontawesome`).
320
+ - Standalone `@truefoundry/trueforge-ui/openui.css` export — OpenUI styles ship
321
+ inside `styles.css`.
322
+ - Unused packages: `lodash-es`, `react-markdown`, `remark-gfm`, `class-variance-authority`.
323
+ - Broken `pack:dev` script.
324
+
325
+ ### Fixed
326
+
327
+ - Error toasts stack (up to 5), use compact theme sizing, and include a copy action.
328
+ - Atom/container architecture: atoms no longer import `@assistant-ui/*`.
329
+ - Error toasts truncate large gateway response bodies.
330
+
331
+ ### Note
332
+
333
+ - `github-markdown-css` remains a **devDependency** required to compile
334
+ `dist/styles.css` (pulled in via tfy Markdown CSS).
335
+
336
+ ## [0.0.8] - 2026-07-24
337
+
338
+ ### Changed
339
+
340
+ - Package and dependency updates prior to the 0.1.0 open-source readiness pass.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024-2026 TrueFoundry
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/NOTICE ADDED
@@ -0,0 +1,17 @@
1
+ @truefoundry/trueforge-ui
2
+ Copyright 2024-2026 TrueFoundry
3
+
4
+ This product includes software developed at TrueFoundry.
5
+
6
+ This distribution may include or depend on third-party software. Notable
7
+ dependencies and their licenses include (non-exhaustive):
8
+
9
+ - @assistant-ui/react / @assistant-ui/core — see their respective LICENSE files
10
+ - @openuidev/react-ui and related OpenUI packages — see their LICENSE files
11
+ - @truefoundry/assistant-ui-runtime — see its LICENSE
12
+ - lucide-react — ISC / Lucide license
13
+ - monaco-editor — see its LICENSE
14
+ - react-markdown / remark-gfm / react-syntax-highlighter — see their respective LICENSE files
15
+
16
+ Full license texts for installed packages are available in node_modules under
17
+ each package's LICENSE (or equivalent) file.