@tangle-network/sandbox-ui 0.97.0 → 0.99.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.
@@ -21,7 +21,7 @@ import {
21
21
  import {
22
22
  ModelBrandStack,
23
23
  modelBrandFor
24
- } from "./chunk-5XRAKVIV.js";
24
+ } from "./chunk-RQZRXKMR.js";
25
25
  import "./chunk-EI44GEQ5.js";
26
26
  import "./chunk-CZ7CSFO4.js";
27
27
 
package/dist/chat.d.ts CHANGED
@@ -2,9 +2,8 @@ import { MessageRole } from '@tangle-network/ui/chat';
2
2
  export { AgentTimeline, AgentTimelineArtifactItem, AgentTimelineCustomItem, AgentTimelineItem, AgentTimelineMessageItem, AgentTimelineProps, AgentTimelineStatusItem, AgentTimelineTone, AgentTimelineToolGroupItem, AgentTimelineToolItem, ChatContainer, ChatContainerProps, ChatMessage, ChatMessageProps, MessageList, MessageListProps, MessageRole, ThinkingIndicator, ThinkingIndicatorProps, UserMessage, UserMessageProps } from '@tangle-network/ui/chat';
3
3
  import { ReasoningEffort, HarnessType } from '@tangle-network/agent-interface';
4
4
  export { modelProvider, snapHarnessToModel } from '@tangle-network/agent-interface';
5
- import * as Popover from '@radix-ui/react-dropdown-menu';
5
+ import * as DropdownMenu from '@radix-ui/react-dropdown-menu';
6
6
  import * as React from 'react';
7
- import { b as ModelInfo } from './model-brand-CuXKfTMh.js';
8
7
 
9
8
  /**
10
9
  * A reasoning selection: `auto` is a UI-only sentinel ("let the harness/model default decide",
@@ -35,7 +34,7 @@ interface ReasoningLevelPickerProps {
35
34
  */
36
35
  available?: ReadonlyArray<ReasoningEffort>;
37
36
  /** Side the menu opens toward. Defaults to Radix's "bottom". */
38
- side?: Popover.DropdownMenuContentProps["side"];
37
+ side?: DropdownMenu.DropdownMenuContentProps["side"];
39
38
  /**
40
39
  * Let Radix flip the menu to the opposite side when it would overflow the
41
40
  * viewport. Defaults to `true` (Radix default). Pass `false` to pin the menu
@@ -58,241 +57,6 @@ declare const DEFAULT_REASONING_LEVEL_OPTIONS: ReadonlyArray<ReasoningLevelOptio
58
57
  declare const HARNESS_REASONING_OPTIONS: Partial<Record<HarnessType, ReadonlyArray<ReasoningLevelOption>>>;
59
58
  declare function ReasoningLevelPicker({ value, onChange, disabled, className, triggerClassName, options, available, side, avoidCollisions, }: ReasoningLevelPickerProps): React.JSX.Element;
60
59
 
61
- /**
62
- * An agent profile: a named bundle of toolset + persona layered over the same
63
- * model and session. `builtin` profiles are the product's shipped modes (e.g.
64
- * Studio / Assistant); the rest are user-saved custom agents. The concept is
65
- * backend-agnostic — it applies to a router-backed agent and a sandbox-backed
66
- * one alike, which is why it lives beside the model control rather than under
67
- * the harness.
68
- */
69
- interface AgentProfileOption {
70
- id: string;
71
- name: string;
72
- /** Builtin: a one-line description. Custom: derived "N tools" if omitted. */
73
- description?: string;
74
- /** Capability/tool-group ids this profile enables. */
75
- capabilities?: ReadonlyArray<string>;
76
- /** Persona / extra system instructions. */
77
- instructions?: string;
78
- /** A shipped mode vs a user-saved custom agent. */
79
- builtin?: boolean;
80
- }
81
- /** A selectable tool group offered by the create/edit form. */
82
- interface AgentProfileCapability {
83
- id: string;
84
- label: string;
85
- description?: string;
86
- }
87
- /** The editable shape the create/edit form emits. */
88
- interface AgentProfileDraft {
89
- id?: string;
90
- name: string;
91
- capabilities: string[];
92
- instructions: string;
93
- }
94
- interface AgentProfilePickerProps {
95
- /** Selected profile id. */
96
- value: string;
97
- onChange: (id: string) => void;
98
- profiles: ReadonlyArray<AgentProfileOption>;
99
- /**
100
- * Tool catalog for the create/edit form. Provide together with at least one
101
- * write callback to enable authoring custom agents; omit for a
102
- * selection-only picker (the New / edit / delete affordances stay hidden).
103
- */
104
- capabilities?: ReadonlyArray<AgentProfileCapability>;
105
- onCreate?: (draft: AgentProfileDraft) => void | Promise<void>;
106
- onUpdate?: (id: string, draft: AgentProfileDraft) => void | Promise<void>;
107
- onDelete?: (id: string) => void | Promise<void>;
108
- disabled?: boolean;
109
- /** Keep the pinned profile visible while preventing profile selection. */
110
- locked?: boolean;
111
- /** Tooltip shown on the locked trigger when no `onNewChat` is provided. */
112
- lockReason?: string;
113
- /** Offer a fresh chat from the informative lock popover. */
114
- onNewChat?: () => void;
115
- className?: string;
116
- /** Additional classes for the picker trigger. */
117
- triggerClassName?: string;
118
- /** Additional classes for the profile popover. */
119
- popoverClassName?: string;
120
- /** Side the menu opens toward. Defaults to up (composer-anchored). */
121
- side?: "top" | "bottom";
122
- }
123
- /**
124
- * Agent / mode switcher styled to match the chat control strip's pills
125
- * (harness, model, effort). The pill shows the active profile; the menu lists
126
- * builtin modes and saved custom agents. When a capability catalog and a write
127
- * callback are supplied it also authors agents inline (name + tool toggles +
128
- * persona) — a self-contained click-outside popover rather than a Radix menu,
129
- * because the inline form needs its own focus and typing without the menu
130
- * stealing keystrokes.
131
- */
132
- declare function AgentProfilePicker({ value, onChange, profiles, capabilities, onCreate, onUpdate, onDelete, disabled, locked, lockReason, onNewChat, className, triggerClassName, popoverClassName, side, }: AgentProfilePickerProps): React.JSX.Element;
133
-
134
- interface AgentSessionHarnessControl {
135
- value: HarnessType;
136
- onChange: (next: HarnessType) => void;
137
- /** Filter the selectable harnesses (e.g. by plan tier). Defaults to all. */
138
- available?: ReadonlyArray<HarnessType>;
139
- disabled?: boolean;
140
- /**
141
- * A harness is bound to its chat session once the conversation has
142
- * started. While locked the dropdown is inert and the model catalog
143
- * is filtered to what this harness can run — fork the session to
144
- * switch harness.
145
- */
146
- locked?: boolean;
147
- /** Tooltip shown on the locked trigger when no `onNewChat` is provided. */
148
- lockReason?: string;
149
- /**
150
- * Fork action for a locked harness. When provided, the locked trigger turns
151
- * into an informative chip: hover or tap opens a small popover explaining the
152
- * lock and offering a button that calls this to start a fresh session. When
153
- * omitted, the locked trigger stays a plain inert button with `lockReason`.
154
- */
155
- onNewChat?: () => void;
156
- /** Popover heading. Defaults to `Agent fixed to {harness} for this conversation.` */
157
- lockTitle?: React.ReactNode;
158
- /** Popover sub-line. Defaults to "Conversations stay on one agent." */
159
- lockBody?: React.ReactNode;
160
- /** Fork button label. Defaults to "New chat to switch agent". */
161
- newChatLabel?: string;
162
- }
163
- interface AgentSessionModelControl {
164
- /** Canonical model id (provider-prefixed, e.g. "anthropic/claude-opus-4-8"). */
165
- value: string;
166
- onChange: (modelId: string) => void;
167
- /** Models to choose from. Pass `[]` while loading. */
168
- models: ModelInfo[];
169
- loading?: boolean;
170
- popular?: ReadonlyArray<string>;
171
- recents?: ReadonlyArray<string>;
172
- disabled?: boolean;
173
- /**
174
- * Restrict the catalog to these architecture modalities (forwarded to
175
- * `ModelPicker`'s `modalities`). Supplying this — even `[]` — replaces the
176
- * chat surface's default text-chat filter: the caller owns modality
177
- * filtering entirely.
178
- */
179
- modalities?: ReadonlyArray<string>;
180
- /** Drop providers from the picker entirely (forwarded to `ModelPicker`). */
181
- excludeProviders?: ReadonlyArray<string>;
182
- }
183
- interface AgentSessionReasoningControl {
184
- value: ReasoningLevel;
185
- onChange: (value: ReasoningLevel) => void;
186
- options?: ReadonlyArray<ReasoningLevelOption>;
187
- disabled?: boolean;
188
- /**
189
- * Reasoning efforts to offer when no harness is selected (e.g. a model-derived capability set).
190
- * When a harness IS present the strip derives this from `reasoningEffortsFor(harness)` instead.
191
- */
192
- available?: ReadonlyArray<ReasoningEffort>;
193
- }
194
- /**
195
- * Agent-profile (mode / toolset / persona) selection. Backend-agnostic — it
196
- * sits beside the model in both router-backed and sandbox-backed modes, so the
197
- * profile binding remains independent of harness selection.
198
- */
199
- interface AgentSessionProfileControl {
200
- value: string;
201
- onChange: (id: string) => void;
202
- profiles: ReadonlyArray<AgentProfileOption>;
203
- /** Tool catalog for inline authoring; pair with a write callback to enable it. */
204
- capabilities?: ReadonlyArray<AgentProfileCapability>;
205
- onCreate?: (draft: AgentProfileDraft) => void | Promise<void>;
206
- onUpdate?: (id: string, draft: AgentProfileDraft) => void | Promise<void>;
207
- onDelete?: (id: string) => void | Promise<void>;
208
- disabled?: boolean;
209
- /** Keep the profile pinned once this conversation has started. */
210
- locked?: boolean;
211
- /** Tooltip shown on the locked trigger when no `onNewChat` is provided. */
212
- lockReason?: string;
213
- /** Start a fresh chat where the user can select another profile. */
214
- onNewChat?: () => void;
215
- }
216
- interface AgentSessionControlsProps {
217
- /**
218
- * Harness (agent backend) selection. Switching harness usually means
219
- * re-creating the agent session — the consumer owns that lifecycle.
220
- */
221
- harness?: AgentSessionHarnessControl;
222
- /**
223
- * Agent profile (mode / toolset / persona). Universal — present in both
224
- * router-backed and sandbox-backed composers, independent of the harness.
225
- */
226
- profile?: AgentSessionProfileControl;
227
- /** Per-turn model override, fed by the router's model catalog. */
228
- model?: AgentSessionModelControl;
229
- /** Thinking-effort level applied to subsequent turns. */
230
- reasoning?: AgentSessionReasoningControl;
231
- /**
232
- * Restrict the model catalog to what the selected harness can actually run,
233
- * the same way `harness.locked` does — but WITHOUT locking the harness
234
- * dropdown. Off by default: the strip shows every model and picking an
235
- * incompatible one snaps the harness to the model's native backend. Turn it
236
- * ON for a harness-first surface (e.g. a workspace-wide, sandbox-bound
237
- * harness) where that silent backend swap is undesirable — an incompatible
238
- * model is then simply not offered.
239
- */
240
- filterModelsToHarness?: boolean;
241
- /** Right-aligned extra content (token meter, cost, status). */
242
- trailing?: React.ReactNode;
243
- className?: string;
244
- /**
245
- * Which surface these controls live on. `"chat"` (default) restricts the
246
- * harness list to chat-capable backends — shell-only `cli-base` is hidden
247
- * because it has no conversational agent. `"all"` keeps every harness for
248
- * scheduled / non-chat surfaces. An explicit `harness.available` list still
249
- * wins; this only trims the default-everything set.
250
- */
251
- context?: "chat" | "all";
252
- /**
253
- * Trigger layout. `"inline"` (default) lays the pickers out in a row — the
254
- * existing behavior. `"gear"` collapses them behind a single compact gear
255
- * button whose menu opens up-and-left, for right-anchored copilots where
256
- * the composer is tight. Nested model/harness/effort menus render adjacent
257
- * on the left of the gear menu. `"combined"` is the gear layout with a
258
- * labeled trigger instead of the anonymous icon: the button summarizes the
259
- * current selection as text (`harness · model · effort`) so the choice stays
260
- * visible without opening the menu — for a composer that wants one compact
261
- * agent control it can read at a glance.
262
- */
263
- layout?: "inline" | "gear" | "combined";
264
- /**
265
- * Where the pickers open. `"auto"` (default) keeps Radix's collision-aware
266
- * behavior: the menus open downward but flip up when the composer is docked
267
- * at the bottom of the viewport. `"down"` pins them open downward — for a
268
- * composer floating in open space (e.g. a centered new-chat surface) where
269
- * flipping up would cover the heading. Honored by the `"inline"` strip (its
270
- * nested pickers) and by the `"combined"` panel (which opens downward instead
271
- * of upward); the `"gear"` menu keeps its own placement.
272
- */
273
- menuPlacement?: "auto" | "down";
274
- }
275
- /**
276
- * Compact control strip for an agent chat composer: harness, model, and
277
- * thinking-effort pickers in one row. Every section is optional and only
278
- * renders when its control object is provided — never show a dead control.
279
- *
280
- * When BOTH harness and model controls are present the pair is kept
281
- * coherent automatically (see harness-model-compat): picking a harness
282
- * snaps an incompatible model to that harness's best catalog option;
283
- * picking a model the current harness can't run switches to the model's
284
- * native harness — unless the catalog is restricted to the harness (when
285
- * `locked`, or the consumer sets `filterModelsToHarness`), in which case the
286
- * incompatible model is never offered and no swap happens.
287
- *
288
- * When a reasoning control is also present, the effort is re-clamped into the
289
- * set the new (harness, model) pair supports on every harness/model change, so
290
- * the effort picker's label never disagrees with the value actually in effect.
291
- *
292
- * Designed to slot into `SandboxWorkbench`'s `session.composerControls`.
293
- */
294
- declare function AgentSessionControls({ harness, profile, model, reasoning, filterModelsToHarness, trailing, className, context, layout, menuPlacement, }: AgentSessionControlsProps): React.JSX.Element | null;
295
-
296
60
  /** Limits applied when staging files onto a composer. */
297
61
  interface ComposerFileValidationConfig {
298
62
  /** Reject any single file larger than this. */
@@ -398,23 +162,13 @@ interface AgentComposerProps {
398
162
  /** Stop the in-flight turn. With `busy`, replaces send with a Stop button. */
399
163
  onCancel?: () => void;
400
164
  /**
401
- * Agent backend. Present → sandbox-backed (the harness pill shows and snaps
402
- * with the model); omitted → router-backed (no harness, just model/effort).
403
- */
404
- harness?: AgentSessionHarnessControl;
405
- /** Agent profile (mode / toolset / persona) — universal across both modes. */
406
- profile?: AgentSessionProfileControl;
407
- model?: AgentSessionModelControl;
408
- reasoning?: AgentSessionReasoningControl;
409
- /** Forwarded to the control strip (chat hides shell-only harnesses). */
410
- context?: "chat" | "all";
411
- /**
412
- * Override the built-in control strip with custom controls. When set, the
413
- * `harness`/`profile`/`model`/`reasoning` props are ignored and this node is
414
- * rendered in the control row instead — for apps that compose their own
415
- * pickers. Omit to use the canonical strip.
165
+ * The composer's control strip (profile · harness · model · effort pickers,
166
+ * token meters, …), rendered in the bottom row. Required — the legacy
167
+ * built-in strip was removed with the legacy pickers: pass
168
+ * `AgentSessionControls` from `@tangle-network/agent-app/web-react` (or your
169
+ * own composition), or `null` for a bare composer.
416
170
  */
417
- controls?: React.ReactNode;
171
+ controls: React.ReactNode;
418
172
  /** Extra content left of the send button (token meter, cost, status). */
419
173
  trailing?: React.ReactNode;
420
174
  /**
@@ -481,20 +235,18 @@ interface AgentComposerProps {
481
235
  /**
482
236
  * The canonical agent chat input: one rounded surface holding an auto-growing
483
237
  * textarea and a bottom row that runs left → right — attach buttons, the
484
- * embedded control strip (profile · harness · model · effort), trailing slot,
485
- * and the send button on the far right. The strip's pickers
486
- * snap the harness↔model pair automatically; which controls appear is driven
487
- * purely by which control objects are passed, so the same component is the
488
- * router-backed composer (no harness) and the sandbox-backed one (with harness).
238
+ * control strip (supplied via the required `controls` prop), trailing slot,
239
+ * and the send button on the far right. The strip is explicit: the canonical
240
+ * pickers are `ModelPicker` / `EffortPicker` / `AgentSessionControls` from
241
+ * `@tangle-network/agent-app/web-react` — this component only owns the slot.
489
242
  *
490
243
  * Opt-in extras make it the superset of every app's hand-rolled composer:
491
244
  * file/folder attachments with drag-and-drop + chips + clipboard paste
492
245
  * (`onAttach` also gates pasting files onto the textarea, auto-naming
493
246
  * generic clipboard image blobs `pasted-image-<n>.<ext>`), a streaming Stop
494
- * button (`busy` + `onCancel`), a `controls` override slot for bespoke
495
- * picker rows, and a Cmd/Ctrl+L focus shortcut.
247
+ * button (`busy` + `onCancel`), and a Cmd/Ctrl+L focus shortcut.
496
248
  */
497
- declare function AgentComposer({ value, onChange, onSubmit, placeholder, disabled, busy, onCancel, harness, profile, model, reasoning, context, controls, trailing, onAttach, onAttachFolder, attachments, onRemoveFile, onRetryFile, accept, onRejectFiles, dropTitle, dropDescription, canSubmitWhileBusy, canSubmitAttachmentsOnly, mention, focusShortcut, minRows, maxHeight, className, sendLabel, autoFocus, }: AgentComposerProps): React.JSX.Element;
249
+ declare function AgentComposer({ value, onChange, onSubmit, placeholder, disabled, busy, onCancel, controls, trailing, onAttach, onAttachFolder, attachments, onRemoveFile, onRetryFile, accept, onRejectFiles, dropTitle, dropDescription, canSubmitWhileBusy, canSubmitAttachmentsOnly, mention, focusShortcut, minRows, maxHeight, className, sendLabel, autoFocus, }: AgentComposerProps): React.JSX.Element;
498
250
 
499
251
  /**
500
252
  * Visual contract for a rendered mention pill. The TipTap editor extension in
@@ -508,19 +260,77 @@ declare function AgentComposer({ value, onChange, onSubmit, placeholder, disable
508
260
  declare const MENTION_PILL_CLASS: string;
509
261
 
510
262
  /**
511
- * Whether `harness` can run `modelId`. Router-backed harnesses, and provider-less
512
- * sentinel ids (like "default" or an empty selection — "the session's own
513
- * configuration"), are compatible with everything.
263
+ * An agent profile: a named bundle of toolset + persona layered over the same
264
+ * model and session. `builtin` profiles are the product's shipped modes (e.g.
265
+ * Studio / Assistant); the rest are user-saved custom agents. The concept is
266
+ * backend-agnostic — it applies to a router-backed agent and a sandbox-backed
267
+ * one alike, which is why it lives beside the model control rather than under
268
+ * the harness.
514
269
  */
515
- declare function isModelCompatibleWithHarness(harness: HarnessType, modelId: string): boolean;
270
+ interface AgentProfileOption {
271
+ id: string;
272
+ name: string;
273
+ /** Builtin: a one-line description. Custom: derived "N tools" if omitted. */
274
+ description?: string;
275
+ /** Capability/tool-group ids this profile enables. */
276
+ capabilities?: ReadonlyArray<string>;
277
+ /** Persona / extra system instructions. */
278
+ instructions?: string;
279
+ /** A shipped mode vs a user-saved custom agent. */
280
+ builtin?: boolean;
281
+ }
282
+ /** A selectable tool group offered by the create/edit form. */
283
+ interface AgentProfileCapability {
284
+ id: string;
285
+ label: string;
286
+ description?: string;
287
+ }
288
+ /** The editable shape the create/edit form emits. */
289
+ interface AgentProfileDraft {
290
+ id?: string;
291
+ name: string;
292
+ capabilities: string[];
293
+ instructions: string;
294
+ }
295
+ interface AgentProfilePickerProps {
296
+ /** Selected profile id. */
297
+ value: string;
298
+ onChange: (id: string) => void;
299
+ profiles: ReadonlyArray<AgentProfileOption>;
300
+ /**
301
+ * Tool catalog for the create/edit form. Provide together with at least one
302
+ * write callback to enable authoring custom agents; omit for a
303
+ * selection-only picker (the New / edit / delete affordances stay hidden).
304
+ */
305
+ capabilities?: ReadonlyArray<AgentProfileCapability>;
306
+ onCreate?: (draft: AgentProfileDraft) => void | Promise<void>;
307
+ onUpdate?: (id: string, draft: AgentProfileDraft) => void | Promise<void>;
308
+ onDelete?: (id: string) => void | Promise<void>;
309
+ disabled?: boolean;
310
+ /** Keep the pinned profile visible while preventing profile selection. */
311
+ locked?: boolean;
312
+ /** Tooltip shown on the locked trigger when no `onNewChat` is provided. */
313
+ lockReason?: string;
314
+ /** Offer a fresh chat from the informative lock popover. */
315
+ onNewChat?: () => void;
316
+ className?: string;
317
+ /** Additional classes for the picker trigger. */
318
+ triggerClassName?: string;
319
+ /** Additional classes for the profile popover. */
320
+ popoverClassName?: string;
321
+ /** Side the menu opens toward. Defaults to up (composer-anchored). */
322
+ side?: "top" | "bottom";
323
+ }
516
324
  /**
517
- * Keeps `modelId` when the harness can run it; otherwise returns the harness's
518
- * best compatible model from the loaded catalog (preferred patterns in order,
519
- * highest version within a pattern). Adapts the picker's `ModelInfo[]` to the
520
- * canonical id list `agent-interface` ranks over; when the catalog holds nothing
521
- * compatible the original id is returned unchanged.
325
+ * Agent / mode switcher styled to match the chat control strip's pills
326
+ * (harness, model, effort). The pill shows the active profile; the menu lists
327
+ * builtin modes and saved custom agents. When a capability catalog and a write
328
+ * callback are supplied it also authors agents inline (name + tool toggles +
329
+ * persona) — a self-contained click-outside popover rather than a Radix menu,
330
+ * because the inline form needs its own focus and typing without the menu
331
+ * stealing keystrokes.
522
332
  */
523
- declare function snapModelToHarness(harness: HarnessType, modelId: string, models: ReadonlyArray<ModelInfo>): string;
333
+ declare function AgentProfilePicker({ value, onChange, profiles, capabilities, onCreate, onUpdate, onDelete, disabled, locked, lockReason, onNewChat, className, triggerClassName, popoverClassName, side, }: AgentProfilePickerProps): React.JSX.Element;
524
334
 
525
335
  type ArtifactKind = string;
526
336
  interface ArtifactScope {
@@ -619,4 +429,4 @@ declare function createFetchTransport(opts: {
619
429
  fetchImpl?: typeof fetch;
620
430
  }): ArtifactAgentDockTransport;
621
431
 
622
- export { AgentComposer, type AgentComposerMention, type AgentComposerProps, type AgentProfileCapability, type AgentProfileDraft, type AgentProfileOption, AgentProfilePicker, type AgentProfilePickerProps, AgentSessionControls, type AgentSessionControlsProps, type AgentSessionHarnessControl, type AgentSessionModelControl, type AgentSessionProfileControl, type AgentSessionReasoningControl, ArtifactAgentDock, type ArtifactAgentDockProps, type ArtifactAgentDockTransport, type ArtifactDockMessage, type ArtifactDockStreamEvent, type ArtifactKind, type ArtifactScope, type ComposerFile, type ComposerFileRejection, type ComposerFileValidationConfig, DEFAULT_REASONING_LEVEL_OPTIONS, HARNESS_REASONING_OPTIONS, MENTION_PILL_CLASS, type MentionItem, type ReasoningLevel, type ReasoningLevelOption, ReasoningLevelPicker, type ReasoningLevelPickerProps, createFetchTransport, isAcceptedType, isModelCompatibleWithHarness, snapModelToHarness, validateComposerFiles };
432
+ export { AgentComposer, type AgentComposerMention, type AgentComposerProps, type AgentProfileCapability, type AgentProfileDraft, type AgentProfileOption, AgentProfilePicker, type AgentProfilePickerProps, ArtifactAgentDock, type ArtifactAgentDockProps, type ArtifactAgentDockTransport, type ArtifactDockMessage, type ArtifactDockStreamEvent, type ArtifactKind, type ArtifactScope, type ComposerFile, type ComposerFileRejection, type ComposerFileValidationConfig, DEFAULT_REASONING_LEVEL_OPTIONS, HARNESS_REASONING_OPTIONS, MENTION_PILL_CLASS, type MentionItem, type ReasoningLevel, type ReasoningLevelOption, ReasoningLevelPicker, type ReasoningLevelPickerProps, createFetchTransport, isAcceptedType, validateComposerFiles };
package/dist/chat.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import {
2
2
  AgentComposer,
3
3
  AgentProfilePicker,
4
- AgentSessionControls,
5
4
  AgentTimeline,
6
5
  ArtifactAgentDock,
7
6
  ChatContainer,
@@ -14,25 +13,19 @@ import {
14
13
  UserMessage,
15
14
  createFetchTransport,
16
15
  isAcceptedType,
17
- isModelCompatibleWithHarness,
18
16
  modelProvider,
19
17
  snapHarnessToModel,
20
- snapModelToHarness,
21
18
  validateComposerFiles
22
- } from "./chunk-A4AABEX4.js";
19
+ } from "./chunk-G7CFCZQ7.js";
23
20
  import "./chunk-TK46XFLM.js";
24
21
  import {
25
22
  MENTION_PILL_CLASS
26
23
  } from "./chunk-WGOOQAW3.js";
27
- import "./chunk-WSN2RZC6.js";
28
- import "./chunk-WMVUJ5SA.js";
29
- import "./chunk-5XRAKVIV.js";
30
24
  import "./chunk-EI44GEQ5.js";
31
25
  import "./chunk-CZ7CSFO4.js";
32
26
  export {
33
27
  AgentComposer,
34
28
  AgentProfilePicker,
35
- AgentSessionControls,
36
29
  AgentTimeline,
37
30
  ArtifactAgentDock,
38
31
  ChatContainer,
@@ -46,9 +39,7 @@ export {
46
39
  UserMessage,
47
40
  createFetchTransport,
48
41
  isAcceptedType,
49
- isModelCompatibleWithHarness,
50
42
  modelProvider,
51
43
  snapHarnessToModel,
52
- snapModelToHarness,
53
44
  validateComposerFiles
54
45
  };