@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.
- package/CHANGELOG.md +112 -0
- package/dist/index.cjs.js +2300 -811
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +2293 -813
- package/dist/index.es.js.map +1 -1
- package/dist/src/domains/agents/components/agent-cms-form-shell.d.ts +2 -1
- package/dist/src/domains/agents/components/agent-cms-layout/agent-cms-layout.d.ts +2 -1
- package/dist/src/domains/agents/components/agent-cms-pages/index.d.ts +1 -0
- package/dist/src/domains/agents/components/agent-cms-pages/skill-edit-dialog.d.ts +8 -0
- package/dist/src/domains/agents/components/agent-cms-pages/skill-file-tree.d.ts +15 -0
- package/dist/src/domains/agents/components/agent-cms-pages/skill-folder.d.ts +14 -0
- package/dist/src/domains/agents/components/agent-cms-pages/skills-page.d.ts +1 -0
- package/dist/src/domains/agents/components/agent-cms-sidebar/use-sidebar-descriptions.d.ts +4 -0
- package/dist/src/domains/agents/components/agent-edit-page/use-agent-edit-form.d.ts +32 -0
- package/dist/src/domains/agents/components/agent-edit-page/utils/form-validation.d.ts +43 -0
- package/dist/src/domains/agents/components/agent-version-panel.d.ts +7 -0
- package/dist/src/domains/agents/hooks/use-agent-cms-form.d.ts +33 -0
- package/dist/src/domains/agents/hooks/use-agent-skills.d.ts +12 -0
- package/dist/src/domains/agents/hooks/use-agent-workspace.d.ts +13 -0
- package/dist/src/domains/agents/hooks/use-create-skill.d.ts +10 -0
- package/dist/src/domains/agents/hooks/use-stored-skills.d.ts +1 -0
- package/dist/src/domains/agents/index.d.ts +3 -0
- package/dist/src/domains/agents/utils/agent-form-mappers.d.ts +6 -1
- package/dist/src/domains/agents/utils/compute-agent-initial-values.d.ts +3 -0
- package/dist/src/domains/datasets/components/dataset-combobox.d.ts +11 -0
- package/dist/src/domains/datasets/hooks/use-dataset-item-versions.d.ts +1 -1
- package/dist/src/domains/datasets/index.d.ts +2 -0
- package/dist/src/domains/experiments/hooks/use-experiment-trace.d.ts +1 -1
- package/dist/src/domains/mcps/components/mcp-client-create/mcp-client-create-content.d.ts +7 -1
- package/dist/src/domains/mcps/components/mcp-client-create/mcp-client-form-sidebar.d.ts +2 -1
- package/dist/src/domains/mcps/components/mcp-client-create/mcp-client-tool-preview.d.ts +6 -1
- package/dist/src/ds/components/Breadcrumb/Breadcrumb.d.ts +1 -1
- package/dist/src/ds/components/CodeDiff/code-diff.d.ts +5 -0
- package/dist/src/ds/components/CodeDiff/code-diff.stories.d.ts +9 -0
- package/dist/src/ds/components/CodeDiff/index.d.ts +2 -0
- package/dist/src/ds/components/FormFields/select-field.d.ts +1 -0
- package/dist/src/ds/components/Tree/index.d.ts +1 -0
- package/dist/src/ds/components/Tree/tree-context.d.ts +15 -0
- package/dist/src/ds/components/Tree/tree-file.d.ts +7 -0
- package/dist/src/ds/components/Tree/tree-folder-content.d.ts +6 -0
- package/dist/src/ds/components/Tree/tree-folder-trigger.d.ts +7 -0
- package/dist/src/ds/components/Tree/tree-folder.d.ts +9 -0
- package/dist/src/ds/components/Tree/tree-icon.d.ts +6 -0
- package/dist/src/ds/components/Tree/tree-input.d.ts +11 -0
- package/dist/src/ds/components/Tree/tree-label.d.ts +6 -0
- package/dist/src/ds/components/Tree/tree-root.d.ts +8 -0
- package/dist/src/ds/components/Tree/tree.d.ts +9 -0
- package/dist/src/ds/components/Tree/tree.stories.d.ts +10 -0
- package/dist/src/index.d.ts +2 -0
- 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 {};
|
|
@@ -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;
|
|
@@ -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 {
|
|
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 {};
|
|
@@ -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 @@
|
|
|
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 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,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,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
|
+
};
|