Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
148 changes: 74 additions & 74 deletions apps/dbagent/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,120 +20,120 @@
"build:mcp-servers": "tsc -p mcp-source/tsconfig.json"
},
"dependencies": {
"@ai-sdk/anthropic": "^1.2.12",
"@ai-sdk/deepseek": "^0.2.14",
"@ai-sdk/google": "^1.2.19",
"@ai-sdk/openai": "^1.3.24",
"@ai-sdk/provider": "^1.1.3",
"@ai-sdk/react": "^1.2.12",
"@ai-sdk/anthropic": "^3.0.2",
"@ai-sdk/deepseek": "^2.0.2",
"@ai-sdk/google": "^3.0.2",
"@ai-sdk/openai": "^3.0.2",
"@ai-sdk/provider": "^3.0.1",
"@ai-sdk/react": "^3.0.5",
"@ai-sdk/ui-utils": "^1.2.11",
"@anthropic-ai/sdk": "^0.61.0",
"@aws-sdk/client-cloudwatch": "^3.879.0",
"@aws-sdk/client-rds": "^3.881.0",
"@fluentui/react-icons": "^2.0.309",
"@anthropic-ai/sdk": "^0.71.2",
"@aws-sdk/client-cloudwatch": "^3.958.0",
"@aws-sdk/client-rds": "^3.958.0",
"@fluentui/react-icons": "^2.0.316",
"@google-cloud/logging": "^11.2.1",
"@google-cloud/monitoring": "^5.3.0",
"@googleapis/sqladmin": "^31.1.0",
"@mastra/core": "^0.15.3",
"@mastra/evals": "^0.13.3",
"@modelcontextprotocol/sdk": "^1.17.5",
"@google-cloud/monitoring": "^5.3.1",
"@googleapis/sqladmin": "^35.0.0",
"@mastra/core": "^0.24.9",
"@mastra/evals": "^0.14.4",
"@modelcontextprotocol/sdk": "^1.25.1",
"@opentelemetry/api": "^1.9.0",
"@opentelemetry/api-logs": "^0.203.0",
"@opentelemetry/auto-instrumentations-node": "^0.62.2",
"@opentelemetry/context-async-hooks": "^2.0.1",
"@opentelemetry/core": "^2.0.1",
"@opentelemetry/exporter-trace-otlp-grpc": "^0.203.0",
"@opentelemetry/exporter-trace-otlp-http": "^0.203.0",
"@opentelemetry/exporter-trace-otlp-proto": "^0.203.0",
"@opentelemetry/instrumentation": "^0.203.0",
"@opentelemetry/resources": "^2.0.1",
"@opentelemetry/sdk-logs": "^0.203.0",
"@opentelemetry/sdk-node": "^0.203.0",
"@opentelemetry/sdk-trace-base": "^2.0.1",
"@opentelemetry/sdk-trace-node": "^2.0.1",
"@opentelemetry/semantic-conventions": "^1.37.0",
"@tailwindcss/postcss": "^4.1.12",
"@tailwindcss/typography": "^0.5.16",
"@tanstack/react-query": "^5.85.9",
"@vercel/functions": "^3.0.0",
"@opentelemetry/api-logs": "^0.208.0",
"@opentelemetry/auto-instrumentations-node": "^0.67.3",
"@opentelemetry/context-async-hooks": "^2.2.0",
"@opentelemetry/core": "^2.2.0",
"@opentelemetry/exporter-trace-otlp-grpc": "^0.208.0",
"@opentelemetry/exporter-trace-otlp-http": "^0.208.0",
"@opentelemetry/exporter-trace-otlp-proto": "^0.208.0",
"@opentelemetry/instrumentation": "^0.208.0",
"@opentelemetry/resources": "^2.2.0",
"@opentelemetry/sdk-logs": "^0.208.0",
"@opentelemetry/sdk-node": "^0.208.0",
"@opentelemetry/sdk-trace-base": "^2.2.0",
"@opentelemetry/sdk-trace-node": "^2.2.0",
"@opentelemetry/semantic-conventions": "^1.38.0",
"@tailwindcss/postcss": "^4.1.18",
"@tailwindcss/typography": "^0.5.19",
"@tanstack/react-query": "^5.90.16",
"@vercel/functions": "^3.3.4",
"@xata.io/components": "^0.0.9",
"@xata.io/theme": "^1.0.3",
"ai": "^4.3.16",
"ai": "^6.0.5",
"bytes": "^3.1.2",
"canvas-confetti": "^1.9.3",
"canvas-confetti": "^1.9.4",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cron-parser": "^5.3.1",
"cron-parser": "^5.4.0",
"date-fns": "^4.1.0",
"diff-match-patch": "^1.0.5",
"drizzle-kit": "^0.31.4",
"drizzle-orm": "^0.44.5",
"drizzle-kit": "^0.31.8",
"drizzle-orm": "^0.45.1",
"drizzle-zod": "^0.8.3",
"fast-deep-equal": "^3.1.3",
"framer-motion": "^12.23.12",
"geist": "^1.4.2",
"import-in-the-middle": "^1.14.2",
"kysely": "^0.28.5",
"langfuse-vercel": "^3.38.5",
"framer-motion": "^12.23.26",
"geist": "^1.5.1",
"import-in-the-middle": "^2.0.1",
"kysely": "^0.28.9",
"langfuse-vercel": "^3.38.6",
"litellm-api": "^0.0.3",
"lucide-react": "^0.542.0",
"next": "15.5.9",
"lucide-react": "^0.562.0",
"next": "16.1.1",
"next-auth": "5.0.0-beta.30",
"next-themes": "^0.4.6",
"ollama": "^0.5.17",
"ollama": "^0.6.3",
"ollama-ai-provider": "^1.2.0",
"orderedmap": "^2.1.1",
"pg": "^8.16.3",
"postcss-import": "^16.1.1",
"prosemirror-example-setup": "^1.2.3",
"prosemirror-inputrules": "^1.5.0",
"prosemirror-inputrules": "^1.5.1",
"prosemirror-markdown": "^1.13.2",
"prosemirror-model": "^1.25.3",
"prosemirror-model": "^1.25.4",
"prosemirror-schema-basic": "^1.2.4",
"prosemirror-schema-list": "^1.5.1",
"prosemirror-state": "^1.4.3",
"prosemirror-view": "^1.40.1",
"react": "19.1.1",
"react-data-grid": "7.0.0-beta.57",
"react-dom": "19.1.1",
"prosemirror-state": "^1.4.4",
"prosemirror-view": "^1.41.4",
"react": "19.2.3",
"react-data-grid": "7.0.0-beta.59",
"react-dom": "19.2.3",
"react-markdown": "^10.1.0",
"react-syntax-highlighter": "^15.6.6",
"react-syntax-highlighter": "^16.1.0",
"remark-gfm": "^4.0.1",
"require-in-the-middle": "^7.5.2",
"require-in-the-middle": "^8.0.1",
"server-only": "^0.0.1",
"shiki": "^3.12.2",
"tailwind-merge": "^3.3.1",
"shiki": "^3.20.0",
"tailwind-merge": "^3.4.0",
"tailwindcss-animate": "^1.0.7",
"typescript": "^5.9.2",
"typescript": "^5.9.3",
"usehooks-ts": "^3.1.1",
"zod": "^3.25.67"
"zod": "^4.3.4"
},
"devDependencies": {
"@dotenvx/dotenvx": "^1.49.0",
"@dotenvx/dotenvx": "^1.51.4",
"@types/bytes": "^3.1.5",
"@types/canvas-confetti": "^1.9.0",
"@types/chroma-js": "^3.1.1",
"@types/chroma-js": "^3.1.2",
"@types/diff-match-patch": "^1.0.36",
"@types/dockerode": "^3.3.43",
"@types/papaparse": "^5.3.16",
"@types/pg": "^8.15.5",
"@types/react": "^19.1.12",
"@types/react-dom": "^19.1.9",
"@types/dockerode": "^3.3.47",
"@types/papaparse": "^5.5.2",
"@types/pg": "^8.16.0",
"@types/react": "^19.2.7",
"@types/react-dom": "^19.2.3",
"@types/react-syntax-highlighter": "^15.5.13",
"@xata.io/eslint-config": "^0.0.1",
"@xata.io/tsconfig": "^0.0.1",
"autoprefixer": "^10.4.21",
"dockerode": "^4.0.7",
"dotenv": "^17.2.2",
"filenamify": "^6.0.0",
"mastra": "^0.11.3",
"autoprefixer": "^10.4.23",
"dockerode": "^4.0.9",
"dotenv": "^17.2.3",
"filenamify": "^7.0.1",
"mastra": "^0.18.9",
"papaparse": "^5.5.3",
"pg": "^8.16.3",
"postcss": "^8.5.6",
"tailwindcss": "^4.1.12",
"tsx": "^4.20.5",
"tailwindcss": "^4.1.18",
"tsx": "^4.21.0",
"eslint": "^9",
"eslint-config-next": "^15.5.2",
"eslint-config-next": "^16.1.1",
"@eslint/eslintrc": "^3"
},
"engines": {
Expand Down
2 changes: 1 addition & 1 deletion apps/dbagent/src/app/globals.css
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
@import '@xata.io/theme/theme.css';
@source "../../node_modules/@xata.io/components";
@source '../../node_modules/@xata.io/components';

@layer utilities {
.text-balance {
Expand Down
4 changes: 2 additions & 2 deletions apps/dbagent/src/components/chat/artifacts/artifact.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ function PureArtifact({
{artifact.isVisible && (
<motion.div
data-testid="artifact"
className="fixed left-0 top-0 z-50 flex h-dvh w-dvw flex-row bg-transparent"
className="fixed top-0 left-0 z-50 flex h-dvh w-dvw flex-row bg-transparent"
initial={{ opacity: 1 }}
animate={{ opacity: 1 }}
exit={{ opacity: 0, transition: { delay: 0.4 } }}
Expand Down Expand Up @@ -263,7 +263,7 @@ function PureArtifact({
<AnimatePresence>
{!isCurrentVersion && (
<motion.div
className="absolute left-0 top-0 z-50 h-dvh w-[400px] bg-zinc-900/50"
className="absolute top-0 left-0 z-50 h-dvh w-[400px] bg-zinc-900/50"
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
exit={{ opacity: 0 }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,14 +146,14 @@ const PureHitboxLayer = ({

return (
<div
className="absolute left-0 top-0 z-10 size-full rounded-xl"
className="absolute top-0 left-0 z-10 size-full rounded-xl"
ref={hitboxRef}
onClick={handleClick}
role="presentation"
aria-hidden="true"
>
<div className="flex w-full items-center justify-end p-4">
<div className="absolute right-[9px] top-[13px] rounded-md p-2 hover:bg-zinc-100 hover:dark:bg-zinc-700">
<div className="absolute top-[13px] right-[9px] rounded-md p-2 hover:bg-zinc-100 hover:dark:bg-zinc-700">
<FullscreenIcon />
</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion apps/dbagent/src/components/chat/artifacts/toolbar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
setIsToolbarVisible?: Dispatch<SetStateAction<boolean>>;
isAnimating: boolean;
append: (
message: Message | CreateMessage,

Check failure on line 22 in apps/dbagent/src/components/chat/artifacts/toolbar.tsx

View workflow job for this annotation

GitHub Actions / lint

'CreateMessage' is an 'error' type that acts as 'any' and overrides all other types in this union type

Check failure on line 22 in apps/dbagent/src/components/chat/artifacts/toolbar.tsx

View workflow job for this annotation

GitHub Actions / lint

'Message' is an 'error' type that acts as 'any' and overrides all other types in this union type
chatRequestOptions?: ChatRequestOptions
) => Promise<string | null | undefined>;
onClick: ({ appendMessage }: { appendMessage: UseChatHelpers['append'] }) => void;
Expand Down Expand Up @@ -118,7 +118,7 @@
selectedTool: string | null;
setSelectedTool: Dispatch<SetStateAction<string | null>>;
append: (
message: Message | CreateMessage,

Check failure on line 121 in apps/dbagent/src/components/chat/artifacts/toolbar.tsx

View workflow job for this annotation

GitHub Actions / lint

'CreateMessage' is an 'error' type that acts as 'any' and overrides all other types in this union type

Check failure on line 121 in apps/dbagent/src/components/chat/artifacts/toolbar.tsx

View workflow job for this annotation

GitHub Actions / lint

'Message' is an 'error' type that acts as 'any' and overrides all other types in this union type
chatRequestOptions?: ChatRequestOptions
) => Promise<string | null | undefined>;
isAnimating: boolean;
Expand Down Expand Up @@ -241,7 +241,7 @@
return (
<TooltipProvider delayDuration={0}>
<motion.div
className="bg-background absolute bottom-6 right-6 flex cursor-pointer flex-col justify-end rounded-full border p-1.5 shadow-lg"
className="bg-background absolute right-6 bottom-6 flex cursor-pointer flex-col justify-end rounded-full border p-1.5 shadow-lg"
initial={{ opacity: 0, y: -20, scale: 1 }}
animate={
isToolbarVisible
Expand Down
2 changes: 1 addition & 1 deletion apps/dbagent/src/components/chat/chat.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ function PureChat({
/>
</div>

<form className="bg-background mx-auto flex w-full gap-2 px-4 pb-4 pt-2 md:max-w-3xl md:pb-6">
<form className="bg-background mx-auto flex w-full gap-2 px-4 pt-2 pb-4 md:max-w-3xl md:pb-6">
<MultimodalInput
suggestedActions={suggestedActions}
chatId={id}
Expand Down
2 changes: 1 addition & 1 deletion apps/dbagent/src/components/chat/multimodal-input.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ function PureMultimodalInput({
}}
/>

<div className="absolute bottom-0 right-0 flex w-fit flex-row justify-end p-2">
<div className="absolute right-0 bottom-0 flex w-fit flex-row justify-end p-2">
{['submitted', 'streaming'].includes(status) ? (
<StopButton stop={stop} setMessages={setMessages} />
) : (
Expand Down
2 changes: 1 addition & 1 deletion apps/dbagent/src/components/chat/suggested-actions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
interface SuggestedActionsProps {
suggestedActions?: SuggestedAction[];
append: (
message: Message | CreateMessage,

Check failure on line 16 in apps/dbagent/src/components/chat/suggested-actions.tsx

View workflow job for this annotation

GitHub Actions / lint

'CreateMessage' is an 'error' type that acts as 'any' and overrides all other types in this union type

Check failure on line 16 in apps/dbagent/src/components/chat/suggested-actions.tsx

View workflow job for this annotation

GitHub Actions / lint

'Message' is an 'error' type that acts as 'any' and overrides all other types in this union type
chatRequestOptions?: ChatRequestOptions
) => Promise<string | null | undefined>;
}
Expand All @@ -40,7 +40,7 @@
}}
className="h-auto w-full flex-1 items-start justify-start gap-1 rounded-xl border px-4 py-3.5 text-left text-sm sm:flex-col"
>
<p className="text-wrap font-medium">{suggestedAction.title}</p>
<p className="font-medium text-wrap">{suggestedAction.title}</p>
</Button>
</motion.div>
))}
Expand Down
4 changes: 2 additions & 2 deletions apps/dbagent/src/components/evals/eval-runs.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ const CurrentEval = ({
}
return (
<Tabs defaultValue={files[0]?.fileName} className="h-full">
<div className="mr-4 mt-4 flex items-center justify-between">
<div className="mt-4 mr-4 flex items-center justify-between">
<TabsList>
{files.map((file) => {
return (
Expand Down Expand Up @@ -148,7 +148,7 @@ const CurrentEval = ({
key={file.fileName}
>
<ScrollArea className="h-full">
<pre className="whitespace-pre-wrap font-mono text-sm">{file.contents}</pre>
<pre className="font-mono text-sm whitespace-pre-wrap">{file.contents}</pre>
</ScrollArea>
</TabsContent>
);
Expand Down
4 changes: 2 additions & 2 deletions apps/dbagent/src/components/monitoring/schedule-form.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -234,8 +234,8 @@ export function ScheduleForm({ projectId, isEditMode, scheduleId, playbooks, con
<FormLabel>Schedule Type</FormLabel>
<FormControl>
<RadioGroup onValueChange={field.onChange} value={field.value} className="flex flex-col space-y-1">
<FormItem className="flex items-center space-x-3 space-y-0">
<FormItem className="flex items-center space-x-3 space-y-0">
<FormItem className="flex items-center space-y-0 space-x-3">
<FormItem className="flex items-center space-y-0 space-x-3">
<FormControl>
<RadioGroupItem value="cron" />
</FormControl>
Expand Down
2 changes: 1 addition & 1 deletion apps/dbagent/src/components/playbooks/playbook-view.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ export function PlaybookView({ playbook }: { playbook: Playbook }) {
<CardDescription>{playbook.description}</CardDescription>
</CardHeader>
<CardContent>
<div className="bg-muted prose prose-sm whitespace-pre-wrap rounded-md p-4">{playbook.content}</div>
<div className="bg-muted prose prose-sm rounded-md p-4 whitespace-pre-wrap">{playbook.content}</div>
</CardContent>
<CardFooter className="flex justify-end gap-3 pt-6">
<Link href={`/projects/${project}/monitoring/schedule/add?playbook=${playbook.name}`}>
Expand Down
2 changes: 1 addition & 1 deletion apps/dbagent/src/components/projects/project-list.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ function CreateProjectOnboarding() {

return (
<div className="flex h-full w-full items-center justify-center">
<div className="pointer-events-none absolute left-0 top-0 overflow-hidden">
<div className="pointer-events-none absolute top-0 left-0 overflow-hidden">
{[...Array(20)].map((_, i) => (
<div
key={i}
Expand Down
2 changes: 1 addition & 1 deletion apps/dbagent/src/components/tools/tool-view.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ export function ToolView({ tool }: { tool: Tool }) {
</CardDescription>
</CardHeader>
<CardContent>
<div className="bg-muted prose prose-sm whitespace-pre-wrap rounded-md p-4">{tool.description}</div>
<div className="bg-muted prose prose-sm rounded-md p-4 whitespace-pre-wrap">{tool.description}</div>
</CardContent>
<CardFooter className="flex justify-end gap-3 pt-6">
<Link href={`/projects/${project}/chats/new?tool=${tool.name}`}>
Expand Down
4 changes: 2 additions & 2 deletions apps/dbagent/src/components/ui/header-bar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ export const HeaderBar = ({ children }: PropsWithChildren<{ user?: User }>) => {
const { data: session } = useSession();

return (
<header className="bg-background fixed left-0 right-0 top-0 z-50 border-b">
<header className="bg-background fixed top-0 right-0 left-0 z-50 border-b">
<div className="flex h-14 items-center gap-4 px-4">
<nav aria-labelledby="mainmenulabel">
<span className="sr-only" id="mainmenulabel">
Expand Down Expand Up @@ -76,7 +76,7 @@ function UserAvatar({ user }: { user?: User }) {
</Avatar>
</DropdownMenuTrigger>
<DropdownMenuContent
className="-mr-8 mt-12 w-[--radix-dropdown-menu-trigger-width] min-w-56 rounded-lg"
className="mt-12 -mr-8 w-[--radix-dropdown-menu-trigger-width] min-w-56 rounded-lg"
side={isMobile ? 'bottom' : 'right'}
align="end"
sideOffset={4}
Expand Down
2 changes: 1 addition & 1 deletion apps/dbagent/src/components/ui/side-nav.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,7 @@ export function SideNav({ className, project, onboardingComplete }: SideNavProps
<span>{chat.title}</span>
</Link>
</SidebarMenuButton>
<div className="invisible absolute right-2 top-1/2 -translate-y-1/2 group-hover/item:visible">
<div className="invisible absolute top-1/2 right-2 -translate-y-1/2 group-hover/item:visible">
<DropdownMenu>
<DropdownMenuTrigger asChild>
<Button variant="ghost" size="icon" className="h-7 w-7">
Expand Down
Loading
Loading