File size: 1,443 Bytes
cce8120
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
27
28
29
30
31
32
33
34
35
36
37
38
39
def generate_component_endpoint(name: str, description: str, framework: str = "react"):
    return builder_service.generate_component(name, description, framework)

@app.post("/api/builder/generate/api")
def generate_api_endpoint(endpoint_path: str, method: str = "GET", description: str = ""):
    return builder_service.generate_api(endpoint_path, method, description)

@app.post("/api/builder/generate/schema")
def generate_schema_endpoint(table_name: str, fields: list = Body(...)):
    return builder_service.generate_schema(table_name, fields)

@app.post("/api/builder/generate/pipeline")
def generate_pipeline_endpoint(target: str = "docker"):
    return builder_service.generate_pipeline(target)


# Build System & Queue Endpoints
@app.post("/api/builds/start")
async def start_build(target: str, project_dir: str = "."):
    # target can be 'apk', 'static', or 'docker'
    build_id = build_queue.trigger_build(target, project_dir)
    return {"status": "accepted", "build_id": build_id, "target": target}

@app.get("/api/builds/{build_id}/status")
def get_build_status(build_id: str):
    status = build_queue.get_build_status(build_id)
    if not status:
        raise HTTPException(status_code=404, detail="Build not found")
    return status

@app.get("/")
async def root():
    return {
        "status": "ok",
        "service": "Website Builder Agent Backend",
        "docs": "/docs",
        "openapi": "/openapi.json"
    }