diff --git a/agentex-sgp-app/.dockerignore b/agentex-sgp-app/.dockerignore
index 3811faa..a6d87b0 100644
--- a/agentex-sgp-app/.dockerignore
+++ b/agentex-sgp-app/.dockerignore
@@ -30,6 +30,9 @@ out/
ehthumbs.db
Thumbs.db
+# Claude
+.claude/
+
# Editor directories and files
.vscode/
.idea/
diff --git a/agentex-sgp-app/.gitignore b/agentex-sgp-app/.gitignore
index 5ef6a52..75d23b6 100644
--- a/agentex-sgp-app/.gitignore
+++ b/agentex-sgp-app/.gitignore
@@ -13,6 +13,9 @@
# testing
/coverage
+# claude
+.claude/
+
# next.js
/.next/
/out/
diff --git a/agentex-sgp-app/.prettierrc.json b/agentex-sgp-app/.prettierrc.json
index 7225824..d7048de 100644
--- a/agentex-sgp-app/.prettierrc.json
+++ b/agentex-sgp-app/.prettierrc.json
@@ -4,5 +4,8 @@
"singleQuote": true,
"printWidth": 80,
"tabWidth": 2,
- "useTabs": false
+ "bracketSameLine": false,
+ "arrowParens": "avoid",
+
+ "plugins": ["prettier-plugin-tailwindcss"]
}
diff --git a/agentex-sgp-app/CLAUDE.md b/agentex-sgp-app/CLAUDE.md
index d1008fc..142df71 100644
--- a/agentex-sgp-app/CLAUDE.md
+++ b/agentex-sgp-app/CLAUDE.md
@@ -62,7 +62,7 @@ Complex synchronization mechanism in `lib/pending-message.ts`:
### Component Organization
- `components/agentex/*` — Domain-specific reusable components
-- `components/ui/*` — Generic UI components (shadcn/ui based)
+- `components/ui/*` — Generic UI components (shadcn/ui based) - only used by shadcn, do not add components to this directory unless they are shadcn
- `entrypoints/*/` — Mode-specific page components and views
- Follow pattern: **components should be presentational, controllers handle side effects**
diff --git a/agentex-sgp-app/app/error.tsx b/agentex-sgp-app/app/error.tsx
new file mode 100644
index 0000000..17d81a4
--- /dev/null
+++ b/agentex-sgp-app/app/error.tsx
@@ -0,0 +1,61 @@
+'use client';
+
+import { AlertCircle } from 'lucide-react';
+
+import { TaskTopBar } from '@/components/agentex/task-top-bar';
+import { Button } from '@/components/ui/button';
+
+export default function Error({
+ error,
+ reset,
+}: {
+ error: Error & { digest?: string };
+ reset: () => void;
+}) {
+ return (
+
+ {/* Main Content Area */}
+
+
+
+ {/* Error Message - Centered */}
+
+
+
+
+
+
Something went wrong
+
+ We encountered an error while loading the agent.
+
+
+
+ {error.message && (
+
+ )}
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/agentex-sgp-app/app/globals.css b/agentex-sgp-app/app/globals.css
index 7627cef..38c2417 100644
--- a/agentex-sgp-app/app/globals.css
+++ b/agentex-sgp-app/app/globals.css
@@ -114,7 +114,7 @@
--destructive: #7a1331;
--destructive-foreground: #ffced5;
--border: oklch(1 0 0 / 10%);
- --input: rgba(113, 77, 255, 0.15);
+ --input: #28292a;
--ring: #d1d5db;
--chart-1: oklch(0.488 0.243 264.376);
--chart-2: oklch(0.696 0.17 162.48);
@@ -154,85 +154,6 @@
body {
@apply bg-background text-foreground;
}
-
- textarea[data-slot='textarea'] {
- background-color: var(--textarea-input);
- color: var(--textarea-foreground);
- }
-
- h1 {
- scroll-margin-top: 5rem;
- text-align: center;
- font-size: 2.25rem;
- line-height: 2.5rem;
- font-weight: 800;
- letter-spacing: -0.025em;
- text-wrap: balance;
- }
-
- h2 {
- scroll-margin-top: 5rem;
- font-size: 1.875rem;
- line-height: 2.25rem;
- font-weight: 600;
- letter-spacing: -0.025em;
- }
-
- h2:first-child {
- margin-top: 0;
- }
-
- h3 {
- scroll-margin-top: 5rem;
- font-size: 1.5rem;
- line-height: 2rem;
- font-weight: 600;
- letter-spacing: -0.025em;
- }
-
- h4 {
- scroll-margin-top: 5rem;
- font-size: 1.25rem;
- line-height: 1.75rem;
- font-weight: 600;
- letter-spacing: -0.025em;
- }
-
- p {
- line-height: 1.75rem;
- }
-
- blockquote {
- margin-top: 1.5rem;
- border-left: 2px solid;
- padding-left: 1.5rem;
- font-style: italic;
- }
-
- ul {
- margin-top: 1.5rem;
- margin-bottom: 1.5rem;
- margin-left: 1.5rem;
- list-style-type: disc;
- }
-
- ul > li {
- margin-top: 0.5rem;
- }
-}
-
-.code-block {
- background-color: var(--color-muted);
- position: relative;
- border-radius: var(--radius-sm);
- padding-left: 0.3rem;
- padding-right: 0.3rem;
- padding-top: 0.2rem;
- padding-bottom: 0.2rem;
- font-family: var(--font-geist-mono);
- font-size: 0.875rem;
- line-height: 1.25rem;
- font-weight: 600;
}
.hide-scrollbar {
diff --git a/agentex-sgp-app/app/layout.tsx b/agentex-sgp-app/app/layout.tsx
index 729648e..52d85cd 100644
--- a/agentex-sgp-app/app/layout.tsx
+++ b/agentex-sgp-app/app/layout.tsx
@@ -1,6 +1,8 @@
-import { ThemeProvider } from '@/components/agentex/theme-provider';
-import type { Metadata } from 'next';
import { Geist, Geist_Mono } from 'next/font/google';
+
+import { QueryProvider, ThemeProvider } from '@/components/providers';
+
+import type { Metadata } from 'next';
import './globals.css';
const geistSans = Geist({
@@ -28,14 +30,16 @@ export default function RootLayout({
-
- {children}
-
+
+
+ {children}
+
+