File size: 799 Bytes
29cdc9d
 
 
8663f54
29cdc9d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8663f54
29cdc9d
 
 
8663f54
29cdc9d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from flask import Flask, request, jsonify
import json
import os
from pydantic import BaseModel, ValidationError
from typing import Literal, Optional

app = Flask(__name__)
WORKSPACE = os.getcwd()
TASK_FILE = os.path.join(WORKSPACE, "workspace_tasks.json")

class TaskPayload(BaseModel):
    intent: Literal["scaffold", "write"]
    module_name: Optional[str] = None
    file: Optional[str] = None
    code: Optional[str] = None

@app.route('/execute', methods=['POST'])
def execute_task():
    try:
        data = TaskPayload.model_validate(request.json or {})
    except ValidationError as exc:
        return jsonify({"error": exc.errors()}), 400
    with open(TASK_FILE, "w") as f:
        json.dump(data.model_dump(), f)
    return jsonify({"status": "Task Queued", "intent": data.intent}), 202