@mastra/playground-ui 12.0.0 → 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/CHANGELOG.md +112 -0
  2. package/dist/index.cjs.js +2300 -811
  3. package/dist/index.cjs.js.map +1 -1
  4. package/dist/index.es.js +2293 -813
  5. package/dist/index.es.js.map +1 -1
  6. package/dist/src/domains/agents/components/agent-cms-form-shell.d.ts +2 -1
  7. package/dist/src/domains/agents/components/agent-cms-layout/agent-cms-layout.d.ts +2 -1
  8. package/dist/src/domains/agents/components/agent-cms-pages/index.d.ts +1 -0
  9. package/dist/src/domains/agents/components/agent-cms-pages/skill-edit-dialog.d.ts +8 -0
  10. package/dist/src/domains/agents/components/agent-cms-pages/skill-file-tree.d.ts +15 -0
  11. package/dist/src/domains/agents/components/agent-cms-pages/skill-folder.d.ts +14 -0
  12. package/dist/src/domains/agents/components/agent-cms-pages/skills-page.d.ts +1 -0
  13. package/dist/src/domains/agents/components/agent-cms-sidebar/use-sidebar-descriptions.d.ts +4 -0
  14. package/dist/src/domains/agents/components/agent-edit-page/use-agent-edit-form.d.ts +32 -0
  15. package/dist/src/domains/agents/components/agent-edit-page/utils/form-validation.d.ts +43 -0
  16. package/dist/src/domains/agents/components/agent-version-panel.d.ts +7 -0
  17. package/dist/src/domains/agents/hooks/use-agent-cms-form.d.ts +33 -0
  18. package/dist/src/domains/agents/hooks/use-agent-skills.d.ts +12 -0
  19. package/dist/src/domains/agents/hooks/use-agent-workspace.d.ts +13 -0
  20. package/dist/src/domains/agents/hooks/use-create-skill.d.ts +10 -0
  21. package/dist/src/domains/agents/hooks/use-stored-skills.d.ts +1 -0
  22. package/dist/src/domains/agents/index.d.ts +3 -0
  23. package/dist/src/domains/agents/utils/agent-form-mappers.d.ts +6 -1
  24. package/dist/src/domains/agents/utils/compute-agent-initial-values.d.ts +3 -0
  25. package/dist/src/domains/datasets/components/dataset-combobox.d.ts +11 -0
  26. package/dist/src/domains/datasets/hooks/use-dataset-item-versions.d.ts +1 -1
  27. package/dist/src/domains/datasets/index.d.ts +2 -0
  28. package/dist/src/domains/experiments/hooks/use-experiment-trace.d.ts +1 -1
  29. package/dist/src/domains/mcps/components/mcp-client-create/mcp-client-create-content.d.ts +7 -1
  30. package/dist/src/domains/mcps/components/mcp-client-create/mcp-client-form-sidebar.d.ts +2 -1
  31. package/dist/src/domains/mcps/components/mcp-client-create/mcp-client-tool-preview.d.ts +6 -1
  32. package/dist/src/ds/components/Breadcrumb/Breadcrumb.d.ts +1 -1
  33. package/dist/src/ds/components/CodeDiff/code-diff.d.ts +5 -0
  34. package/dist/src/ds/components/CodeDiff/code-diff.stories.d.ts +9 -0
  35. package/dist/src/ds/components/CodeDiff/index.d.ts +2 -0
  36. package/dist/src/ds/components/FormFields/select-field.d.ts +1 -0
  37. package/dist/src/ds/components/Tree/index.d.ts +1 -0
  38. package/dist/src/ds/components/Tree/tree-context.d.ts +15 -0
  39. package/dist/src/ds/components/Tree/tree-file.d.ts +7 -0
  40. package/dist/src/ds/components/Tree/tree-folder-content.d.ts +6 -0
  41. package/dist/src/ds/components/Tree/tree-folder-trigger.d.ts +7 -0
  42. package/dist/src/ds/components/Tree/tree-folder.d.ts +9 -0
  43. package/dist/src/ds/components/Tree/tree-icon.d.ts +6 -0
  44. package/dist/src/ds/components/Tree/tree-input.d.ts +11 -0
  45. package/dist/src/ds/components/Tree/tree-label.d.ts +6 -0
  46. package/dist/src/ds/components/Tree/tree-root.d.ts +8 -0
  47. package/dist/src/ds/components/Tree/tree.d.ts +9 -0
  48. package/dist/src/ds/components/Tree/tree.stories.d.ts +10 -0
  49. package/dist/src/index.d.ts +2 -0
  50. package/package.json +14 -13
@@ -15,5 +15,6 @@ export interface AgentCmsFormShellProps {
15
15
  banner?: ReactNode;
16
16
  children: ReactNode;
17
17
  versionId?: string;
18
+ rightPanel?: ReactNode;
18
19
  }
19
- export declare function AgentCmsFormShell({ form, mode, agentId, isSubmitting, isSavingDraft, handlePublish, handleSaveDraft, readOnly, basePath, currentPath, banner, children, versionId, }: AgentCmsFormShellProps): import("react/jsx-runtime").JSX.Element;
20
+ export declare function AgentCmsFormShell({ form, mode, agentId, isSubmitting, isSavingDraft, handlePublish, handleSaveDraft, readOnly, basePath, currentPath, banner, children, versionId, rightPanel, }: AgentCmsFormShellProps): import("react/jsx-runtime").JSX.Element;
@@ -3,6 +3,7 @@ interface AgentsCmsLayoutProps {
3
3
  currentPath: string;
4
4
  basePath: string;
5
5
  versionId?: string;
6
+ rightPanel?: React.ReactNode;
6
7
  }
7
- export declare function AgentsCmsLayout({ children, currentPath, basePath, versionId }: AgentsCmsLayoutProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function AgentsCmsLayout({ children, currentPath, basePath, versionId, rightPanel }: AgentsCmsLayoutProps): import("react/jsx-runtime").JSX.Element;
8
9
  export {};
@@ -6,3 +6,4 @@ export * from './scorers-page';
6
6
  export * from './workflows-page';
7
7
  export * from './memory-page';
8
8
  export * from './variables-page';
9
+ export * from './skills-page';
@@ -0,0 +1,8 @@
1
+ import { StoredSkillResponse } from '@mastra/client-js';
2
+ export interface SkillEditDialogProps {
3
+ isOpen: boolean;
4
+ onClose: () => void;
5
+ onSkillCreated: (skill: StoredSkillResponse, workspaceId: string) => void;
6
+ readOnly?: boolean;
7
+ }
8
+ export declare function SkillEditDialog({ isOpen, onClose, onSkillCreated, readOnly }: SkillEditDialogProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import { InMemoryFileNode } from '../agent-edit-page/utils/form-validation';
2
+ export interface SkillFileTreeProps {
3
+ files: InMemoryFileNode[];
4
+ onChange: (files: InMemoryFileNode[]) => void;
5
+ selectedFileId: string | null;
6
+ onSelectFile: (id: string | null) => void;
7
+ readOnly?: boolean;
8
+ }
9
+ export declare function createInitialStructure(name: string): InMemoryFileNode[];
10
+ export declare function updateRootFolderName(files: InMemoryFileNode[], name: string): InMemoryFileNode[];
11
+ export declare function extractSkillInstructions(files: InMemoryFileNode[]): string;
12
+ export declare function extractSkillLicense(files: InMemoryFileNode[]): string | undefined;
13
+ export declare function isImageContent(content: string | undefined): boolean;
14
+ export declare function updateNodeContent(nodes: InMemoryFileNode[], nodeId: string, content: string): InMemoryFileNode[];
15
+ export declare function SkillFileTree({ files, onChange, selectedFileId, onSelectFile, readOnly }: SkillFileTreeProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,14 @@
1
+ import { InMemoryFileNode } from '../agent-edit-page/utils/form-validation';
2
+ interface SkillFolderProps {
3
+ files: InMemoryFileNode[];
4
+ onChange: (files: InMemoryFileNode[]) => void;
5
+ readOnly?: boolean;
6
+ workspaceId: string;
7
+ setWorkspaceId: (id: string) => void;
8
+ workspaceOptions: {
9
+ value: string;
10
+ label: string;
11
+ }[];
12
+ }
13
+ export declare function SkillFolder({ files, onChange, readOnly, workspaceId, setWorkspaceId, workspaceOptions, }: SkillFolderProps): import("react/jsx-runtime").JSX.Element;
14
+ export {};
@@ -0,0 +1 @@
1
+ export declare function SkillsPage(): import("react/jsx-runtime").JSX.Element;
@@ -25,6 +25,10 @@ export declare function useSidebarDescriptions(control: Control<AgentFormValues>
25
25
  description: string;
26
26
  done: boolean;
27
27
  };
28
+ skills: {
29
+ description: string;
30
+ done: boolean;
31
+ };
28
32
  memory: {
29
33
  description: string;
30
34
  done: boolean;
@@ -13,10 +13,19 @@ export declare function useAgentEditForm(options?: UseAgentEditFormOptions): {
13
13
  mcpClients: {
14
14
  name: string;
15
15
  servers: Record<string, any>;
16
+ selectedTools: Record<string, {
17
+ description?: string | undefined;
18
+ }>;
16
19
  id?: string | undefined;
17
20
  description?: string | undefined;
18
21
  }[];
19
22
  mcpClientsToDelete: string[];
23
+ skills: Record<string, {
24
+ description?: string | undefined;
25
+ instructions?: string | undefined;
26
+ pin?: string | undefined;
27
+ strategy?: "latest" | "live" | undefined;
28
+ }>;
20
29
  description?: string | undefined;
21
30
  tools?: Record<string, {
22
31
  description?: string | undefined;
@@ -86,6 +95,13 @@ export declare function useAgentEditForm(options?: UseAgentEditFormOptions): {
86
95
  content: string;
87
96
  rules?: import('@mastra/core/storage').RuleGroup | undefined;
88
97
  }[] | undefined;
98
+ workspace?: {
99
+ type: "id";
100
+ workspaceId: string;
101
+ } | {
102
+ type: "inline";
103
+ config: Record<string, unknown>;
104
+ } | undefined;
89
105
  }, any, {
90
106
  name: string;
91
107
  instructions: string;
@@ -96,10 +112,19 @@ export declare function useAgentEditForm(options?: UseAgentEditFormOptions): {
96
112
  mcpClients: {
97
113
  name: string;
98
114
  servers: Record<string, any>;
115
+ selectedTools: Record<string, {
116
+ description?: string | undefined;
117
+ }>;
99
118
  id?: string | undefined;
100
119
  description?: string | undefined;
101
120
  }[];
102
121
  mcpClientsToDelete: string[];
122
+ skills: Record<string, {
123
+ description?: string | undefined;
124
+ instructions?: string | undefined;
125
+ pin?: string | undefined;
126
+ strategy?: "latest" | "live" | undefined;
127
+ }>;
103
128
  description?: string | undefined;
104
129
  tools?: Record<string, {
105
130
  description?: string | undefined;
@@ -169,5 +194,12 @@ export declare function useAgentEditForm(options?: UseAgentEditFormOptions): {
169
194
  content: string;
170
195
  rules?: import('@mastra/core/storage').RuleGroup | undefined;
171
196
  }[] | undefined;
197
+ workspace?: {
198
+ type: "id";
199
+ workspaceId: string;
200
+ } | {
201
+ type: "inline";
202
+ config: Record<string, unknown>;
203
+ } | undefined;
172
204
  }>;
173
205
  };
@@ -1,6 +1,20 @@
1
1
  import { z } from 'zod';
2
2
  import { JsonSchema } from '../../../../../lib/json-schema';
3
3
  import { RuleGroup } from '@mastra/core/storage';
4
+ export type InMemoryFileNode = {
5
+ id: string;
6
+ name: string;
7
+ type: 'file' | 'folder';
8
+ content?: string;
9
+ children?: InMemoryFileNode[];
10
+ };
11
+ export type SkillFormValue = {
12
+ localId: string;
13
+ name: string;
14
+ description: string;
15
+ workspaceId: string;
16
+ files: InMemoryFileNode[];
17
+ };
4
18
  export type InstructionBlock = {
5
19
  id: string;
6
20
  type: 'prompt_block';
@@ -12,6 +26,15 @@ declare const entityConfigSchema: z.ZodObject<{
12
26
  description: z.ZodOptional<z.ZodString>;
13
27
  rules: z.ZodOptional<z.ZodType<RuleGroup, unknown, z.core.$ZodTypeInternals<RuleGroup, unknown>>>;
14
28
  }, z.core.$strip>;
29
+ declare const skillConfigSchema: z.ZodObject<{
30
+ description: z.ZodOptional<z.ZodString>;
31
+ instructions: z.ZodOptional<z.ZodString>;
32
+ pin: z.ZodOptional<z.ZodString>;
33
+ strategy: z.ZodOptional<z.ZodEnum<{
34
+ latest: "latest";
35
+ live: "live";
36
+ }>>;
37
+ }, z.core.$strip>;
15
38
  declare const scorerConfigSchema: z.ZodObject<{
16
39
  description: z.ZodOptional<z.ZodString>;
17
40
  sampling: z.ZodOptional<z.ZodObject<{
@@ -108,10 +131,30 @@ export declare const agentFormSchema: z.ZodObject<{
108
131
  name: z.ZodString;
109
132
  description: z.ZodOptional<z.ZodString>;
110
133
  servers: z.ZodRecord<z.ZodString, z.ZodAny>;
134
+ selectedTools: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
135
+ description: z.ZodOptional<z.ZodString>;
136
+ }, z.core.$strip>>>>;
111
137
  }, z.core.$strip>>>>;
112
138
  mcpClientsToDelete: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
139
+ skills: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
140
+ description: z.ZodOptional<z.ZodString>;
141
+ instructions: z.ZodOptional<z.ZodString>;
142
+ pin: z.ZodOptional<z.ZodString>;
143
+ strategy: z.ZodOptional<z.ZodEnum<{
144
+ latest: "latest";
145
+ live: "live";
146
+ }>>;
147
+ }, z.core.$strip>>>>;
148
+ workspace: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
149
+ type: z.ZodLiteral<"id">;
150
+ workspaceId: z.ZodString;
151
+ }, z.core.$strip>, z.ZodObject<{
152
+ type: z.ZodLiteral<"inline">;
153
+ config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
154
+ }, z.core.$strip>], "type">>;
113
155
  }, z.core.$strip>;
114
156
  export type AgentFormValues = z.infer<typeof agentFormSchema>;
115
157
  export type EntityConfig = z.infer<typeof entityConfigSchema>;
116
158
  export type ScorerConfig = z.infer<typeof scorerConfigSchema>;
159
+ export type SkillConfig = z.infer<typeof skillConfigSchema>;
117
160
  export {};
@@ -0,0 +1,7 @@
1
+ export interface AgentVersionPanelProps {
2
+ agentId: string;
3
+ selectedVersionId?: string;
4
+ onVersionSelect: (versionId: string) => void;
5
+ activeVersionId?: string;
6
+ }
7
+ export declare function AgentVersionPanel({ agentId, selectedVersionId, onVersionSelect, activeVersionId, }: AgentVersionPanelProps): import("react/jsx-runtime").JSX.Element;
@@ -21,10 +21,19 @@ export declare function useAgentCmsForm(options: UseAgentCmsFormOptions): {
21
21
  mcpClients: {
22
22
  name: string;
23
23
  servers: Record<string, any>;
24
+ selectedTools: Record<string, {
25
+ description?: string | undefined;
26
+ }>;
24
27
  id?: string | undefined;
25
28
  description?: string | undefined;
26
29
  }[];
27
30
  mcpClientsToDelete: string[];
31
+ skills: Record<string, {
32
+ description?: string | undefined;
33
+ instructions?: string | undefined;
34
+ pin?: string | undefined;
35
+ strategy?: "latest" | "live" | undefined;
36
+ }>;
28
37
  description?: string | undefined;
29
38
  tools?: Record<string, {
30
39
  description?: string | undefined;
@@ -94,6 +103,13 @@ export declare function useAgentCmsForm(options: UseAgentCmsFormOptions): {
94
103
  content: string;
95
104
  rules?: import('@mastra/core/storage').RuleGroup | undefined;
96
105
  }[] | undefined;
106
+ workspace?: {
107
+ type: "id";
108
+ workspaceId: string;
109
+ } | {
110
+ type: "inline";
111
+ config: Record<string, unknown>;
112
+ } | undefined;
97
113
  }, any, {
98
114
  name: string;
99
115
  instructions: string;
@@ -104,10 +120,19 @@ export declare function useAgentCmsForm(options: UseAgentCmsFormOptions): {
104
120
  mcpClients: {
105
121
  name: string;
106
122
  servers: Record<string, any>;
123
+ selectedTools: Record<string, {
124
+ description?: string | undefined;
125
+ }>;
107
126
  id?: string | undefined;
108
127
  description?: string | undefined;
109
128
  }[];
110
129
  mcpClientsToDelete: string[];
130
+ skills: Record<string, {
131
+ description?: string | undefined;
132
+ instructions?: string | undefined;
133
+ pin?: string | undefined;
134
+ strategy?: "latest" | "live" | undefined;
135
+ }>;
111
136
  description?: string | undefined;
112
137
  tools?: Record<string, {
113
138
  description?: string | undefined;
@@ -177,11 +202,19 @@ export declare function useAgentCmsForm(options: UseAgentCmsFormOptions): {
177
202
  content: string;
178
203
  rules?: import('@mastra/core/storage').RuleGroup | undefined;
179
204
  }[] | undefined;
205
+ workspace?: {
206
+ type: "id";
207
+ workspaceId: string;
208
+ } | {
209
+ type: "inline";
210
+ config: Record<string, unknown>;
211
+ } | undefined;
180
212
  }>;
181
213
  handlePublish: () => Promise<void>;
182
214
  handleSaveDraft: () => Promise<void>;
183
215
  isSubmitting: boolean;
184
216
  isSavingDraft: boolean;
185
217
  canPublish: boolean;
218
+ isDirty: boolean;
186
219
  };
187
220
  export {};
@@ -0,0 +1,12 @@
1
+ import { StoredAgentSkillConfig } from '@mastra/client-js';
2
+ /**
3
+ * Hook to read and mutate the skills config for a stored agent.
4
+ *
5
+ * The skills field is `Record<string, StoredAgentSkillConfig>` on the agent
6
+ * snapshot. Each key is a stored skill ID and the value holds per-skill
7
+ * overrides (description, instructions, pin, strategy).
8
+ */
9
+ export declare function useAgentSkills(agentId?: string): {
10
+ skills: Record<string, StoredAgentSkillConfig>;
11
+ updateSkills: import('@tanstack/react-query').UseMutationResult<import('@mastra/client-js').StoredAgentResponse, Error, Record<string, StoredAgentSkillConfig> | undefined, unknown>;
12
+ };
@@ -0,0 +1,13 @@
1
+ import { StoredWorkspaceRef } from '@mastra/client-js';
2
+ /**
3
+ * Hook to read and mutate the workspace reference for a stored agent.
4
+ *
5
+ * The workspace ref is part of the agent snapshot config and can be:
6
+ * - `{ type: 'id', workspaceId }` — references a stored workspace by ID
7
+ * - `{ type: 'inline', config }` — inline workspace config
8
+ * - `undefined` — no workspace assigned
9
+ */
10
+ export declare function useAgentWorkspace(agentId?: string): {
11
+ workspace: StoredWorkspaceRef | undefined;
12
+ updateWorkspace: import('@tanstack/react-query').UseMutationResult<import('@mastra/client-js').StoredAgentResponse, Error, StoredWorkspaceRef | undefined, unknown>;
13
+ };
@@ -0,0 +1,10 @@
1
+ import { StoredSkillResponse } from '@mastra/client-js';
2
+ import { InMemoryFileNode } from '../components/agent-edit-page/utils/form-validation';
3
+ interface CreateSkillParams {
4
+ name: string;
5
+ description: string;
6
+ workspaceId: string;
7
+ files: InMemoryFileNode[];
8
+ }
9
+ export declare function useCreateSkill(): import('@tanstack/react-query').UseMutationResult<StoredSkillResponse, Error, CreateSkillParams, unknown>;
10
+ export {};
@@ -0,0 +1 @@
1
+ export declare function useStoredSkills(): import('@tanstack/react-query').UseQueryResult<import('@mastra/client-js').ListStoredSkillsResponse, Error>;
@@ -29,6 +29,9 @@ export * from './components/agent-cms-layout';
29
29
  export * from './components/agent-cms-pages';
30
30
  export * from './utils/agent-form-mappers';
31
31
  export * from './utils/collect-mcp-client-ids';
32
+ export * from './hooks/use-stored-skills';
33
+ export * from './hooks/use-create-skill';
32
34
  export * from './utils/compute-agent-initial-values';
33
35
  export * from './hooks/use-agent-cms-form';
34
36
  export * from './components/agent-cms-form-shell';
37
+ export * from './components/agent-version-panel';
@@ -1,5 +1,6 @@
1
1
  import { AgentInstructionBlock, StorageConditionalVariant } from '@mastra/core/storage';
2
- import { EntityConfig, ScorerConfig, InstructionBlock, AgentFormValues } from '../components/agent-edit-page/utils/form-validation';
2
+ import { StoredAgentSkillConfig, StoredWorkspaceRef, ConditionalField } from '@mastra/client-js';
3
+ import { EntityConfig, ScorerConfig, SkillConfig, InstructionBlock, AgentFormValues } from '../components/agent-edit-page/utils/form-validation';
3
4
  /** Convert a `string[]` to `Record<string, EntityConfig>`. */
4
5
  export declare const arrayToRecord: (arr: string[]) => Record<string, EntityConfig>;
5
6
  /** Normalize tools from `string[]` (legacy), `Record`, or `ConditionalVariant[]` format. */
@@ -22,6 +23,10 @@ export declare const transformIntegrationToolsForApi: (integrationTools: Record<
22
23
  export declare const normalizeIntegrationToolsToRecord: (integrationTools: Record<string, {
23
24
  tools?: Record<string, EntityConfig>;
24
25
  }> | undefined) => Record<string, EntityConfig>;
26
+ /** Normalize API skills (ConditionalField<Record<string, StoredAgentSkillConfig>>) to form SkillConfig records. */
27
+ export declare const normalizeSkillsFromApi: (skills: ConditionalField<Record<string, StoredAgentSkillConfig>> | undefined) => Record<string, SkillConfig>;
28
+ /** Normalize API workspace ref (ConditionalField<StoredWorkspaceRef>) to a static workspace ref. */
29
+ export declare const normalizeWorkspaceFromApi: (workspace: ConditionalField<StoredWorkspaceRef> | undefined) => StoredWorkspaceRef | undefined;
25
30
  /** Map form instruction blocks to the API instruction array. */
26
31
  export declare const mapInstructionBlocksToApi: (blocks: InstructionBlock[] | undefined) => Array<{
27
32
  type: "prompt_block";
@@ -1,3 +1,4 @@
1
+ import { StoredAgentResponse } from '@mastra/client-js';
1
2
  import { AgentFormValues } from '../components/agent-edit-page/utils/form-validation';
2
3
  export interface AgentDataSource {
3
4
  name?: string;
@@ -11,6 +12,8 @@ export interface AgentDataSource {
11
12
  scorers?: unknown;
12
13
  memory?: unknown;
13
14
  mcpClients?: unknown;
15
+ skills?: StoredAgentResponse['skills'];
16
+ workspace?: StoredAgentResponse['workspace'];
14
17
  requestContextSchema?: unknown;
15
18
  }
16
19
  export declare function computeAgentInitialValues(dataSource: AgentDataSource): Partial<AgentFormValues>;
@@ -0,0 +1,11 @@
1
+ export interface DatasetComboboxProps {
2
+ value?: string;
3
+ onValueChange?: (value: string) => void;
4
+ placeholder?: string;
5
+ searchPlaceholder?: string;
6
+ emptyText?: string;
7
+ className?: string;
8
+ disabled?: boolean;
9
+ variant?: 'default' | 'light' | 'outline' | 'ghost';
10
+ }
11
+ export declare function DatasetCombobox({ value, onValueChange, placeholder, searchPlaceholder, emptyText, className, disabled, variant, }: DatasetComboboxProps): import("react/jsx-runtime").JSX.Element;
@@ -18,4 +18,4 @@ export declare const useDatasetItemVersions: (datasetId: string, itemId: string)
18
18
  /**
19
19
  * Hook to fetch a specific version of a dataset item.
20
20
  */
21
- export declare const useDatasetItemVersion: (datasetId: string, itemId: string, datasetVersion: number) => import('@tanstack/react-query').UseQueryResult<DatasetItemVersion, Error>;
21
+ export declare const useDatasetItemVersion: (datasetId: string, itemId: string, datasetVersion: number, latestVersion?: number) => import('@tanstack/react-query').UseQueryResult<DatasetItemVersion, Error>;
@@ -21,6 +21,8 @@ export { DuplicateDatasetDialog } from './components/duplicate-dataset-dialog';
21
21
  export { EditDatasetDialog } from './components/edit-dataset-dialog';
22
22
  export { DeleteDatasetDialog } from './components/delete-dataset-dialog';
23
23
  export { EmptyDatasetsTable } from './components/empty-datasets-table';
24
+ export { DatasetCombobox } from './components/dataset-combobox';
25
+ export type { DatasetComboboxProps } from './components/dataset-combobox';
24
26
  export { DatasetPageContent } from './components/dataset-detail/dataset-page-content';
25
27
  export { DatasetItemsList } from './components/items/dataset-items-list';
26
28
  export { DatasetExperiments } from './components/experiments/dataset-experiments';
@@ -19,9 +19,9 @@ export declare const useExperimentTrace: (traceId: string | null | undefined) =>
19
19
  output?: unknown;
20
20
  entityType?: import('@mastra/core/observability').EntityType | null | undefined;
21
21
  entityId?: string | null | undefined;
22
+ links?: unknown[] | null | undefined;
22
23
  endedAt?: Date | null | undefined;
23
24
  scope?: Record<string, unknown> | null | undefined;
24
- links?: unknown[] | null | undefined;
25
25
  parentSpanId?: string | null | undefined;
26
26
  attributes?: Record<string, unknown> | null | undefined;
27
27
  entityName?: string | null | undefined;
@@ -5,10 +5,16 @@ interface MCPClientCreateContentProps {
5
5
  name: string;
6
6
  description?: string;
7
7
  servers: Record<string, StoredMCPServerConfig>;
8
+ selectedTools: Record<string, {
9
+ description?: string;
10
+ }>;
8
11
  }) => void;
9
12
  readOnly?: boolean;
10
13
  initialValues?: MCPClientFormValues;
14
+ initialSelectedTools?: Record<string, {
15
+ description?: string;
16
+ }>;
11
17
  submitLabel?: string;
12
18
  }
13
- export declare function MCPClientCreateContent({ onAdd, readOnly, initialValues, submitLabel }: MCPClientCreateContentProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare function MCPClientCreateContent({ onAdd, readOnly, initialValues, initialSelectedTools, submitLabel, }: MCPClientCreateContentProps): import("react/jsx-runtime").JSX.Element;
14
20
  export {};
@@ -7,9 +7,10 @@ interface MCPClientFormSidebarProps {
7
7
  onPreFillFromServer: (serverId: string) => void;
8
8
  containerRef?: React.RefObject<HTMLElement | null>;
9
9
  readOnly?: boolean;
10
+ showSubmit?: boolean;
10
11
  submitLabel?: string;
11
12
  onTryConnect?: () => void;
12
13
  isTryingConnect?: boolean;
13
14
  }
14
- export declare function MCPClientFormSidebar({ form, onPublish, isSubmitting, onPreFillFromServer, containerRef, readOnly, submitLabel, onTryConnect, isTryingConnect, }: MCPClientFormSidebarProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare function MCPClientFormSidebar({ form, onPublish, isSubmitting, onPreFillFromServer, containerRef, readOnly, showSubmit, submitLabel, onTryConnect, isTryingConnect, }: MCPClientFormSidebarProps): import("react/jsx-runtime").JSX.Element;
15
16
  export {};
@@ -3,6 +3,11 @@ interface MCPClientToolPreviewProps {
3
3
  serverType: 'stdio' | 'http';
4
4
  url: string;
5
5
  tryConnect: TryConnectMcpMutation;
6
+ selectedTools?: Record<string, {
7
+ description?: string;
8
+ }>;
9
+ onToggleTool?: (toolName: string, description?: string) => void;
10
+ onDescriptionChange?: (toolName: string, description: string) => void;
6
11
  }
7
- export declare function MCPClientToolPreview({ serverType, url, tryConnect }: MCPClientToolPreviewProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function MCPClientToolPreview({ serverType, url, tryConnect, selectedTools, onToggleTool, onDescriptionChange, }: MCPClientToolPreviewProps): import("react/jsx-runtime").JSX.Element;
8
13
  export {};
@@ -8,7 +8,7 @@ export interface CrumbProps {
8
8
  isCurrent?: boolean;
9
9
  as: React.ElementType;
10
10
  className?: string;
11
- to: string;
11
+ to?: string;
12
12
  prefetch?: boolean | null;
13
13
  children: React.ReactNode;
14
14
  action?: React.ReactNode;
@@ -0,0 +1,5 @@
1
+ export interface CodeDiffProps {
2
+ codeA: string;
3
+ codeB: string;
4
+ }
5
+ export declare function CodeDiff({ codeA, codeB }: CodeDiffProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { CodeDiff } from './code-diff';
3
+ declare const meta: Meta<typeof CodeDiff>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof CodeDiff>;
6
+ export declare const Default: Story;
7
+ export declare const Identical: Story;
8
+ export declare const CompletelyDifferent: Story;
9
+ export declare const LargeDocument: Story;
@@ -0,0 +1,2 @@
1
+ export { CodeDiff } from './code-diff';
2
+ export type { CodeDiffProps } from './code-diff';
@@ -15,6 +15,7 @@ export type SelectFieldProps = Omit<React.SelectHTMLAttributes<HTMLSelectElement
15
15
  value: string;
16
16
  label: string;
17
17
  icon?: React.ReactNode;
18
+ disabled?: boolean;
18
19
  }[];
19
20
  placeholder?: string;
20
21
  onValueChange: (value: string) => void;
@@ -0,0 +1 @@
1
+ export * from './tree';
@@ -0,0 +1,15 @@
1
+ import * as React from 'react';
2
+ export interface TreeContextValue {
3
+ selectedId?: string;
4
+ onSelect?: (id: string) => void;
5
+ }
6
+ export declare function TreeProvider({ children, value }: {
7
+ children: React.ReactNode;
8
+ value: TreeContextValue;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ export declare function useTreeContext(): TreeContextValue | null;
11
+ export declare function TreeDepthProvider({ children, depth }: {
12
+ children: React.ReactNode;
13
+ depth: number;
14
+ }): import("react/jsx-runtime").JSX.Element;
15
+ export declare function useTreeDepth(): number;
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ export interface TreeFileProps {
3
+ id?: string;
4
+ className?: string;
5
+ children: React.ReactNode;
6
+ }
7
+ export declare const TreeFile: React.ForwardRefExoticComponent<TreeFileProps & React.RefAttributes<HTMLLIElement>>;
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ export interface TreeFolderContentProps {
3
+ className?: string;
4
+ children: React.ReactNode;
5
+ }
6
+ export declare const TreeFolderContent: React.ForwardRefExoticComponent<TreeFolderContentProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ export interface TreeFolderTriggerProps {
3
+ className?: string;
4
+ children: React.ReactNode;
5
+ actions?: React.ReactNode;
6
+ }
7
+ export declare const TreeFolderTrigger: React.ForwardRefExoticComponent<TreeFolderTriggerProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export interface TreeFolderProps {
3
+ defaultOpen?: boolean;
4
+ open?: boolean;
5
+ onOpenChange?: (open: boolean) => void;
6
+ className?: string;
7
+ children: React.ReactNode;
8
+ }
9
+ export declare const TreeFolder: React.ForwardRefExoticComponent<TreeFolderProps & React.RefAttributes<HTMLLIElement>>;
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ export interface TreeIconProps {
3
+ className?: string;
4
+ children: React.ReactNode;
5
+ }
6
+ export declare const TreeIcon: React.ForwardRefExoticComponent<TreeIconProps & React.RefAttributes<HTMLSpanElement>>;
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+ export interface TreeInputProps {
3
+ type: 'file' | 'folder';
4
+ onSubmit: (name: string) => void;
5
+ onCancel?: () => void;
6
+ defaultValue?: string;
7
+ placeholder?: string;
8
+ autoFocus?: boolean;
9
+ className?: string;
10
+ }
11
+ export declare const TreeInput: React.ForwardRefExoticComponent<TreeInputProps & React.RefAttributes<HTMLLIElement>>;
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ export interface TreeLabelProps {
3
+ className?: string;
4
+ children: React.ReactNode;
5
+ }
6
+ export declare const TreeLabel: React.ForwardRefExoticComponent<TreeLabelProps & React.RefAttributes<HTMLSpanElement>>;
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ export interface TreeRootProps {
3
+ selectedId?: string;
4
+ onSelect?: (id: string) => void;
5
+ className?: string;
6
+ children: React.ReactNode;
7
+ }
8
+ export declare const TreeRoot: React.ForwardRefExoticComponent<TreeRootProps & React.RefAttributes<HTMLUListElement>>;
@@ -0,0 +1,9 @@
1
+ export declare const Tree: import('../../../../node_modules/@types/react').ForwardRefExoticComponent<import('./tree-root').TreeRootProps & import('../../../../node_modules/@types/react').RefAttributes<HTMLUListElement>> & {
2
+ Folder: import('../../../../node_modules/@types/react').ForwardRefExoticComponent<import('./tree-folder').TreeFolderProps & import('../../../../node_modules/@types/react').RefAttributes<HTMLLIElement>>;
3
+ FolderTrigger: import('../../../../node_modules/@types/react').ForwardRefExoticComponent<import('./tree-folder-trigger').TreeFolderTriggerProps & import('../../../../node_modules/@types/react').RefAttributes<HTMLDivElement>>;
4
+ FolderContent: import('../../../../node_modules/@types/react').ForwardRefExoticComponent<import('./tree-folder-content').TreeFolderContentProps & import('../../../../node_modules/@types/react').RefAttributes<HTMLDivElement>>;
5
+ File: import('../../../../node_modules/@types/react').ForwardRefExoticComponent<import('./tree-file').TreeFileProps & import('../../../../node_modules/@types/react').RefAttributes<HTMLLIElement>>;
6
+ Icon: import('../../../../node_modules/@types/react').ForwardRefExoticComponent<import('./tree-icon').TreeIconProps & import('../../../../node_modules/@types/react').RefAttributes<HTMLSpanElement>>;
7
+ Label: import('../../../../node_modules/@types/react').ForwardRefExoticComponent<import('./tree-label').TreeLabelProps & import('../../../../node_modules/@types/react').RefAttributes<HTMLSpanElement>>;
8
+ Input: import('../../../../node_modules/@types/react').ForwardRefExoticComponent<import('./tree-input').TreeInputProps & import('../../../../node_modules/@types/react').RefAttributes<HTMLLIElement>>;
9
+ };