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
|