Madras1 commited on
Commit
90e9ab6
·
verified ·
1 Parent(s): 07a75f1

Upload 18 files

Browse files
Files changed (2) hide show
  1. app.py +3 -1
  2. jade/webdev.py +34 -5
app.py CHANGED
@@ -143,6 +143,7 @@ class WebDevRequest(BaseModel):
143
  prompt: str
144
  existing_code: str | None = None
145
  mode: str = "html" # "html" or "react"
 
146
 
147
  @app.post("/webdev/generate")
148
  async def handle_webdev(request: WebDevRequest):
@@ -150,7 +151,8 @@ async def handle_webdev(request: WebDevRequest):
150
  result = webdev_agent.generate(
151
  prompt=request.prompt,
152
  refine_code=request.existing_code,
153
- mode=request.mode
 
154
  )
155
  return result
156
  except Exception as e:
 
143
  prompt: str
144
  existing_code: str | None = None
145
  mode: str = "html" # "html" or "react"
146
+ error_message: str | None = None # For agentic error fixing
147
 
148
  @app.post("/webdev/generate")
149
  async def handle_webdev(request: WebDevRequest):
 
151
  result = webdev_agent.generate(
152
  prompt=request.prompt,
153
  refine_code=request.existing_code,
154
+ mode=request.mode,
155
+ error_message=request.error_message
156
  )
157
  return result
158
  except Exception as e:
jade/webdev.py CHANGED
@@ -97,7 +97,7 @@ DESIGN:
97
 
98
  OUTPUT: Only the JSON object, nothing else."""
99
 
100
- def generate(self, prompt: str, refine_code: str = None, mode: str = "html") -> dict:
101
  """
102
  Generate or refine code based on prompt
103
 
@@ -105,6 +105,7 @@ OUTPUT: Only the JSON object, nothing else."""
105
  prompt: User's description
106
  refine_code: Optional existing code to refine
107
  mode: "html" for HTML generation, "react" for React/Sandpack
 
108
 
109
  Returns:
110
  dict with code/files and success status
@@ -113,7 +114,26 @@ OUTPUT: Only the JSON object, nothing else."""
113
  system_prompt = self.react_prompt if mode == "react" else self.html_prompt
114
 
115
  if mode == "react":
116
- if refine_code:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  user_message = f"""Current files:
118
  {refine_code}
119
 
@@ -129,7 +149,7 @@ Update the React app based on the feedback. Output the complete updated JSON."""
129
  {"role": "system", "content": system_prompt},
130
  {"role": "user", "content": user_message}
131
  ],
132
- temperature=0.7,
133
  max_tokens=16000
134
  )
135
 
@@ -162,7 +182,16 @@ Update the React app based on the feedback. Output the complete updated JSON."""
162
  return {"success": False, "error": "Failed to parse React code"}
163
 
164
  else: # HTML mode
165
- if refine_code:
 
 
 
 
 
 
 
 
 
166
  user_message = f"""Current code:
167
  ```html
168
  {refine_code}
@@ -180,7 +209,7 @@ Update the code based on the feedback. Output the complete updated HTML file."""
180
  {"role": "system", "content": system_prompt},
181
  {"role": "user", "content": user_message}
182
  ],
183
- temperature=0.7,
184
  max_tokens=8000
185
  )
186
 
 
97
 
98
  OUTPUT: Only the JSON object, nothing else."""
99
 
100
+ def generate(self, prompt: str, refine_code: str = None, mode: str = "html", error_message: str = None) -> dict:
101
  """
102
  Generate or refine code based on prompt
103
 
 
105
  prompt: User's description
106
  refine_code: Optional existing code to refine
107
  mode: "html" for HTML generation, "react" for React/Sandpack
108
+ error_message: If provided, fix this error in the code
109
 
110
  Returns:
111
  dict with code/files and success status
 
114
  system_prompt = self.react_prompt if mode == "react" else self.html_prompt
115
 
116
  if mode == "react":
117
+ # Error fix mode - agentic correction
118
+ if error_message and refine_code:
119
+ user_message = f"""The following React code has a compilation error.
120
+
121
+ ERROR MESSAGE:
122
+ {error_message}
123
+
124
+ CURRENT CODE (JSON):
125
+ {refine_code}
126
+
127
+ Fix the error and return the corrected JSON. Keep all the functionality intact.
128
+ Common fixes:
129
+ - Remove TypeScript syntax (no interfaces, type annotations)
130
+ - Fix JSX syntax errors
131
+ - Ensure all components are properly defined
132
+ - Use simple function components
133
+
134
+ Return ONLY the fixed JSON object."""
135
+
136
+ elif refine_code:
137
  user_message = f"""Current files:
138
  {refine_code}
139
 
 
149
  {"role": "system", "content": system_prompt},
150
  {"role": "user", "content": user_message}
151
  ],
152
+ temperature=0.5 if error_message else 0.7, # Lower temp for fixes
153
  max_tokens=16000
154
  )
155
 
 
182
  return {"success": False, "error": "Failed to parse React code"}
183
 
184
  else: # HTML mode
185
+ if error_message and refine_code:
186
+ user_message = f"""Fix this error in the HTML:
187
+
188
+ ERROR: {error_message}
189
+
190
+ CODE:
191
+ {refine_code}
192
+
193
+ Return the fixed HTML code."""
194
+ elif refine_code:
195
  user_message = f"""Current code:
196
  ```html
197
  {refine_code}
 
209
  {"role": "system", "content": system_prompt},
210
  {"role": "user", "content": user_message}
211
  ],
212
+ temperature=0.5 if error_message else 0.7,
213
  max_tokens=8000
214
  )
215