@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
@@ -0,0 +1,479 @@
1
+ import { T as TrueFoundryServer } from '../../createTrueFoundryServer-B72bU-J7.js';
2
+ import * as _truefoundry_assistant_ui_runtime from '@truefoundry/assistant-ui-runtime';
3
+ import { AgentSpec, AgentBuilderServer, ModelSelection as ModelSelection$1, ConnectorCatalogServer as ConnectorCatalogServer$1, ToolBase as ToolBase$1, ConnectorAuth as ConnectorAuth$1, ConnectorAuthPublic as ConnectorAuthPublic$1, ConnectorBase as ConnectorBase$1, ConnectorCatalogEntry as ConnectorCatalogEntry$1, CreateConnectorRequest as CreateConnectorRequest$1, UpdateConnectorRequest as UpdateConnectorRequest$1, ModelCatalogServer as ModelCatalogServer$1, ModelEntry as ModelEntry$1, ModelProviderBase as ModelProviderBase$1, ModelProviderCatalogEntry as ModelProviderCatalogEntry$1, CreateModelProviderRequest as CreateModelProviderRequest$1, UpdateModelProviderRequest as UpdateModelProviderRequest$1, SandboxProviderConfig, SandboxCatalogServer as SandboxCatalogServer$1, SandboxProviderBase, SkillCatalogServer as SkillCatalogServer$1, DefinedSkill, SkillConfigBase as SkillConfigBase$1, AgentChatServer, CatalogServer } from '@truefoundry/assistant-ui-runtime/server';
4
+ import { TrueForge, TrueForgeApi } from '@truefoundry/trueforge-sdk';
5
+
6
+ /**
7
+ * FE-owned AgentUIServer contract.
8
+ *
9
+ * Rule: only methods/fields the runtime or UI invokes.
10
+ * Hosts extend via `T extends Base` for system-specific extras.
11
+ * No dependency on truefoundry-gateway-sdk.
12
+ */
13
+
14
+ interface ProviderEntry {
15
+ name: string;
16
+ logo?: string;
17
+ }
18
+ interface ModelProperties {
19
+ reasoningEfforts?: string[];
20
+ }
21
+ /** Model selector row. Host extends for apiModel, modelId, pricing, etc. */
22
+ interface ModelSelectorEntry<TProvider extends ProviderEntry = ProviderEntry, TProperties extends ModelProperties = ModelProperties> {
23
+ name: string;
24
+ id: string;
25
+ provider: TProvider;
26
+ properties: TProperties;
27
+ }
28
+ interface SaveAgentResult {
29
+ /** Immutable id allocated by the host registry. */
30
+ agentId?: string;
31
+ /** Timestamp returned when the active mutable session was updated. */
32
+ sessionUpdatedAt?: string;
33
+ }
34
+ /**
35
+ * Builder feature flags — atoms gate sandbox / skill / settings surfaces on these.
36
+ */
37
+ interface AgentBuilderCapabilitiesResponse {
38
+ data: {
39
+ sandbox: {
40
+ enabled: boolean;
41
+ };
42
+ skill: {
43
+ enabled: boolean;
44
+ reason?: string;
45
+ };
46
+ settings?: {
47
+ enabled: boolean;
48
+ };
49
+ };
50
+ }
51
+ /**
52
+ * Provider type id. Reserved literal: `"custom"` for user-defined providers;
53
+ * any other string is a builtin (e.g. `"openai"`, `"anthropic"`).
54
+ *
55
+ * Note: `string | "custom"` is useless in TypeScript (`"custom"` ⊆ `string`),
56
+ * so this stays `string` and `"custom"` is a documented convention.
57
+ */
58
+ type ProviderType = string;
59
+ /**
60
+ * Model row — form "Model ID" + "Display name".
61
+ * Host extends for properties, etc.
62
+ */
63
+ interface ModelEntry {
64
+ id: string;
65
+ name: string;
66
+ }
67
+ /**
68
+ * Write config for create/update (custom form + catalog "Save key").
69
+ * Host extends. `baseUrl` present iff `type === "custom"`.
70
+ */
71
+ interface ModelProviderConfigBase<TModel extends ModelEntry = ModelEntry> {
72
+ type: ProviderType;
73
+ name: string;
74
+ /** Present iff `type === "custom"`. */
75
+ baseUrl?: string;
76
+ apiKey: string;
77
+ models: TModel[];
78
+ }
79
+ /**
80
+ * Configured provider card (list/read). No raw `apiKey`.
81
+ * Host extends for apiKeySet, timestamps, etc.
82
+ */
83
+ interface ModelProviderBase<TModel extends ModelEntry = ModelEntry> {
84
+ id: string;
85
+ type: ProviderType;
86
+ name: string;
87
+ /** Present iff `type === "custom"`. */
88
+ baseUrl?: string;
89
+ models: TModel[];
90
+ }
91
+ /**
92
+ * Discovery-only catalog provider (AVAILABLE list).
93
+ * `type` must not be `"custom"` — custom providers use the custom form.
94
+ * Host extends for richer model rows.
95
+ */
96
+ interface ModelProviderCatalogEntry<TModel extends ModelEntry = ModelEntry> {
97
+ type: ProviderType;
98
+ name: string;
99
+ models: TModel[];
100
+ supportedReasoningEfforts?: string[];
101
+ logo?: string;
102
+ }
103
+ /** Create — no `id`; server assigns it. Catalog path = entry + apiKey. */
104
+ type CreateModelProviderRequest<TModel extends ModelEntry = ModelEntry> = ModelProviderConfigBase<TModel>;
105
+ /** Update — `id` required. */
106
+ type UpdateModelProviderRequest<TModel extends ModelEntry = ModelEntry> = ModelProviderConfigBase<TModel> & {
107
+ id: string;
108
+ };
109
+ interface ModelCatalogServer<TModel extends ModelEntry = ModelEntry, TProvider extends ModelProviderBase<TModel> = ModelProviderBase<TModel>, TCatalogProvider extends ModelProviderCatalogEntry<TModel> = ModelProviderCatalogEntry<TModel>, TCreate extends CreateModelProviderRequest<TModel> = CreateModelProviderRequest<TModel>, TUpdate extends UpdateModelProviderRequest<TModel> = UpdateModelProviderRequest<TModel>> {
110
+ getModelProviderCatalog(): Promise<TCatalogProvider[]>;
111
+ listModelProviders(): Promise<TProvider[]>;
112
+ createModelProvider(req: TCreate): Promise<TProvider>;
113
+ /** Full replace update keyed by provider `id`. */
114
+ updateModelProvider(req: TUpdate): Promise<TProvider>;
115
+ deleteModelProvider?(req: {
116
+ id: string;
117
+ }): Promise<void>;
118
+ }
119
+ /** Tool row on a connector detail. Host extends for schemas, etc. */
120
+ interface ToolBase {
121
+ id: string;
122
+ name: string;
123
+ description: string;
124
+ }
125
+ type ConnectorAuthOAuth = {
126
+ type: "dcr";
127
+ authUrl?: string;
128
+ };
129
+ type ConnectorAuthApiKey = {
130
+ type: "header";
131
+ apiKey?: string;
132
+ headerName?: string;
133
+ };
134
+ type ConnectorAuthNone = {
135
+ type: "none";
136
+ };
137
+ type ConnectorAuth = ConnectorAuthOAuth | ConnectorAuthApiKey | ConnectorAuthNone;
138
+ type ConnectorAuthPublicOAuth = {
139
+ type: "dcr";
140
+ authUrl?: string;
141
+ };
142
+ type ConnectorAuthPublicApiKey = {
143
+ type: "header";
144
+ headerName?: string;
145
+ };
146
+ type ConnectorAuthPublicNone = {
147
+ type: "none";
148
+ };
149
+ type ConnectorAuthPublic = ConnectorAuthPublicOAuth | ConnectorAuthPublicApiKey | ConnectorAuthPublicNone;
150
+ /**
151
+ * MCP / connector create-edit config. Host extends for extra fields, etc.
152
+ */
153
+ interface ConnectorConfigBase<TAuth extends ConnectorAuth = ConnectorAuth> {
154
+ name: string;
155
+ url: string;
156
+ auth: TAuth;
157
+ }
158
+ /**
159
+ * Connected connector row (settings/connectors). No raw `apiKey` or tools.
160
+ * Tools are fetched separately with `getToolsByConnectorId`.
161
+ * Host extends.
162
+ */
163
+ interface ConnectorBase<TAuth extends ConnectorAuthPublic = ConnectorAuthPublic> {
164
+ id: string;
165
+ name: string;
166
+ description: string;
167
+ url: string;
168
+ auth: TAuth;
169
+ /** When true, UI should not show Disconnect. */
170
+ requiresAuth: boolean;
171
+ authenticated: boolean;
172
+ }
173
+ /** Discovery catalog entry for "+ Add MCP server". Host extends. */
174
+ interface ConnectorCatalogEntry<TAuth extends ConnectorAuthPublic = ConnectorAuthPublic> {
175
+ id: string;
176
+ name: string;
177
+ description?: string;
178
+ url: string;
179
+ auth: TAuth;
180
+ logo?: string;
181
+ }
182
+ /** Create connector — no `id`; server assigns it. Host extends. */
183
+ type CreateConnectorRequest<TAuth extends ConnectorAuth = ConnectorAuth> = ConnectorConfigBase<TAuth>;
184
+ /** Update connector — `id` required. Host extends. */
185
+ type UpdateConnectorRequest<TAuth extends ConnectorAuth = ConnectorAuth> = ConnectorConfigBase<TAuth> & {
186
+ id: string;
187
+ };
188
+ interface AuthenticateConnectorRequest {
189
+ id: string;
190
+ /** OAuth callback page owned by the host application. */
191
+ redirectURL?: string;
192
+ }
193
+ interface ConnectorAuthenticationResult<TConnector extends ConnectorBase = ConnectorBase> {
194
+ connector?: TConnector;
195
+ status?: string;
196
+ authorization_endpoint?: string | undefined;
197
+ }
198
+ interface ConnectorCatalogServer<TTool extends ToolBase = ToolBase, TAuthWrite extends ConnectorAuth = ConnectorAuth, TAuthPublic extends ConnectorAuthPublic = ConnectorAuthPublic, TConnector extends ConnectorBase<TAuthPublic> = ConnectorBase<TAuthPublic>, TCatalogEntry extends ConnectorCatalogEntry<TAuthPublic> = ConnectorCatalogEntry<TAuthPublic>, TCreate extends CreateConnectorRequest<TAuthWrite> = CreateConnectorRequest<TAuthWrite>, TUpdate extends UpdateConnectorRequest<TAuthWrite> = UpdateConnectorRequest<TAuthWrite>> {
199
+ getConnectorCatalog(): Promise<TCatalogEntry[]>;
200
+ getConnector(req: {
201
+ id: string;
202
+ }): Promise<TConnector>;
203
+ listConnectors(req?: {
204
+ query?: string;
205
+ }): Promise<TConnector[]>;
206
+ getToolsByConnectorId(req: {
207
+ id: string;
208
+ }): Promise<TTool[]>;
209
+ createConnector(req: TCreate): Promise<TConnector>;
210
+ /** Full replace update keyed by connector `id`. */
211
+ updateConnector(req: TUpdate): Promise<TConnector>;
212
+ /**
213
+ * Start connector auth (e.g. OAuth).
214
+ * May return a connector (already authenticated / with `auth.authUrl`) or a
215
+ * result carrying `authorization_endpoint` for the popup flow.
216
+ */
217
+ authenticateConnector(req: AuthenticateConnectorRequest): Promise<TConnector | ConnectorAuthenticationResult<TConnector>>;
218
+ /** Clear connector auth. */
219
+ disconnectConnector(req: {
220
+ id: string;
221
+ }): Promise<TConnector>;
222
+ deleteConnector?(req: {
223
+ id: string;
224
+ }): Promise<void>;
225
+ }
226
+ /** Skill row shown in settings/skills (list + delete). Host extends for fqn, etc. */
227
+ interface SkillBase {
228
+ id: string;
229
+ name: string;
230
+ description: string;
231
+ }
232
+ /** Git source fields shared by catalog entries and create requests. */
233
+ interface SkillConfigBase {
234
+ name: string;
235
+ description: string;
236
+ repoURL: string;
237
+ path: string;
238
+ ref: string;
239
+ }
240
+ interface SkillCatalogEntry extends SkillConfigBase {
241
+ id: string;
242
+ }
243
+ /** Create-skill base. Hosts may intersect extra fields and re-union. */
244
+ interface CreateSkillRequestBase extends SkillConfigBase {
245
+ }
246
+ interface SelectRegistrySkillRequest extends CreateSkillRequestBase {
247
+ /** `SkillCatalogEntry.id`, persisted so the created skill links back to it. */
248
+ catalogId: string;
249
+ }
250
+ interface ImportGithubSkillRequest extends CreateSkillRequestBase {
251
+ }
252
+ type CreateSkillRequest = SelectRegistrySkillRequest | ImportGithubSkillRequest;
253
+ interface SkillCatalogServer<TSkill extends SkillBase = SkillBase, TCatalogEntry extends SkillCatalogEntry = SkillCatalogEntry, TCreate extends CreateSkillRequest = CreateSkillRequest> {
254
+ getSkillCatalog(): Promise<TCatalogEntry[]>;
255
+ listSkills(req?: {
256
+ query?: string;
257
+ }): Promise<TSkill[]>;
258
+ createSkill(req: TCreate): Promise<TSkill>;
259
+ deleteSkill?(req: {
260
+ id: string;
261
+ }): Promise<void>;
262
+ }
263
+ /** Mutable sandbox provider settings shared by catalog rows, create, and update. */
264
+ interface SandboxConfig {
265
+ snapshotName: string;
266
+ execTimeoutMs: number;
267
+ autoStopIntervalInMinutes: number;
268
+ autoArchiveIntervalInMinutes: number;
269
+ autoDeleteIntervalInMinutes: number;
270
+ }
271
+ interface SandboxCatalogEntry extends SandboxConfig {
272
+ id: string;
273
+ name: string;
274
+ type: string;
275
+ }
276
+ /**
277
+ * Connected sandbox provider row (settings/sandboxes). No raw `apiKey`.
278
+ * Includes last-saved config so update forms can show previous values.
279
+ */
280
+ interface SandboxBase extends SandboxConfig {
281
+ id: string;
282
+ name: string;
283
+ catalogId: string;
284
+ isConnected: boolean;
285
+ }
286
+ interface CreateSandboxRequest extends SandboxConfig {
287
+ /** `SandboxCatalogEntry.id` used to create this sandbox provider. */
288
+ catalogId: string;
289
+ name: string;
290
+ type: string;
291
+ apiKey: string;
292
+ }
293
+ interface UpdateSandboxRequest extends SandboxConfig {
294
+ id: string;
295
+ /** Omit to keep the existing key; send a value to rotate. */
296
+ apiKey?: string;
297
+ }
298
+ interface SandboxCatalogServer<TProvider extends SandboxBase = SandboxBase, TCatalogEntry extends SandboxCatalogEntry = SandboxCatalogEntry, TCreate extends CreateSandboxRequest = CreateSandboxRequest, TUpdate extends UpdateSandboxRequest = UpdateSandboxRequest> {
299
+ getSandboxProviderCatalog(): Promise<TCatalogEntry[]>;
300
+ listSandboxProviders(req?: {
301
+ query?: string;
302
+ }): Promise<TProvider[]>;
303
+ createSandboxProvider(req: TCreate): Promise<TProvider>;
304
+ updateSandboxProvider(req: TUpdate): Promise<TProvider>;
305
+ deleteSandboxProvider?(req: {
306
+ id: string;
307
+ }): Promise<void>;
308
+ }
309
+ /** Host-facing selector / compose aliases (trueforge-ui public names). */
310
+ type ModelSelection = ModelSelectorEntry;
311
+
312
+ /**
313
+ * TrueForge HTTP client for the Harness adapter.
314
+ * Auth is host-owned: pass `token` (Bearer) and/or a custom `fetch` (e.g. cookie + OIDC).
315
+ */
316
+
317
+ interface CreateTrueForgeClientOptions {
318
+ baseUrl?: string;
319
+ /** SDK Bearer token (`Authorization: Bearer …`). */
320
+ token?: string;
321
+ fetch?: typeof fetch;
322
+ }
323
+ declare function createTrueForgeClient(options?: CreateTrueForgeClientOptions): TrueForge;
324
+
325
+ type HarnessSkillMount = TrueForgeApi.SkillNameRef;
326
+ type HarnessMcpServerMount = TrueForgeApi.McpServer;
327
+ interface HarnessAgentSpec extends AgentSpec<TrueForgeApi.AgentSpecModel, HarnessSkillMount, HarnessMcpServerMount> {
328
+ config?: TrueForgeApi.RuntimeConfig;
329
+ instructions?: string;
330
+ messages?: TrueForgeApi.AgentSpecUserMessage[];
331
+ responseFormat?: TrueForgeApi.ResponseFormat;
332
+ }
333
+
334
+ /**
335
+ * AgentBuilderServer callbacks for createTrueFoundryServer.
336
+ * Composer pickers + agent library backed by the Harness agents registry.
337
+ */
338
+
339
+ type CreateHarnessBuilderServerOptions = CreateTrueForgeClientOptions & {
340
+ client?: TrueForge;
341
+ };
342
+ /** Well-known catalog entries key logos by `type` (same as configured provider resource name). */
343
+ declare function modelProviderLogosByName(catalog: readonly TrueForgeApi.CatalogModelProvider[]): ReadonlyMap<string, string>;
344
+ /** Map harness model rows onto the UI picker shape (nested provider + properties + optional logo). */
345
+ declare function toModelSelection({ model, logo }: {
346
+ model: TrueForgeApi.Model;
347
+ logo?: string;
348
+ }): ModelSelection$1;
349
+ declare function createHarnessBuilderServer(options?: CreateHarnessBuilderServerOptions): AgentBuilderServer<HarnessAgentSpec>;
350
+
351
+ /**
352
+ * Maps trueforge-ui connector-settings calls onto Harness
353
+ *
354
+ * UI: `dcr` / `header` / `none`, connector `id`.
355
+ * Harness: `dcr` / `header` / omitted auth, resource `name`.
356
+ */
357
+
358
+ type UiConnectorAuth = ConnectorAuth$1;
359
+ type UiConnectorAuthPublic = ConnectorAuthPublic$1;
360
+ type UiConnector = ConnectorBase$1;
361
+ type UiConnectorCatalogEntry = ConnectorCatalogEntry$1;
362
+ declare function toHarnessAuth(auth: ConnectorAuth$1): TrueForgeApi.ConfiguredMcpServerAuth | undefined;
363
+ declare function toUiConnector(server: TrueForgeApi.ConfiguredMcpServer): UiConnector;
364
+ declare function toUiConnectorFromReadEntry(server: TrueForgeApi.McpServerReadEntry): UiConnector;
365
+ interface HarnessMcpUpsert {
366
+ name: string;
367
+ url: string;
368
+ auth?: TrueForgeApi.ConfiguredMcpServerAuth;
369
+ }
370
+ declare function toHarnessManifest$2(req: {
371
+ name: string;
372
+ url: string;
373
+ auth: ConnectorAuth$1;
374
+ }): HarnessMcpUpsert;
375
+ /** Settings connector port for `createTrueFoundryServer`. Delete omitted; disconnect unsupported. */
376
+ declare function createConnectorCatalog(client: TrueForge): ConnectorCatalogServer$1<ToolBase$1, UiConnectorAuth, UiConnectorAuthPublic, UiConnector, UiConnectorCatalogEntry, CreateConnectorRequest$1, UpdateConnectorRequest$1>;
377
+
378
+ /**
379
+ * Maps trueforge-ui model-settings calls onto Harness
380
+ *
381
+ * UI: flat `apiKey` / model `id`. Harness: `auth.apiKey` / `modelId`.
382
+ * Provider `id` in the UI is the Harness resource `name`.
383
+ */
384
+
385
+ /** Custom-form rows omit properties; catalog rows round-trip them. */
386
+ type UiModelEntry = ModelEntry$1 & {
387
+ properties?: TrueForgeApi.ModelProperties;
388
+ };
389
+ type UiModelProvider = ModelProviderBase$1<UiModelEntry>;
390
+ type UiModelProviderCatalogEntry = ModelProviderCatalogEntry$1<UiModelEntry>;
391
+ declare function toUiModelProvider(provider: TrueForgeApi.ModelProvider): UiModelProvider;
392
+ declare function toUiCatalogModelProviderEntry(provider: TrueForgeApi.CatalogModelProvider): UiModelProviderCatalogEntry;
393
+ declare function toHarnessModelProvider(req: {
394
+ type: string;
395
+ name: string;
396
+ apiKey: string;
397
+ baseUrl?: string;
398
+ models: UiModelEntry[];
399
+ }): TrueForgeApi.ModelProvider;
400
+ /** Settings model-catalog port for `createTrueFoundryServer`. Delete is omitted (no BE route). */
401
+ declare function createModelProviderCatalog(client: TrueForge): ModelCatalogServer$1<UiModelEntry, UiModelProvider, UiModelProviderCatalogEntry, CreateModelProviderRequest$1<UiModelEntry>, UpdateModelProviderRequest$1<UiModelEntry>>;
402
+
403
+ /**
404
+ * Maps trueforge-ui sandbox-settings calls onto Harness
405
+ * `/api/v1/settings/sandbox-providers` (singleton upsert, no delete).
406
+ *
407
+ * UI: multi-row providers with `id` / `catalogId` / `name` / flat `apiKey`.
408
+ * Harness: one Daytona provider per tenant; catalog YAML has no name — synthetic
409
+ * identity uses `type` (`daytona`) as id/catalogId and display name `Daytona`.
410
+ */
411
+
412
+ type UiSandboxProvider = SandboxProviderBase;
413
+ declare function configFromHarness(provider: TrueForgeApi.CatalogDaytonaSandboxProvider | TrueForgeApi.SandboxProviderManifest): SandboxProviderConfig;
414
+ declare function toUiSandboxProvider(provider: TrueForgeApi.SandboxProviderManifest): UiSandboxProvider;
415
+ declare function toHarnessManifest$1(req: {
416
+ type: string;
417
+ apiKey: string;
418
+ } & Omit<SandboxProviderConfig, 'snapshotName'>): TrueForgeApi.SandboxProviderManifest;
419
+ /** Settings sandbox-catalog port for `createTrueFoundryServer`. Delete omitted (no BE route). */
420
+ declare function createSandboxProviderCatalog(client: TrueForge): SandboxCatalogServer$1;
421
+
422
+ /**
423
+ * Maps trueforge-ui skill-settings calls onto Harness
424
+ *
425
+ * UI: `repoURL` / skill `id` / optional `catalogId`.
426
+ * Harness: `url` / resource `name` (no separate id or catalogId on wire).
427
+ * For now UI `id = name`; registry link uses `catalogId = name` when the
428
+ * configured skill name matches a catalog preset.
429
+ */
430
+
431
+ type UiSkill = DefinedSkill;
432
+ declare function toHarnessManifest(req: SkillConfigBase$1): TrueForgeApi.SkillManifest;
433
+ declare function toUiSkill(skill: TrueForgeApi.SkillManifest, catalogNames: ReadonlySet<string>): UiSkill;
434
+ /** Settings skill-catalog port for `createTrueFoundryServer`. Delete omitted (no BE route). */
435
+ declare function createSkillCatalog(client: TrueForge): SkillCatalogServer$1<UiSkill>;
436
+
437
+ /**
438
+ * Harness `AgentChatServer` adapter for @truefoundry/trueforge-ui.
439
+ *
440
+ * Runtime contract: opaque mounts (`object`), flat `ListResult` (`data` +
441
+ * `nextPageToken`), and `null` normalized to absent. Harness keys MCP mounts by
442
+ * name and returns `null` for optional fields — the maps below bridge both.
443
+ *
444
+ * Skills are name refs on the wire (`SkillNameRef`).
445
+ *
446
+ * Session create takes `{ name }` or `{ spec }`; reads carry the
447
+ * `reference`/`inline` discriminator, with reference rows already naming their
448
+ * agent. The UI filters with registry `agentId`.
449
+ */
450
+
451
+ type CreateHarnessChatServerOptions = CreateTrueForgeClientOptions & {
452
+ /** Injected client — skips creating one from options. */
453
+ client?: TrueForge;
454
+ };
455
+ /** Drop UI draft `id` before admission; Harness MCP mounts are name-keyed. */
456
+ declare function toHarnessAgentSpec(spec: HarnessAgentSpec): TrueForgeApi.AgentSpec;
457
+ declare function toUiAgentSpec(spec: TrueForgeApi.AgentSpec): HarnessAgentSpec;
458
+ declare function createHarnessChatServer(options?: CreateHarnessChatServerOptions): AgentChatServer<HarnessAgentSpec>;
459
+
460
+ /**
461
+ * Configured-resource list helpers for composer pickers and host boot.
462
+ * Not the settings catalog ports (`catalogs/*`).
463
+ */
464
+
465
+ declare function listModels(client: TrueForge): Promise<TrueForgeApi.Model[]>;
466
+ declare function listConfiguredMcpServers(client: TrueForge): Promise<TrueForgeApi.McpServerReadEntry[]>;
467
+ declare function listSkills(client: TrueForge): Promise<TrueForgeApi.SkillReadEntry[]>;
468
+ declare function getCapabilities(client: TrueForge): Promise<TrueForgeApi.GetCapabilitiesResponseData>;
469
+
470
+ type CreateTrueForgeAgentUIServerOptions = CreateTrueForgeClientOptions & {
471
+ /** Override the default Harness settings catalogs. */
472
+ catalog?: CatalogServer;
473
+ };
474
+ /**
475
+ * Compose chat + builder + default settings catalogs into an `AgentUIServer`.
476
+ */
477
+ declare function createTrueForgeAgentUIServer(options?: CreateTrueForgeAgentUIServerOptions): TrueFoundryServer<HarnessAgentSpec, ModelSelection, _truefoundry_assistant_ui_runtime.SkillSelectorEntry, _truefoundry_assistant_ui_runtime.ConnectorSelectorEntry, _truefoundry_assistant_ui_runtime.AgentSelectorEntry, SaveAgentResult, CatalogServer<ModelCatalogServer<ModelEntry, ModelProviderBase<ModelEntry>, ModelProviderCatalogEntry<ModelEntry>, CreateModelProviderRequest<ModelEntry>, UpdateModelProviderRequest<ModelEntry>>, ConnectorCatalogServer<ToolBase, ConnectorAuth, ConnectorAuthPublic, ConnectorBase<ConnectorAuthPublic>, ConnectorCatalogEntry<ConnectorAuthPublic>, CreateConnectorRequest<ConnectorAuth>, UpdateConnectorRequest<ConnectorAuth>>, SkillCatalogServer<SkillBase, SkillCatalogEntry, CreateSkillRequest>, SandboxCatalogServer<_truefoundry_assistant_ui_runtime.SandboxBase, _truefoundry_assistant_ui_runtime.SandboxCatalogEntry, _truefoundry_assistant_ui_runtime.CreateSandboxRequest, _truefoundry_assistant_ui_runtime.UpdateSandboxRequest>>, AgentBuilderCapabilitiesResponse>;
478
+
479
+ export { type CreateHarnessBuilderServerOptions, type CreateHarnessChatServerOptions, type CreateTrueForgeAgentUIServerOptions, type CreateTrueForgeClientOptions, type HarnessAgentSpec, type HarnessMcpServerMount, type HarnessSkillMount, configFromHarness, createConnectorCatalog, createHarnessBuilderServer, createHarnessChatServer, createModelProviderCatalog, createSandboxProviderCatalog, createSkillCatalog, createTrueForgeAgentUIServer, createTrueForgeClient, getCapabilities, listConfiguredMcpServers, listModels, listSkills, modelProviderLogosByName, toHarnessAgentSpec, toHarnessAuth, toHarnessManifest$2 as toHarnessConnectorManifest, toHarnessModelProvider, toHarnessManifest$1 as toHarnessSandboxManifest, toHarnessManifest as toHarnessSkillManifest, toModelSelection, toUiAgentSpec, toUiCatalogModelProviderEntry, toUiConnector, toUiConnectorFromReadEntry, toUiModelProvider, toUiSandboxProvider, toUiSkill };