Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added paper_generation/architecture.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
42 changes: 42 additions & 0 deletions paper_generation/gen_diagram.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import base64
import requests

def generate_mermaid_diagram():
# The Mermaid code for the system architecture
mermaid_code = """
flowchart TD
A["CLI / User Prompt"] --> B["Generator Pipeline"]
B --> B1["Phase 1: Software Blueprint"]
B1 --> B2["Phase 2: File Generation"]
B2 --> B3["Phase 3: Dockerfile Generation"]
B3 --> B4["Phase 4: Dependency Analysis"]
B4 --> B5["Phase 5: Dep File Generation"]
B5 --> B6["Phase 6: Dep Resolution"]
B6 --> B7["Phase 7: Docker Testing Pipeline"]
B7 --> C["AI Planner Agent Loop"]
C --> D["docker_test Tool"]
D --> E["DockerExecutor"]
E --> F{{"Build Success?"}}
F -- No --> G["Return error_log to Agent"]
G --> C
F -- Yes --> H{{"Tests Pass?"}}
H -- No --> I["Return error_log to Agent"]
I --> C
H -- Yes --> J["✅ PROJECT COMPLETE"]
"""

encoded = base64.urlsafe_b64encode(mermaid_code.encode('utf-8')).decode('utf-8').rstrip('=')

url = f"https://mermaid.ink/img/{encoded}"

response = requests.get(url)

if response.status_code == 200:
with open('architecture.png', 'wb') as f:
f.write(response.content)
print("Mermaid diagram saved successfully.")
else:
print(f"Failed to generate diagram: {response.status_code} {response.text}")

if __name__ == "__main__":
generate_mermaid_diagram()
47 changes: 47 additions & 0 deletions paper_generation/gen_graph.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
import matplotlib.pyplot as plt
import numpy as np

def generate_results_graph():
# Models to evaluate
models = ['gpt-5.2', 'glm-5', 'minimaxm2.5', 'claude sonnet 4.6']

# Tentative pass@1 scores (percentages)
mddp_scores = [60.5, 52.3, 48.7, 65.2]
humaneval_scores = [88.2, 85.1, 80.4, 92.0]

x = np.arange(len(models)) # the label locations
width = 0.35 # the width of the bars

fig, ax = plt.subplots(figsize=(10, 6))

# Create grouped bar chart
rects1 = ax.bar(x - width/2, mddp_scores, width, label='MDDP', color='#3498db')
rects2 = ax.bar(x + width/2, humaneval_scores, width, label='HumanEval', color='#2ecc71')

# Add labels, title, and custom x-axis tick labels
ax.set_ylabel('Pass@1 Score (%)', fontsize=12)
ax.set_title('Performance on MDDP and HumanEval Benchmarks', fontsize=14)
ax.set_xticks(x)
ax.set_xticklabels(models, fontsize=11)
ax.legend(fontsize=11)

# Auto-label the bars
def autolabel(rects):
"""Attach a text label above each bar in *rects*, displaying its height."""
for rect in rects:
height = rect.get_height()
ax.annotate(f'{height}%',
xy=(rect.get_x() + rect.get_width() / 2, height),
xytext=(0, 3), # 3 points vertical offset
textcoords="offset points",
ha='center', va='bottom')

autolabel(rects1)
autolabel(rects2)

fig.tight_layout()
plt.savefig('results_graph.png', dpi=300)
print("Results graph saved successfully.")

if __name__ == "__main__":
generate_results_graph()
14 changes: 14 additions & 0 deletions paper_generation/paper.aux
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{}
\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}{section.1}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {2}Methodology}{1}{section.2}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {3}Architecture Diagram}{2}{section.3}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {4}Results}{2}{section.4}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {5}Conclusion}{2}{section.5}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces AlphaStack System Architecture diagram demonstrating the pipeline from CLI input to final validated project.}}{3}{figure.1}\protected@file@percent }
\newlabel{fig:architecture}{{1}{3}{AlphaStack System Architecture diagram demonstrating the pipeline from CLI input to final validated project}{figure.1}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Comparative performance (Pass@1) of gpt-5.2, glm-5, minimaxm2.5, and claude sonnet 4.6 on MDDP and HumanEval benchmarks.}}{4}{figure.2}\protected@file@percent }
\newlabel{fig:results}{{2}{4}{Comparative performance (Pass@1) of gpt-5.2, glm-5, minimaxm2.5, and claude sonnet 4.6 on MDDP and HumanEval benchmarks}{figure.2}{}}
\gdef \@abspage@last{4}
Loading