diff --git a/components/frontend/src/app/projects/[name]/sessions/new/page.tsx b/components/frontend/src/app/projects/[name]/sessions/new/page.tsx
index 5ec1ad2b2..0962315bc 100644
--- a/components/frontend/src/app/projects/[name]/sessions/new/page.tsx
+++ b/components/frontend/src/app/projects/[name]/sessions/new/page.tsx
@@ -3,7 +3,7 @@
import { useEffect, useState } from "react";
import { useRouter } from "next/navigation";
import Link from "next/link";
-import { Loader2 } from "lucide-react";
+import { Loader2, Sparkles } from "lucide-react";
import { useForm, useFieldArray } from "react-hook-form";
import { zodResolver } from "@hookform/resolvers/zod";
import * as z from "zod";
@@ -88,9 +88,46 @@ export default function NewProjectSessionPage({ params }: { params: Promise<{ na
// Watch interactive to adjust prompt field hints
const isInteractive = form.watch("interactive");
+ // Refine prompt state
+ const [refining, setRefining] = useState(false);
+
+ const refinePrompt = () => {
+ const currentPrompt = form.getValues("initialPrompt");
+ if (!currentPrompt || currentPrompt.trim().length < 5) {
+ errorToast("Please enter a prompt first");
+ return;
+ }
+
+ setRefining(true);
+
+ // Simple heuristic-based prompt refinement
+ setTimeout(() => {
+ const trimmed = currentPrompt.trim();
+ let refined = trimmed;
+
+ // Add context if prompt is very short
+ if (trimmed.length < 50) {
+ refined = `Please ${trimmed.toLowerCase()}. Provide detailed analysis and specific recommendations.`;
+ }
+ // Improve clarity if prompt lacks detail
+ else if (!trimmed.includes("analyze") && !trimmed.includes("review") && !trimmed.includes("explain")) {
+ refined = `Analyze and ${trimmed.toLowerCase()}. Include specific examples and actionable recommendations.`;
+ }
+ // Add structure to longer prompts
+ else {
+ const lines = trimmed.split("\n");
+ if (lines.length === 1) {
+ refined = `${trimmed}\n\nPlease provide:\n- Detailed analysis\n- Specific findings\n- Actionable recommendations`;
+ }
+ }
+
+ form.setValue("initialPrompt", refined);
+ successToast("Prompt refined successfully");
+ setRefining(false);
+ }, 800); // Simulate processing time
+ };
-
const onSubmit = async (values: FormValues) => {
if (!projectName) return;
@@ -190,6 +227,27 @@ export default function NewProjectSessionPage({ params }: { params: Promise<{ na