Spaces:
Sleeping
Sleeping
Upload folder using huggingface_hub
Browse files- AGENTS.md +8 -0
- Dockerfile +81 -0
- README.md +64 -10
- __init__.py +16 -0
- chunk1.json +68 -0
- client.py +107 -0
- eval/plausibility_eval.py +22 -0
- eval/test_bug_injector.py +49 -0
- eval/test_executor.py +26 -0
- graphify-out/GRAPH_REPORT.md +115 -0
- graphify-out/cache/0c6469e30544c18c153edc6c36fc813de3a5919105b54570f09136cd26cfc475.json +1 -0
- graphify-out/cache/1f05f73bdc29a2c726dfcbc4f0837f3e9268a4b0d7e90a96ed59fb4121c1bdba.json +1 -0
- graphify-out/cache/4284b1726a6f5337f88470318a6a3adc952d81bf0af980a3066fede2113a5de1.json +1 -0
- graphify-out/cache/42ccfd67266bbb0515001a31a0884b5111cf535a7456540aaf8126356f66c0d8.json +1 -0
- graphify-out/cache/4b0c118efff193a51a179a31f39f5b0ff13346f112a008af15a082475d834b5b.json +1 -0
- graphify-out/cache/56f26791a042ec1641e859dcef8c30dc6a237a8202a4a5a1d70d1f41bf5e8916.json +1 -0
- graphify-out/cache/7506245e194ca6061e161c330bcb6ca080a7be650cb6bc5f1e00ad900b81a709.json +1 -0
- graphify-out/cache/75483d038cbfffeee334670ed9b2d5b2b72a83aa109974b620ab06c6c532eacb.json +1 -0
- graphify-out/cache/b1a762596f5fee316f1df48b8cdd9fc129b88766a1d8a8ba2fd0c3ac49893360.json +1 -0
- graphify-out/cache/c9885de9861dfdbfb8bf65fbf952f414e725d2a6075f4b839d2e64559590e362.json +1 -0
- graphify-out/cache/cb20eafcbbe253b791b01a8f4d81e9275e85d46f833b71e1bd53abf19cd17e26.json +1 -0
- graphify-out/cache/d0a5997f201fea0af43ec9eeaaa25d7fcd42b2f27e50b4798176f0227ddf4f9c.json +1 -0
- graphify-out/cache/d6d5ae1a9a21fc3ab376c0282323e399ef74b332e975871ff941a93dec674d27.json +1 -0
- graphify-out/cache/eb2e059208921f657055e709a0f0bf0f0f435790fbb43c66ecb98c40d8d5af40.json +1 -0
- graphify-out/cache/ede71c6c9d6a4345dfd051cb97f6c21f3113e4558c838f39aba660c5a5206a95.json +1 -0
- graphify-out/cache/f33eda5e3a4e90a27a5be751f771e90a9733c095bbc2093d20044746d2d98c4a.json +1 -0
- graphify-out/graph.html +257 -0
- graphify-out/graph.json +2341 -0
- models.py +39 -0
- notebooks/train_colab.ipynb +511 -0
- openenv.yaml +8 -0
- openenv_debugZero.egg-info/PKG-INFO +14 -0
- openenv_debugZero.egg-info/SOURCES.txt +20 -0
- openenv_debugZero.egg-info/dependency_links.txt +1 -0
- openenv_debugZero.egg-info/entry_points.txt +2 -0
- openenv_debugZero.egg-info/requires.txt +10 -0
- openenv_debugZero.egg-info/top_level.txt +1 -0
- pyproject.toml +50 -0
- run_episode.py +36 -0
- server/__init__.py +11 -0
- server/app.py +81 -0
- server/bug_injector.py +192 -0
- server/debugZero_environment.py +128 -0
- server/executor.py +89 -0
- server/plausibility.py +32 -0
- server/requirements.txt +6 -0
- training/dual_role_sampler.py +27 -0
- training/grpo_train.py +126 -0
- training/rewards.py +45 -0
- uv.lock +0 -0
AGENTS.md
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
## graphify
|
| 2 |
+
|
| 3 |
+
This project has a graphify knowledge graph at graphify-out/.
|
| 4 |
+
|
| 5 |
+
Rules:
|
| 6 |
+
- Before answering architecture or codebase questions, read graphify-out/GRAPH_REPORT.md for god nodes and community structure
|
| 7 |
+
- If graphify-out/wiki/index.md exists, navigate it instead of reading raw files
|
| 8 |
+
- After modifying code files in this session, run `graphify update .` to keep the graph current (AST-only, no API cost)
|
Dockerfile
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 2 |
+
# All rights reserved.
|
| 3 |
+
#
|
| 4 |
+
# This source code is licensed under the BSD-style license found in the
|
| 5 |
+
# LICENSE file in the root directory of this source tree.
|
| 6 |
+
|
| 7 |
+
# Multi-stage build using openenv-base
|
| 8 |
+
# This Dockerfile is flexible and works for both:
|
| 9 |
+
# - In-repo environments (with local OpenEnv sources)
|
| 10 |
+
# - Standalone environments (with openenv from PyPI/Git)
|
| 11 |
+
# The build script (openenv build) handles context detection and sets appropriate build args.
|
| 12 |
+
|
| 13 |
+
ARG BASE_IMAGE=ghcr.io/meta-pytorch/openenv-base:latest
|
| 14 |
+
FROM ${BASE_IMAGE} AS builder
|
| 15 |
+
|
| 16 |
+
WORKDIR /app
|
| 17 |
+
|
| 18 |
+
# Ensure git is available (required for installing dependencies from VCS)
|
| 19 |
+
RUN apt-get update && \
|
| 20 |
+
apt-get install -y --no-install-recommends git && \
|
| 21 |
+
rm -rf /var/lib/apt/lists/*
|
| 22 |
+
|
| 23 |
+
# Build argument to control whether we're building standalone or in-repo
|
| 24 |
+
ARG BUILD_MODE=in-repo
|
| 25 |
+
ARG ENV_NAME=debugZero
|
| 26 |
+
|
| 27 |
+
# Copy environment code (always at root of build context)
|
| 28 |
+
COPY . /app/env
|
| 29 |
+
|
| 30 |
+
# For in-repo builds, openenv is already vendored in the build context
|
| 31 |
+
# For standalone builds, openenv will be installed via pyproject.toml
|
| 32 |
+
WORKDIR /app/env
|
| 33 |
+
|
| 34 |
+
# Ensure uv is available (for local builds where base image lacks it)
|
| 35 |
+
RUN if ! command -v uv >/dev/null 2>&1; then \
|
| 36 |
+
curl -LsSf https://astral.sh/uv/install.sh | sh && \
|
| 37 |
+
mv /root/.local/bin/uv /usr/local/bin/uv && \
|
| 38 |
+
mv /root/.local/bin/uvx /usr/local/bin/uvx; \
|
| 39 |
+
fi
|
| 40 |
+
|
| 41 |
+
# Install dependencies using uv sync
|
| 42 |
+
# If uv.lock exists, use it; otherwise resolve on the fly
|
| 43 |
+
RUN --mount=type=cache,target=/root/.cache/uv \
|
| 44 |
+
if [ -f uv.lock ]; then \
|
| 45 |
+
uv sync --frozen --no-install-project --no-editable; \
|
| 46 |
+
else \
|
| 47 |
+
uv sync --no-install-project --no-editable; \
|
| 48 |
+
fi
|
| 49 |
+
|
| 50 |
+
RUN --mount=type=cache,target=/root/.cache/uv \
|
| 51 |
+
if [ -f uv.lock ]; then \
|
| 52 |
+
uv sync --frozen --no-editable; \
|
| 53 |
+
else \
|
| 54 |
+
uv sync --no-editable; \
|
| 55 |
+
fi
|
| 56 |
+
|
| 57 |
+
# Final runtime stage
|
| 58 |
+
FROM ${BASE_IMAGE}
|
| 59 |
+
|
| 60 |
+
WORKDIR /app
|
| 61 |
+
|
| 62 |
+
# Copy the virtual environment from builder
|
| 63 |
+
COPY --from=builder /app/env/.venv /app/.venv
|
| 64 |
+
|
| 65 |
+
# Copy the environment code
|
| 66 |
+
COPY --from=builder /app/env /app/env
|
| 67 |
+
|
| 68 |
+
# Set PATH to use the virtual environment
|
| 69 |
+
ENV PATH="/app/.venv/bin:$PATH"
|
| 70 |
+
|
| 71 |
+
# Set PYTHONPATH so imports work correctly
|
| 72 |
+
ENV PYTHONPATH="/app/env:$PYTHONPATH"
|
| 73 |
+
|
| 74 |
+
# Health check
|
| 75 |
+
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
| 76 |
+
CMD curl -f http://localhost:8000/health || exit 1
|
| 77 |
+
|
| 78 |
+
# Run the FastAPI server
|
| 79 |
+
# The module path is constructed to work with the /app/env structure
|
| 80 |
+
ENV ENABLE_WEB_INTERFACE=true
|
| 81 |
+
CMD ["sh", "-c", "cd /app/env && uvicorn server.app:app --host 0.0.0.0 --port 8000"]
|
README.md
CHANGED
|
@@ -1,10 +1,64 @@
|
|
| 1 |
-
---
|
| 2 |
-
title: DebugZero
|
| 3 |
-
emoji:
|
| 4 |
-
colorFrom: blue
|
| 5 |
-
colorTo:
|
| 6 |
-
sdk: docker
|
| 7 |
-
pinned: false
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
title: DebugZero
|
| 3 |
+
emoji: 🧪
|
| 4 |
+
colorFrom: blue
|
| 5 |
+
colorTo: green
|
| 6 |
+
sdk: docker
|
| 7 |
+
pinned: false
|
| 8 |
+
base_path: /web
|
| 9 |
+
---
|
| 10 |
+
|
| 11 |
+
# DebugZero Environment
|
| 12 |
+
|
| 13 |
+
*Our environment extends the Absolute Zero paradigm (Zhao et al., NeurIPS 2025) to adversarial bug-fixing self-play. The Proposer's mutation operators are implemented from scratch using Python AST manipulation across 8 operator types. The verifier adapts Mutahunter's execution pipeline.*
|
| 14 |
+
|
| 15 |
+
DebugZero is a self-play environment where one LLM plays two roles:
|
| 16 |
+
1. **Proposer**: Injects realistic bugs into clean Python functions using AST-level edits.
|
| 17 |
+
2. **Solver**: Fixes the bugs, practicing on the generated adversarial examples.
|
| 18 |
+
|
| 19 |
+
This project enables fully self-improving debugging capabilities without human-curated datasets, verified by a strict Python execution sandbox.
|
| 20 |
+
|
| 21 |
+
## Setup
|
| 22 |
+
|
| 23 |
+
First, install dependencies:
|
| 24 |
+
```bash
|
| 25 |
+
uv sync
|
| 26 |
+
```
|
| 27 |
+
|
| 28 |
+
## Running the Training Loop
|
| 29 |
+
|
| 30 |
+
We provide a direct implementation of the Hugging Face TRL GRPOTrainer, modified to support a dual-role `reward_fn` dynamic routing system.
|
| 31 |
+
|
| 32 |
+
```bash
|
| 33 |
+
python training/grpo_train.py
|
| 34 |
+
```
|
| 35 |
+
|
| 36 |
+
For the hackathon submission, use the rerunnable Colab notebook at
|
| 37 |
+
[`notebooks/train_colab.ipynb`](notebooks/train_colab.ipynb). It installs DebugZero
|
| 38 |
+
from GitHub, connects through the packaged OpenEnv client, trains with TRL/Unsloth
|
| 39 |
+
against live `reset`/`step` environment rollouts, and saves reward/loss plots for
|
| 40 |
+
the README.
|
| 41 |
+
|
| 42 |
+
## Repository Structure
|
| 43 |
+
|
| 44 |
+
```
|
| 45 |
+
debugZero/
|
| 46 |
+
├── server/
|
| 47 |
+
│ ├── app.py # OpenEnv FastAPI app
|
| 48 |
+
│ ├── debugZero_environment.py # Environment state machine tracking Proposer/Solver turns
|
| 49 |
+
│ ├── executor.py # Isolated subprocess execution sandbox (timeout=5s)
|
| 50 |
+
│ ├── bug_injector.py # AST mutation engine with 8 operators and strict safety checks
|
| 51 |
+
│ └── plausibility.py # Levenshtein AST distance calculator
|
| 52 |
+
├── training/
|
| 53 |
+
│ ├── rewards.py # Calculation for Proposer and Solver rewards + learnability deque
|
| 54 |
+
│ ├── dual_role_sampler.py # Prompt templates for Qwen2.5-Coder-3B-Instruct
|
| 55 |
+
│ └── grpo_train.py # TRL trainer bridging output metadata to reward forms
|
| 56 |
+
├── eval/
|
| 57 |
+
│ └── plausibility_eval.py # Offline benchmark tool against navidadkhah 25k bug dataset
|
| 58 |
+
├── models.py # Data types for the dual-role protocol
|
| 59 |
+
└── client.py # OpenEnv DebugZero client class
|
| 60 |
+
```
|
| 61 |
+
|
| 62 |
+
## Safety
|
| 63 |
+
|
| 64 |
+
DebugZero wraps the execution in a standard `openenv` container via FastAPI, but specifically filters AST payloads using an `is_safe` string filter to prevent `os`, `sys`, `subprocess`, `shutil`, and `pathlib` evaluations.
|
__init__.py
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 2 |
+
# All rights reserved.
|
| 3 |
+
#
|
| 4 |
+
# This source code is licensed under the BSD-style license found in the
|
| 5 |
+
# LICENSE file in the root directory of this source tree.
|
| 6 |
+
|
| 7 |
+
"""Debugzero Environment."""
|
| 8 |
+
|
| 9 |
+
from .client import DebugzeroEnv
|
| 10 |
+
from .models import DebugzeroAction, DebugzeroObservation
|
| 11 |
+
|
| 12 |
+
__all__ = [
|
| 13 |
+
"DebugzeroAction",
|
| 14 |
+
"DebugzeroObservation",
|
| 15 |
+
"DebugzeroEnv",
|
| 16 |
+
]
|
chunk1.json
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"nodes": [
|
| 3 |
+
{"id": "debugzero", "label": "DebugZero", "file_type": "code"},
|
| 4 |
+
{"id": "absolute_zero", "label": "Absolute Zero", "file_type": "paper"},
|
| 5 |
+
{"id": "proposer_role", "label": "Proposer", "file_type": "code"},
|
| 6 |
+
{"id": "solver_role", "label": "Solver", "file_type": "code"},
|
| 7 |
+
{"id": "ast_manipulation", "label": "AST Manipulation", "file_type": "code"},
|
| 8 |
+
{"id": "bug_injector", "label": "bug_injector.py", "file_type": "code"},
|
| 9 |
+
{"id": "executor", "label": "executor.py", "file_type": "code"},
|
| 10 |
+
{"id": "plausibility", "label": "plausibility.py", "file_type": "code"},
|
| 11 |
+
{"id": "debugzero_env", "label": "debugZero_environment.py", "file_type": "code"},
|
| 12 |
+
{"id": "rewards", "label": "rewards.py", "file_type": "code"},
|
| 13 |
+
{"id": "dual_role_sampler", "label": "dual_role_sampler.py", "file_type": "code"},
|
| 14 |
+
{"id": "grpo_train", "label": "grpo_train.py", "file_type": "code"},
|
| 15 |
+
{"id": "plausibility_eval", "label": "plausibility_eval.py", "file_type": "code"},
|
| 16 |
+
{"id": "models", "label": "models.py", "file_type": "code"},
|
| 17 |
+
{"id": "client", "label": "client.py", "file_type": "code"},
|
| 18 |
+
{"id": "mutahunter", "label": "Mutahunter", "file_type": "code"},
|
| 19 |
+
{"id": "grpo_trainer", "label": "GRPOTrainer", "file_type": "code"},
|
| 20 |
+
{"id": "qwen_model", "label": "Qwen2.5-Coder-3B-Instruct", "file_type": "code"},
|
| 21 |
+
{"id": "fastapi", "label": "FastAPI", "file_type": "code"},
|
| 22 |
+
{"id": "uvicorn", "label": "uvicorn", "file_type": "code"},
|
| 23 |
+
{"id": "openenv", "label": "openenv", "file_type": "code"},
|
| 24 |
+
{"id": "levenshtein", "label": "Levenshtein Distance", "file_type": "code"},
|
| 25 |
+
{"id": "python_sandbox", "label": "Python Execution Sandbox", "file_type": "code"},
|
| 26 |
+
{"id": "navidadkhah_dataset", "label": "navidadkhah 25k Bug Dataset", "file_type": "document"},
|
| 27 |
+
{"id": "zhao_paper", "label": "Zhao et al., NeurIPS 2025", "file_type": "paper"}
|
| 28 |
+
],
|
| 29 |
+
"edges": [
|
| 30 |
+
{"source": "debugzero", "target": "absolute_zero", "relation": "extends_paradigm", "confidence": "EXTRACTED"},
|
| 31 |
+
{"source": "debugzero", "target": "proposer_role", "relation": "has_role", "confidence": "EXTRACTED"},
|
| 32 |
+
{"source": "debugzero", "target": "solver_role", "relation": "has_role", "confidence": "EXTRACTED"},
|
| 33 |
+
{"source": "proposer_role", "target": "ast_manipulation", "relation": "uses", "confidence": "EXTRACTED"},
|
| 34 |
+
{"source": "proposer_role", "target": "bug_injector", "relation": "implemented_by", "confidence": "EXTRACTED"},
|
| 35 |
+
{"source": "bug_injector", "target": "ast_manipulation", "relation": "implements", "confidence": "EXTRACTED"},
|
| 36 |
+
{"source": "executor", "target": "python_sandbox", "relation": "provides", "confidence": "EXTRACTED"},
|
| 37 |
+
{"source": "plausibility", "target": "levenshtein", "relation": "uses_algorithm", "confidence": "EXTRACTED"},
|
| 38 |
+
{"source": "debugzero_env", "target": "proposer_role", "relation": "tracks_state", "confidence": "EXTRACTED"},
|
| 39 |
+
{"source": "debugzero_env", "target": "solver_role", "relation": "tracks_state", "confidence": "EXTRACTED"},
|
| 40 |
+
{"source": "rewards", "target": "proposer_role", "relation": "calculates_reward_for", "confidence": "EXTRACTED"},
|
| 41 |
+
{"source": "rewards", "target": "solver_role", "relation": "calculates_reward_for", "confidence": "EXTRACTED"},
|
| 42 |
+
{"source": "dual_role_sampler", "target": "qwen_model", "relation": "uses", "confidence": "EXTRACTED"},
|
| 43 |
+
{"source": "grpo_train", "target": "grpo_trainer", "relation": "uses", "confidence": "EXTRACTED"},
|
| 44 |
+
{"source": "plausibility_eval", "target": "navidadkhah_dataset", "relation": "benchmarks_against", "confidence": "EXTRACTED"},
|
| 45 |
+
{"source": "debugzero", "target": "fastapi", "relation": "uses", "confidence": "EXTRACTED"},
|
| 46 |
+
{"source": "debugzero", "target": "uvicorn", "relation": "uses", "confidence": "EXTRACTED"},
|
| 47 |
+
{"source": "debugzero", "target": "openenv", "relation": "uses", "confidence": "EXTRACTED"},
|
| 48 |
+
{"source": "debugzero", "target": "mutahunter", "relation": "adapts_execution_pipeline", "confidence": "EXTRACTED"},
|
| 49 |
+
{"source": "debugzero", "target": "zhao_paper", "relation": "cites", "confidence": "EXTRACTED"}
|
| 50 |
+
],
|
| 51 |
+
"hyperedges": [
|
| 52 |
+
{
|
| 53 |
+
"id": "server_module",
|
| 54 |
+
"label": "Server Module",
|
| 55 |
+
"nodes": ["bug_injector", "executor", "plausibility", "debugzero_env", "fastapi"]
|
| 56 |
+
},
|
| 57 |
+
{
|
| 58 |
+
"id": "training_module",
|
| 59 |
+
"label": "Training Module",
|
| 60 |
+
"nodes": ["rewards", "dual_role_sampler", "grpo_train", "grpo_trainer", "qwen_model"]
|
| 61 |
+
},
|
| 62 |
+
{
|
| 63 |
+
"id": "eval_module",
|
| 64 |
+
"label": "Evaluation Module",
|
| 65 |
+
"nodes": ["plausibility_eval", "navidadkhah_dataset", "levenshtein"]
|
| 66 |
+
}
|
| 67 |
+
]
|
| 68 |
+
}
|
client.py
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 2 |
+
# All rights reserved.
|
| 3 |
+
#
|
| 4 |
+
# This source code is licensed under the BSD-style license found in the
|
| 5 |
+
# LICENSE file in the root directory of this source tree.
|
| 6 |
+
|
| 7 |
+
"""Debugzero Environment Client."""
|
| 8 |
+
|
| 9 |
+
from typing import Dict
|
| 10 |
+
|
| 11 |
+
from openenv.core import EnvClient
|
| 12 |
+
from openenv.core.client_types import StepResult
|
| 13 |
+
from openenv.core.env_server.types import State
|
| 14 |
+
|
| 15 |
+
from .models import DebugzeroAction, DebugzeroObservation, DebugzeroState
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
class DebugzeroEnv(
|
| 19 |
+
EnvClient[DebugzeroAction, DebugzeroObservation, DebugzeroState]
|
| 20 |
+
):
|
| 21 |
+
"""
|
| 22 |
+
Client for the DebugZero Environment.
|
| 23 |
+
|
| 24 |
+
This client maintains a persistent WebSocket connection to the environment server,
|
| 25 |
+
enabling efficient multi-step interactions for Proposer/Solver roles.
|
| 26 |
+
Each client instance has its own dedicated environment session on the server.
|
| 27 |
+
|
| 28 |
+
Example:
|
| 29 |
+
>>> # Connect to a running server
|
| 30 |
+
>>> with DebugzeroEnv(base_url="http://localhost:8000") as client:
|
| 31 |
+
... result = client.reset()
|
| 32 |
+
... print(result.observation.current_code)
|
| 33 |
+
...
|
| 34 |
+
... result = client.step(DebugzeroAction(role="proposer", code="buggy code"))
|
| 35 |
+
... print(result.observation.tests_passed)
|
| 36 |
+
|
| 37 |
+
Example with Docker:
|
| 38 |
+
>>> # Automatically start container and connect
|
| 39 |
+
>>> client = DebugzeroEnv.from_docker_image("debugZero-env:latest")
|
| 40 |
+
>>> try:
|
| 41 |
+
... result = client.reset()
|
| 42 |
+
... result = client.step(DebugzeroAction(role="proposer", code="import os"))
|
| 43 |
+
... finally:
|
| 44 |
+
... client.close()
|
| 45 |
+
"""
|
| 46 |
+
|
| 47 |
+
def _step_payload(self, action: DebugzeroAction) -> Dict:
|
| 48 |
+
"""
|
| 49 |
+
Convert DebugzeroAction to JSON payload for step message.
|
| 50 |
+
|
| 51 |
+
Args:
|
| 52 |
+
action: DebugzeroAction instance
|
| 53 |
+
|
| 54 |
+
Returns:
|
| 55 |
+
Dictionary representation suitable for JSON encoding
|
| 56 |
+
"""
|
| 57 |
+
return {
|
| 58 |
+
"role": action.role,
|
| 59 |
+
"code": action.code,
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
def _parse_result(self, payload: Dict) -> StepResult[DebugzeroObservation]:
|
| 63 |
+
"""
|
| 64 |
+
Parse server response into StepResult[DebugzeroObservation].
|
| 65 |
+
|
| 66 |
+
Args:
|
| 67 |
+
payload: JSON response data from server
|
| 68 |
+
|
| 69 |
+
Returns:
|
| 70 |
+
StepResult with DebugzeroObservation
|
| 71 |
+
"""
|
| 72 |
+
obs_data = payload.get("observation", {})
|
| 73 |
+
observation = DebugzeroObservation(
|
| 74 |
+
role_next=obs_data.get("role_next", "proposer"),
|
| 75 |
+
current_code=obs_data.get("current_code", ""),
|
| 76 |
+
execution_result=obs_data.get("execution_result", ""),
|
| 77 |
+
tests_passed=obs_data.get("tests_passed", False),
|
| 78 |
+
syntax_error=obs_data.get("syntax_error", False),
|
| 79 |
+
done=payload.get("done", False),
|
| 80 |
+
reward=payload.get("reward"),
|
| 81 |
+
metadata=obs_data.get("metadata", {}),
|
| 82 |
+
)
|
| 83 |
+
|
| 84 |
+
return StepResult(
|
| 85 |
+
observation=observation,
|
| 86 |
+
reward=payload.get("reward"),
|
| 87 |
+
done=payload.get("done", False),
|
| 88 |
+
)
|
| 89 |
+
|
| 90 |
+
def _parse_state(self, payload: Dict) -> DebugzeroState:
|
| 91 |
+
"""
|
| 92 |
+
Parse server response into State object.
|
| 93 |
+
|
| 94 |
+
Args:
|
| 95 |
+
payload: JSON response from state request
|
| 96 |
+
|
| 97 |
+
Returns:
|
| 98 |
+
State object
|
| 99 |
+
"""
|
| 100 |
+
return DebugzeroState(
|
| 101 |
+
episode_id=payload.get("episode_id"),
|
| 102 |
+
step_count=payload.get("step_count", 0),
|
| 103 |
+
seed_id=payload.get("seed_id", ""),
|
| 104 |
+
original_code=payload.get("original_code", ""),
|
| 105 |
+
current_code=payload.get("current_code", ""),
|
| 106 |
+
role_turn=payload.get("role_turn", "proposer"),
|
| 107 |
+
)
|
eval/plausibility_eval.py
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import ast
|
| 2 |
+
from training.rewards import compute_proposer_reward
|
| 3 |
+
from server.plausibility import compute_ast_distance
|
| 4 |
+
|
| 5 |
+
def evaluate_navidadkhah_plausibility():
|
| 6 |
+
"""
|
| 7 |
+
Offline evaluation of generated bugs against the navidadkhah 25k bug dataset.
|
| 8 |
+
This checks if our Proposer's generated bugs have realistic AST distances
|
| 9 |
+
similar to actual human-made bugs in the dataset.
|
| 10 |
+
"""
|
| 11 |
+
# Pseudo-code for evaluation script
|
| 12 |
+
print("Evaluating plausibility against navidadkhah dataset...")
|
| 13 |
+
|
| 14 |
+
dummy_human_bug = "def add(a, b): return a - b"
|
| 15 |
+
dummy_clean = "def add(a, b): return a + b"
|
| 16 |
+
|
| 17 |
+
dist = compute_ast_distance(dummy_clean, dummy_human_bug)
|
| 18 |
+
print(f"Average human bug AST distance score: {dist}")
|
| 19 |
+
print("Compare this with our trained Proposer's average score to validate plausibility.")
|
| 20 |
+
|
| 21 |
+
if __name__ == "__main__":
|
| 22 |
+
evaluate_navidadkhah_plausibility()
|
eval/test_bug_injector.py
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import pytest
|
| 2 |
+
from server.bug_injector import inject_bug
|
| 3 |
+
|
| 4 |
+
SEED = """def factorial(n):
|
| 5 |
+
if n == 0:
|
| 6 |
+
return 1
|
| 7 |
+
return n * factorial(n - 1)
|
| 8 |
+
"""
|
| 9 |
+
|
| 10 |
+
def test_missing_base_case():
|
| 11 |
+
mutated, changed = inject_bug(SEED, "missing_base_case")
|
| 12 |
+
# Base case should be pass
|
| 13 |
+
assert changed == True
|
| 14 |
+
assert "return 1" not in mutated
|
| 15 |
+
assert "pass" in mutated
|
| 16 |
+
|
| 17 |
+
def test_off_by_one():
|
| 18 |
+
# Value 0 or 1 should be shifted
|
| 19 |
+
mutated, changed = inject_bug(SEED, "off_by_one")
|
| 20 |
+
assert changed == True
|
| 21 |
+
assert mutated != SEED
|
| 22 |
+
|
| 23 |
+
SEED2 = "def count_up(n): return range(n)"
|
| 24 |
+
|
| 25 |
+
def test_loop_boundary_shift():
|
| 26 |
+
mutated, changed = inject_bug(SEED2, "loop_boundary_shift")
|
| 27 |
+
assert changed == True
|
| 28 |
+
assert "range(n + 1)" in mutated
|
| 29 |
+
|
| 30 |
+
SEED3 = "def do_any(arr): return any(arr)"
|
| 31 |
+
|
| 32 |
+
def test_wrong_builtin():
|
| 33 |
+
mutated, changed = inject_bug(SEED3, "wrong_builtin")
|
| 34 |
+
assert changed == True
|
| 35 |
+
assert "all(arr)" in mutated
|
| 36 |
+
|
| 37 |
+
SEED4 = "def check(x): return x > 0"
|
| 38 |
+
def test_condition_negation():
|
| 39 |
+
# Should wrap in not
|
| 40 |
+
mutated, changed = inject_bug("if x > 0:\n pass", "condition_negation")
|
| 41 |
+
assert changed == True
|
| 42 |
+
assert "if not x > 0:" in mutated
|
| 43 |
+
|
| 44 |
+
def test_safety_check_blocks():
|
| 45 |
+
# Injecting import os directly shouldn't be possible through AST operations, but let's test if the safety injector logic would block it if we injected it manually.
|
| 46 |
+
from server.bug_injector import is_safe_injection
|
| 47 |
+
unsafe = SEED + "\nimport os"
|
| 48 |
+
assert is_safe_injection(unsafe) == False
|
| 49 |
+
assert is_safe_injection(SEED) == True
|
eval/test_executor.py
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import pytest
|
| 2 |
+
from server.executor import is_safe, execute_code
|
| 3 |
+
|
| 4 |
+
def test_executor_is_safe():
|
| 5 |
+
assert is_safe("def add(a,b):\n return a+b") == True
|
| 6 |
+
|
| 7 |
+
# Blocked imports
|
| 8 |
+
assert is_safe("import os") == False
|
| 9 |
+
assert is_safe("from os import path") == False
|
| 10 |
+
assert is_safe("import sys\nsys.exit(1)") == False
|
| 11 |
+
assert is_safe("import subprocess as sp") == False
|
| 12 |
+
|
| 13 |
+
# Syntax errors
|
| 14 |
+
assert is_safe("def add(a b):") == False
|
| 15 |
+
|
| 16 |
+
def test_execute_code():
|
| 17 |
+
code = "def add(a, b): return a + b"
|
| 18 |
+
tests = "assert add(1, 2) == 3"
|
| 19 |
+
res = execute_code(code, tests)
|
| 20 |
+
assert res.passed == True
|
| 21 |
+
assert res.syntax_error == False
|
| 22 |
+
|
| 23 |
+
code_buggy = "def add(a, b): return a - b"
|
| 24 |
+
res2 = execute_code(code_buggy, tests)
|
| 25 |
+
assert res2.passed == False
|
| 26 |
+
assert res2.syntax_error == False
|
graphify-out/GRAPH_REPORT.md
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Graph Report - C:\Users\astra\Desktop\hackon\debugZero (2026-04-25)
|
| 2 |
+
|
| 3 |
+
## Corpus Check
|
| 4 |
+
- 16 files · ~3,811 words
|
| 5 |
+
- Verdict: corpus is large enough that graph structure adds value.
|
| 6 |
+
|
| 7 |
+
## Summary
|
| 8 |
+
- 83 nodes · 132 edges · 11 communities detected
|
| 9 |
+
- Extraction: 64% EXTRACTED · 36% INFERRED · 0% AMBIGUOUS · INFERRED: 48 edges (avg confidence: 0.64)
|
| 10 |
+
- Token cost: 0 input · 0 output
|
| 11 |
+
|
| 12 |
+
## Community Hubs (Navigation)
|
| 13 |
+
- [[_COMMUNITY_Community 0|Community 0]]
|
| 14 |
+
- [[_COMMUNITY_Community 1|Community 1]]
|
| 15 |
+
- [[_COMMUNITY_Community 2|Community 2]]
|
| 16 |
+
- [[_COMMUNITY_Community 3|Community 3]]
|
| 17 |
+
- [[_COMMUNITY_Community 4|Community 4]]
|
| 18 |
+
- [[_COMMUNITY_Community 5|Community 5]]
|
| 19 |
+
- [[_COMMUNITY_Community 6|Community 6]]
|
| 20 |
+
- [[_COMMUNITY_Community 7|Community 7]]
|
| 21 |
+
- [[_COMMUNITY_Community 8|Community 8]]
|
| 22 |
+
- [[_COMMUNITY_Community 9|Community 9]]
|
| 23 |
+
- [[_COMMUNITY_Community 10|Community 10]]
|
| 24 |
+
|
| 25 |
+
## God Nodes (most connected - your core abstractions)
|
| 26 |
+
1. `DebugzeroObservation` - 14 edges
|
| 27 |
+
2. `DebugzeroState` - 13 edges
|
| 28 |
+
3. `DebugzeroAction` - 12 edges
|
| 29 |
+
4. `DebugzeroEnvironment` - 12 edges
|
| 30 |
+
5. `BugInjectorVisitor` - 11 edges
|
| 31 |
+
6. `inject_bug()` - 9 edges
|
| 32 |
+
7. `DebugzeroEnv` - 8 edges
|
| 33 |
+
8. `execute_code()` - 6 edges
|
| 34 |
+
9. `test_local_env()` - 5 edges
|
| 35 |
+
10. `Dual-role DebugZero Environment wrapping a Python sandbox execution for Prop` - 5 edges
|
| 36 |
+
|
| 37 |
+
## Surprising Connections (you probably didn't know these)
|
| 38 |
+
- `DebugzeroEnv` --uses--> `DebugzeroAction` [INFERRED]
|
| 39 |
+
C:\Users\astra\Desktop\hackon\debugZero\client.py → C:\Users\astra\Desktop\hackon\debugZero\models.py
|
| 40 |
+
- `DebugzeroEnv` --uses--> `DebugzeroObservation` [INFERRED]
|
| 41 |
+
C:\Users\astra\Desktop\hackon\debugZero\client.py → C:\Users\astra\Desktop\hackon\debugZero\models.py
|
| 42 |
+
- `Client for the DebugZero Environment. This client maintains a persistent We` --uses--> `DebugzeroAction` [INFERRED]
|
| 43 |
+
C:\Users\astra\Desktop\hackon\debugZero\client.py → C:\Users\astra\Desktop\hackon\debugZero\models.py
|
| 44 |
+
- `Client for the DebugZero Environment. This client maintains a persistent We` --uses--> `DebugzeroObservation` [INFERRED]
|
| 45 |
+
C:\Users\astra\Desktop\hackon\debugZero\client.py → C:\Users\astra\Desktop\hackon\debugZero\models.py
|
| 46 |
+
- `Convert DebugzeroAction to JSON payload for step message. Args:` --uses--> `DebugzeroAction` [INFERRED]
|
| 47 |
+
C:\Users\astra\Desktop\hackon\debugZero\client.py → C:\Users\astra\Desktop\hackon\debugZero\models.py
|
| 48 |
+
|
| 49 |
+
## Communities
|
| 50 |
+
|
| 51 |
+
### Community 0 - "Community 0"
|
| 52 |
+
Cohesion: 0.29
|
| 53 |
+
Nodes (9): inject_bug(), is_safe_injection(), 4 critical checks: - parse succeeds - mutation actually changed code, test_condition_negation(), test_loop_boundary_shift(), test_missing_base_case(), test_off_by_one(), test_safety_check_blocks() (+1 more)
|
| 54 |
+
|
| 55 |
+
### Community 1 - "Community 1"
|
| 56 |
+
Cohesion: 0.29
|
| 57 |
+
Nodes (7): DebugzeroEnv, Client for the DebugZero Environment. This client maintains a persistent We, Convert DebugzeroAction to JSON payload for step message. Args:, Parse server response into State object. Args: payload: JSO, DebugzeroState, State for the DebugZero environment, extending default state with seed context., State
|
| 58 |
+
|
| 59 |
+
### Community 2 - "Community 2"
|
| 60 |
+
Cohesion: 0.2
|
| 61 |
+
Nodes (1): BugInjectorVisitor
|
| 62 |
+
|
| 63 |
+
### Community 3 - "Community 3"
|
| 64 |
+
Cohesion: 0.27
|
| 65 |
+
Nodes (7): execute_code(), ExecutionResult, is_safe(), Check if the code contains any blocked imports strings. Also performs a qu, Executes the provided python code alongside its tests in an isolated subprocess., test_execute_code(), test_executor_is_safe()
|
| 66 |
+
|
| 67 |
+
### Community 4 - "Community 4"
|
| 68 |
+
Cohesion: 0.33
|
| 69 |
+
Nodes (7): create_dataset(), main(), reward_fn(), compute_proposer_reward(), compute_solver_reward(), get_solve_rate(), record_solve_result()
|
| 70 |
+
|
| 71 |
+
### Community 5 - "Community 5"
|
| 72 |
+
Cohesion: 0.32
|
| 73 |
+
Nodes (1): main()
|
| 74 |
+
|
| 75 |
+
### Community 6 - "Community 6"
|
| 76 |
+
Cohesion: 0.47
|
| 77 |
+
Nodes (3): DebugzeroEnvironment, Environment, test_local_env()
|
| 78 |
+
|
| 79 |
+
### Community 7 - "Community 7"
|
| 80 |
+
Cohesion: 0.4
|
| 81 |
+
Nodes (5): Parse server response into StepResult[DebugzeroObservation]. Args:, Dual-role DebugZero Environment wrapping a Python sandbox execution for Prop, DebugzeroObservation, Observation from the DebugZero environment following sandbox execution., Observation
|
| 82 |
+
|
| 83 |
+
### Community 8 - "Community 8"
|
| 84 |
+
Cohesion: 0.33
|
| 85 |
+
Nodes (4): compute_ast_distance(), evaluate_navidadkhah_plausibility(), Offline evaluation of generated bugs against the navidadkhah 25k bug dataset., Computes the string similarity distance between the AST dumps of the original
|
| 86 |
+
|
| 87 |
+
### Community 9 - "Community 9"
|
| 88 |
+
Cohesion: 0.5
|
| 89 |
+
Nodes (4): Action, Entry point for direct execution via uv run or python -m. This function ena, DebugzeroAction, Action for the DebugZero environment representing the Proposer or Solver inputs.
|
| 90 |
+
|
| 91 |
+
### Community 10 - "Community 10"
|
| 92 |
+
Cohesion: 0.67
|
| 93 |
+
Nodes (0):
|
| 94 |
+
|
| 95 |
+
## Knowledge Gaps
|
| 96 |
+
- **8 isolated node(s):** `Action for the DebugZero environment representing the Proposer or Solver inputs.`, `Observation from the DebugZero environment following sandbox execution.`, `State for the DebugZero environment, extending default state with seed context.`, `Offline evaluation of generated bugs against the navidadkhah 25k bug dataset.`, `4 critical checks: - parse succeeds - mutation actually changed code` (+3 more)
|
| 97 |
+
These have ≤1 connection - possible missing edges or undocumented components.
|
| 98 |
+
|
| 99 |
+
## Suggested Questions
|
| 100 |
+
_Questions this graph is uniquely positioned to answer:_
|
| 101 |
+
|
| 102 |
+
- **Why does `DebugzeroEnvironment` connect `Community 6` to `Community 1`, `Community 3`, `Community 5`, `Community 7`, `Community 9`?**
|
| 103 |
+
_High betweenness centrality (0.209) - this node is a cross-community bridge._
|
| 104 |
+
- **Why does `BugInjectorVisitor` connect `Community 2` to `Community 0`?**
|
| 105 |
+
_High betweenness centrality (0.176) - this node is a cross-community bridge._
|
| 106 |
+
- **Why does `inject_bug()` connect `Community 0` to `Community 2`?**
|
| 107 |
+
_High betweenness centrality (0.134) - this node is a cross-community bridge._
|
| 108 |
+
- **Are the 11 inferred relationships involving `DebugzeroObservation` (e.g. with `DebugzeroEnv` and `Client for the DebugZero Environment. This client maintains a persistent We`) actually correct?**
|
| 109 |
+
_`DebugzeroObservation` has 11 INFERRED edges - model-reasoned connections that need verification._
|
| 110 |
+
- **Are the 10 inferred relationships involving `DebugzeroState` (e.g. with `DebugzeroEnv` and `Client for the DebugZero Environment. This client maintains a persistent We`) actually correct?**
|
| 111 |
+
_`DebugzeroState` has 10 INFERRED edges - model-reasoned connections that need verification._
|
| 112 |
+
- **Are the 9 inferred relationships involving `DebugzeroAction` (e.g. with `DebugzeroEnv` and `Client for the DebugZero Environment. This client maintains a persistent We`) actually correct?**
|
| 113 |
+
_`DebugzeroAction` has 9 INFERRED edges - model-reasoned connections that need verification._
|
| 114 |
+
- **Are the 6 inferred relationships involving `DebugzeroEnvironment` (e.g. with `Entry point for direct execution via uv run or python -m. This function ena` and `DebugzeroAction`) actually correct?**
|
| 115 |
+
_`DebugzeroEnvironment` has 6 INFERRED edges - model-reasoned connections that need verification._
|
graphify-out/cache/0c6469e30544c18c153edc6c36fc813de3a5919105b54570f09136cd26cfc475.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"nodes": [{"id": "c_users_astra_desktop_hackon_debugzero_init_py", "label": "__init__.py", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\__init__.py", "source_location": "L1"}], "edges": [{"source": "c_users_astra_desktop_hackon_debugzero_init_py", "target": "c_users_astra_desktop_hackon_debugzero_client_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\__init__.py", "source_location": "L9", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_init_py", "target": "c_users_astra_desktop_hackon_debugzero_models_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\__init__.py", "source_location": "L10", "weight": 1.0}], "raw_calls": []}
|
graphify-out/cache/1f05f73bdc29a2c726dfcbc4f0837f3e9268a4b0d7e90a96ed59fb4121c1bdba.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"nodes": [{"id": "c_users_astra_desktop_hackon_debugzero_server_app_py", "label": "app.py", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py", "source_location": "L1"}, {"id": "app_main", "label": "main()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py", "source_location": "L60"}, {"id": "app_rationale_61", "label": "Entry point for direct execution via uv run or python -m. This function ena", "file_type": "rationale", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py", "source_location": "L61"}], "edges": [{"source": "c_users_astra_desktop_hackon_debugzero_server_app_py", "target": "os", "relation": "imports", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py", "source_location": "L30", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_app_py", "target": "openenv_core_env_server_http_server", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py", "source_location": "L36", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_app_py", "target": "c_users_astra_desktop_hackon_debugzero_models_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py", "source_location": "L43", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_app_py", "target": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py", "source_location": "L44", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_app_py", "target": "models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py", "source_location": "L46", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_app_py", "target": "server_debugzero_environment", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py", "source_location": "L47", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_app_py", "target": "app_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py", "source_location": "L60", "weight": 1.0}, {"source": "app_rationale_61", "target": "app_main", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py", "source_location": "L61", "weight": 1.0}], "raw_calls": [{"caller_nid": "app_main", "callee": "ArgumentParser", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py", "source_location": "L72"}, {"caller_nid": "app_main", "callee": "add_argument", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py", "source_location": "L73"}, {"caller_nid": "app_main", "callee": "add_argument", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py", "source_location": "L74"}, {"caller_nid": "app_main", "callee": "parse_args", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py", "source_location": "L75"}, {"caller_nid": "app_main", "callee": "run", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py", "source_location": "L77"}]}
|
graphify-out/cache/4284b1726a6f5337f88470318a6a3adc952d81bf0af980a3066fede2113a5de1.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"nodes": [{"id": "c_users_astra_desktop_hackon_debugzero_server_executor_py", "label": "executor.py", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L1"}, {"id": "executor_is_safe", "label": "is_safe()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L9"}, {"id": "executor_executionresult", "label": "ExecutionResult", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L44"}, {"id": "executor_executionresult_init", "label": ".__init__()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L45"}, {"id": "executor_execute_code", "label": "execute_code()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L51"}, {"id": "executor_rationale_10", "label": "Check if the code contains any blocked imports strings. Also performs a qu", "file_type": "rationale", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L10"}, {"id": "executor_rationale_52", "label": "Executes the provided python code alongside its tests in an isolated subprocess.", "file_type": "rationale", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L52"}], "edges": [{"source": "c_users_astra_desktop_hackon_debugzero_server_executor_py", "target": "os", "relation": "imports", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L1", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_executor_py", "target": "subprocess", "relation": "imports", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L2", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_executor_py", "target": "tempfile", "relation": "imports", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L3", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_executor_py", "target": "ast", "relation": "imports", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L4", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_executor_py", "target": "executor_is_safe", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L9", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_executor_py", "target": "executor_executionresult", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L44", "weight": 1.0}, {"source": "executor_executionresult", "target": "executor_executionresult_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L45", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_executor_py", "target": "executor_execute_code", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L51", "weight": 1.0}, {"source": "executor_execute_code", "target": "executor_is_safe", "relation": "calls", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L58", "weight": 1.0}, {"source": "executor_execute_code", "target": "executor_executionresult", "relation": "calls", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L62", "weight": 1.0}, {"source": "executor_rationale_10", "target": "executor_is_safe", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L10", "weight": 1.0}, {"source": "executor_rationale_52", "target": "executor_execute_code", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L52", "weight": 1.0}], "raw_calls": [{"caller_nid": "executor_is_safe", "callee": "parse", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L25"}, {"caller_nid": "executor_is_safe", "callee": "walk", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L30"}, {"caller_nid": "executor_is_safe", "callee": "isinstance", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L31"}, {"caller_nid": "executor_is_safe", "callee": "split", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L33"}, {"caller_nid": "executor_is_safe", "callee": "isinstance", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L35"}, {"caller_nid": "executor_is_safe", "callee": "split", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L36"}, {"caller_nid": "executor_is_safe", "callee": "isinstance", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L38"}, {"caller_nid": "executor_is_safe", "callee": "isinstance", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L39"}, {"caller_nid": "executor_execute_code", "callee": "parse", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L61"}, {"caller_nid": "executor_execute_code", "callee": "TemporaryDirectory", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L66"}, {"caller_nid": "executor_execute_code", "callee": "join", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L67"}, {"caller_nid": "executor_execute_code", "callee": "open", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L68"}, {"caller_nid": "executor_execute_code", "callee": "write", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L69"}, {"caller_nid": "executor_execute_code", "callee": "run", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L73"}, {"caller_nid": "executor_execute_code", "callee": "str", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "source_location": "L89"}]}
|
graphify-out/cache/42ccfd67266bbb0515001a31a0884b5111cf535a7456540aaf8126356f66c0d8.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"nodes": [{"id": "c_users_astra_desktop_hackon_debugzero_client_py", "label": "client.py", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L1"}, {"id": "client_debugzeroenv", "label": "DebugzeroEnv", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L18"}, {"id": "client_debugzeroenv_step_payload", "label": "._step_payload()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L47"}, {"id": "client_debugzeroenv_parse_result", "label": "._parse_result()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L62"}, {"id": "client_debugzeroenv_parse_state", "label": "._parse_state()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L90"}, {"id": "client_rationale_21", "label": "Client for the DebugZero Environment. This client maintains a persistent We", "file_type": "rationale", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L21"}, {"id": "client_rationale_48", "label": "Convert DebugzeroAction to JSON payload for step message. Args:", "file_type": "rationale", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L48"}, {"id": "client_rationale_63", "label": "Parse server response into StepResult[DebugzeroObservation]. Args:", "file_type": "rationale", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L63"}, {"id": "client_rationale_91", "label": "Parse server response into State object. Args: payload: JSO", "file_type": "rationale", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L91"}], "edges": [{"source": "c_users_astra_desktop_hackon_debugzero_client_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L9", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_client_py", "target": "openenv_core", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L11", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_client_py", "target": "openenv_core_client_types", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L12", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_client_py", "target": "openenv_core_env_server_types", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L13", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_client_py", "target": "c_users_astra_desktop_hackon_debugzero_models_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L15", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_client_py", "target": "client_debugzeroenv", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L18", "weight": 1.0}, {"source": "client_debugzeroenv", "target": "client_debugzeroenv_step_payload", "relation": "method", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L47", "weight": 1.0}, {"source": "client_debugzeroenv", "target": "client_debugzeroenv_parse_result", "relation": "method", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L62", "weight": 1.0}, {"source": "client_debugzeroenv", "target": "client_debugzeroenv_parse_state", "relation": "method", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L90", "weight": 1.0}, {"source": "client_rationale_21", "target": "client_debugzeroenv", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L21", "weight": 1.0}, {"source": "client_rationale_48", "target": "client_debugzeroenv_step_payload", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L48", "weight": 1.0}, {"source": "client_rationale_63", "target": "client_debugzeroenv_parse_result", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L63", "weight": 1.0}, {"source": "client_rationale_91", "target": "client_debugzeroenv_parse_state", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L91", "weight": 1.0}], "raw_calls": [{"caller_nid": "client_debugzeroenv_parse_result", "callee": "get", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L72"}, {"caller_nid": "client_debugzeroenv_parse_result", "callee": "DebugzeroObservation", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L73"}, {"caller_nid": "client_debugzeroenv_parse_result", "callee": "get", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L74"}, {"caller_nid": "client_debugzeroenv_parse_result", "callee": "get", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L75"}, {"caller_nid": "client_debugzeroenv_parse_result", "callee": "get", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L76"}, {"caller_nid": "client_debugzeroenv_parse_result", "callee": "get", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L77"}, {"caller_nid": "client_debugzeroenv_parse_result", "callee": "get", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L78"}, {"caller_nid": "client_debugzeroenv_parse_result", "callee": "get", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L79"}, {"caller_nid": "client_debugzeroenv_parse_result", "callee": "get", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L80"}, {"caller_nid": "client_debugzeroenv_parse_result", "callee": "get", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L81"}, {"caller_nid": "client_debugzeroenv_parse_result", "callee": "StepResult", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L84"}, {"caller_nid": "client_debugzeroenv_parse_result", "callee": "get", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L86"}, {"caller_nid": "client_debugzeroenv_parse_result", "callee": "get", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L87"}, {"caller_nid": "client_debugzeroenv_parse_state", "callee": "DebugzeroState", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L100"}, {"caller_nid": "client_debugzeroenv_parse_state", "callee": "get", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L101"}, {"caller_nid": "client_debugzeroenv_parse_state", "callee": "get", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L102"}, {"caller_nid": "client_debugzeroenv_parse_state", "callee": "get", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L103"}, {"caller_nid": "client_debugzeroenv_parse_state", "callee": "get", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L104"}, {"caller_nid": "client_debugzeroenv_parse_state", "callee": "get", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L105"}, {"caller_nid": "client_debugzeroenv_parse_state", "callee": "get", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "source_location": "L106"}]}
|
graphify-out/cache/4b0c118efff193a51a179a31f39f5b0ff13346f112a008af15a082475d834b5b.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"nodes": [{"id": "c_users_astra_desktop_hackon_debugzero_server_init_py", "label": "__init__.py", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\__init__.py", "source_location": "L1"}], "edges": [{"source": "c_users_astra_desktop_hackon_debugzero_server_init_py", "target": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\__init__.py", "source_location": "L9", "weight": 1.0}], "raw_calls": []}
|
graphify-out/cache/56f26791a042ec1641e859dcef8c30dc6a237a8202a4a5a1d70d1f41bf5e8916.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"nodes": [{"id": "c_users_astra_desktop_hackon_debugzero_training_dual_role_sampler_py", "label": "dual_role_sampler.py", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\dual_role_sampler.py", "source_location": "L1"}, {"id": "dual_role_sampler_sample_proposer_prompt", "label": "sample_proposer_prompt()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\dual_role_sampler.py", "source_location": "L23"}, {"id": "dual_role_sampler_sample_solver_prompt", "label": "sample_solver_prompt()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\dual_role_sampler.py", "source_location": "L26"}], "edges": [{"source": "c_users_astra_desktop_hackon_debugzero_training_dual_role_sampler_py", "target": "dual_role_sampler_sample_proposer_prompt", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\dual_role_sampler.py", "source_location": "L23", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_training_dual_role_sampler_py", "target": "dual_role_sampler_sample_solver_prompt", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\dual_role_sampler.py", "source_location": "L26", "weight": 1.0}], "raw_calls": [{"caller_nid": "dual_role_sampler_sample_proposer_prompt", "callee": "format", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\dual_role_sampler.py", "source_location": "L24"}, {"caller_nid": "dual_role_sampler_sample_solver_prompt", "callee": "format", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\dual_role_sampler.py", "source_location": "L27"}]}
|
graphify-out/cache/7506245e194ca6061e161c330bcb6ca080a7be650cb6bc5f1e00ad900b81a709.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"nodes": [{"id": "c_users_astra_desktop_hackon_debugzero_training_grpo_train_py", "label": "grpo_train.py", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L1"}, {"id": "grpo_train_reward_fn", "label": "reward_fn()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L25"}, {"id": "grpo_train_create_dataset", "label": "create_dataset()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L44"}, {"id": "grpo_train_main", "label": "main()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L57"}], "edges": [{"source": "c_users_astra_desktop_hackon_debugzero_training_grpo_train_py", "target": "os", "relation": "imports", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L1", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_training_grpo_train_py", "target": "torch", "relation": "imports", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L2", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_training_grpo_train_py", "target": "datasets", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L3", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_training_grpo_train_py", "target": "unsloth", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L6", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_training_grpo_train_py", "target": "unsloth", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L13", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_training_grpo_train_py", "target": "trl", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L18", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_training_grpo_train_py", "target": "rewards", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L21", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_training_grpo_train_py", "target": "training_rewards", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L23", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_training_grpo_train_py", "target": "grpo_train_reward_fn", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L25", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_training_grpo_train_py", "target": "grpo_train_create_dataset", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L44", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_training_grpo_train_py", "target": "grpo_train_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L57", "weight": 1.0}, {"source": "grpo_train_main", "target": "grpo_train_create_dataset", "relation": "calls", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L63", "weight": 1.0}], "raw_calls": [{"caller_nid": "grpo_train_reward_fn", "callee": "zip", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L28"}, {"caller_nid": "grpo_train_reward_fn", "callee": "compute_proposer_reward", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L34"}, {"caller_nid": "grpo_train_reward_fn", "callee": "append", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L35"}, {"caller_nid": "grpo_train_reward_fn", "callee": "compute_solver_reward", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L37"}, {"caller_nid": "grpo_train_reward_fn", "callee": "append", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L38"}, {"caller_nid": "grpo_train_reward_fn", "callee": "append", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L40"}, {"caller_nid": "grpo_train_create_dataset", "callee": "from_dict", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L46"}, {"caller_nid": "grpo_train_main", "callee": "ArgumentParser", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L59"}, {"caller_nid": "grpo_train_main", "callee": "add_argument", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L60"}, {"caller_nid": "grpo_train_main", "callee": "parse_args", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L61"}, {"caller_nid": "grpo_train_main", "callee": "is_bfloat16_supported", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L67"}, {"caller_nid": "grpo_train_main", "callee": "GRPOConfig", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L71"}, {"caller_nid": "grpo_train_main", "callee": "print", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L86"}, {"caller_nid": "grpo_train_main", "callee": "from_pretrained", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L87"}, {"caller_nid": "grpo_train_main", "callee": "get_peft_model", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L94"}, {"caller_nid": "grpo_train_main", "callee": "print", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L105"}, {"caller_nid": "grpo_train_main", "callee": "print", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L107"}, {"caller_nid": "grpo_train_main", "callee": "GRPOTrainer", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L111"}, {"caller_nid": "grpo_train_main", "callee": "print", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L119"}, {"caller_nid": "grpo_train_main", "callee": "print", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L121"}, {"caller_nid": "grpo_train_main", "callee": "print", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "source_location": "L123"}]}
|
graphify-out/cache/75483d038cbfffeee334670ed9b2d5b2b72a83aa109974b620ab06c6c532eacb.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"nodes": [{"id": "c_users_astra_desktop_hackon_debugzero_run_episode_py", "label": "run_episode.py", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L1"}, {"id": "run_episode_test_local_env", "label": "test_local_env()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L7"}], "edges": [{"source": "c_users_astra_desktop_hackon_debugzero_run_episode_py", "target": "asyncio", "relation": "imports", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L1", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_run_episode_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L2", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_run_episode_py", "target": "subprocess", "relation": "imports", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L3", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_run_episode_py", "target": "server_debugzero_environment", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L4", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_run_episode_py", "target": "models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L5", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_run_episode_py", "target": "run_episode_test_local_env", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L7", "weight": 1.0}], "raw_calls": [{"caller_nid": "run_episode_test_local_env", "callee": "print", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L8"}, {"caller_nid": "run_episode_test_local_env", "callee": "DebugzeroEnvironment", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L9"}, {"caller_nid": "run_episode_test_local_env", "callee": "reset", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L10"}, {"caller_nid": "run_episode_test_local_env", "callee": "print", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L11"}, {"caller_nid": "run_episode_test_local_env", "callee": "print", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L14"}, {"caller_nid": "run_episode_test_local_env", "callee": "DebugzeroAction", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L15"}, {"caller_nid": "run_episode_test_local_env", "callee": "step", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L16"}, {"caller_nid": "run_episode_test_local_env", "callee": "print", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L17"}, {"caller_nid": "run_episode_test_local_env", "callee": "print", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L18"}, {"caller_nid": "run_episode_test_local_env", "callee": "strip", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L18"}, {"caller_nid": "run_episode_test_local_env", "callee": "reset", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L20"}, {"caller_nid": "run_episode_test_local_env", "callee": "print", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L22"}, {"caller_nid": "run_episode_test_local_env", "callee": "DebugzeroAction", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L24"}, {"caller_nid": "run_episode_test_local_env", "callee": "step", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L25"}, {"caller_nid": "run_episode_test_local_env", "callee": "print", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L26"}, {"caller_nid": "run_episode_test_local_env", "callee": "print", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L29"}, {"caller_nid": "run_episode_test_local_env", "callee": "replace", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L30"}, {"caller_nid": "run_episode_test_local_env", "callee": "DebugzeroAction", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L31"}, {"caller_nid": "run_episode_test_local_env", "callee": "step", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L32"}, {"caller_nid": "run_episode_test_local_env", "callee": "print", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "source_location": "L33"}]}
|
graphify-out/cache/b1a762596f5fee316f1df48b8cdd9fc129b88766a1d8a8ba2fd0c3ac49893360.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"nodes": [{"id": "c_users_astra_desktop_hackon_debugzero_eval_test_executor_py", "label": "test_executor.py", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py", "source_location": "L1"}, {"id": "test_executor_test_executor_is_safe", "label": "test_executor_is_safe()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py", "source_location": "L4"}, {"id": "test_executor_test_execute_code", "label": "test_execute_code()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py", "source_location": "L16"}], "edges": [{"source": "c_users_astra_desktop_hackon_debugzero_eval_test_executor_py", "target": "pytest", "relation": "imports", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py", "source_location": "L1", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_eval_test_executor_py", "target": "server_executor", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py", "source_location": "L2", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_eval_test_executor_py", "target": "test_executor_test_executor_is_safe", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py", "source_location": "L4", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_eval_test_executor_py", "target": "test_executor_test_execute_code", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py", "source_location": "L16", "weight": 1.0}], "raw_calls": [{"caller_nid": "test_executor_test_executor_is_safe", "callee": "is_safe", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py", "source_location": "L5"}, {"caller_nid": "test_executor_test_executor_is_safe", "callee": "is_safe", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py", "source_location": "L8"}, {"caller_nid": "test_executor_test_executor_is_safe", "callee": "is_safe", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py", "source_location": "L9"}, {"caller_nid": "test_executor_test_executor_is_safe", "callee": "is_safe", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py", "source_location": "L10"}, {"caller_nid": "test_executor_test_executor_is_safe", "callee": "is_safe", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py", "source_location": "L11"}, {"caller_nid": "test_executor_test_executor_is_safe", "callee": "is_safe", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py", "source_location": "L14"}, {"caller_nid": "test_executor_test_execute_code", "callee": "execute_code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py", "source_location": "L19"}, {"caller_nid": "test_executor_test_execute_code", "callee": "execute_code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py", "source_location": "L24"}]}
|
graphify-out/cache/c9885de9861dfdbfb8bf65fbf952f414e725d2a6075f4b839d2e64559590e362.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"nodes": [{"id": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "label": "debugZero_environment.py", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L1"}, {"id": "debugzero_environment_debugzeroenvironment", "label": "DebugzeroEnvironment", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L38"}, {"id": "environment", "label": "Environment", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "debugzero_environment_debugzeroenvironment_init", "label": ".__init__()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L45"}, {"id": "debugzero_environment_debugzeroenvironment_reset", "label": ".reset()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L56"}, {"id": "debugzero_environment_debugzeroenvironment_step", "label": ".step()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L77"}, {"id": "debugzero_environment_state", "label": "state()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L127"}, {"id": "debugzero_environment_rationale_39", "label": "Dual-role DebugZero Environment wrapping a Python sandbox execution for Prop", "file_type": "rationale", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L39"}], "edges": [{"source": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "target": "uuid", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L11", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "target": "openenv_core_env_server_interfaces", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L13", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "target": "openenv_core_env_server_types", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L14", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "target": "c_users_astra_desktop_hackon_debugzero_models_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L17", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "target": "models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L19", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "target": "c_users_astra_desktop_hackon_debugzero_server_executor_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L22", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "target": "c_users_astra_desktop_hackon_debugzero_server_bug_injector_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L23", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "target": "c_users_astra_desktop_hackon_debugzero_server_plausibility_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L24", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "target": "executor", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L26", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "target": "bug_injector", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L27", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "target": "plausibility", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L28", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "target": "debugzero_environment_debugzeroenvironment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L38", "weight": 1.0}, {"source": "debugzero_environment_debugzeroenvironment", "target": "environment", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L38", "weight": 1.0}, {"source": "debugzero_environment_debugzeroenvironment", "target": "debugzero_environment_debugzeroenvironment_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L45", "weight": 1.0}, {"source": "debugzero_environment_debugzeroenvironment", "target": "debugzero_environment_debugzeroenvironment_reset", "relation": "method", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L56", "weight": 1.0}, {"source": "debugzero_environment_debugzeroenvironment", "target": "debugzero_environment_debugzeroenvironment_step", "relation": "method", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L77", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "target": "debugzero_environment_state", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L127", "weight": 1.0}, {"source": "debugzero_environment_rationale_39", "target": "debugzero_environment_debugzeroenvironment", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L39", "weight": 1.0}], "raw_calls": [{"caller_nid": "debugzero_environment_debugzeroenvironment_init", "callee": "DebugzeroState", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L46"}, {"caller_nid": "debugzero_environment_debugzeroenvironment_init", "callee": "str", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L47"}, {"caller_nid": "debugzero_environment_debugzeroenvironment_init", "callee": "uuid4", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L47"}, {"caller_nid": "debugzero_environment_debugzeroenvironment_reset", "callee": "DebugzeroState", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L57"}, {"caller_nid": "debugzero_environment_debugzeroenvironment_reset", "callee": "str", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L58"}, {"caller_nid": "debugzero_environment_debugzeroenvironment_reset", "callee": "uuid4", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L58"}, {"caller_nid": "debugzero_environment_debugzeroenvironment_reset", "callee": "DebugzeroObservation", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L67"}, {"caller_nid": "debugzero_environment_debugzeroenvironment_step", "callee": "execute_code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L89"}, {"caller_nid": "debugzero_environment_debugzeroenvironment_step", "callee": "DebugzeroObservation", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L95"}, {"caller_nid": "debugzero_environment_debugzeroenvironment_step", "callee": "execute_code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L110"}, {"caller_nid": "debugzero_environment_debugzeroenvironment_step", "callee": "DebugzeroObservation", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L114"}, {"caller_nid": "debugzero_environment_debugzeroenvironment_step", "callee": "DebugzeroObservation", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "source_location": "L124"}]}
|
graphify-out/cache/cb20eafcbbe253b791b01a8f4d81e9275e85d46f833b71e1bd53abf19cd17e26.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"nodes": [{"id": "c_users_astra_desktop_hackon_debugzero_eval_plausibility_eval_py", "label": "plausibility_eval.py", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\plausibility_eval.py", "source_location": "L1"}, {"id": "plausibility_eval_evaluate_navidadkhah_plausibility", "label": "evaluate_navidadkhah_plausibility()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\plausibility_eval.py", "source_location": "L5"}, {"id": "plausibility_eval_rationale_6", "label": "Offline evaluation of generated bugs against the navidadkhah 25k bug dataset.", "file_type": "rationale", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\plausibility_eval.py", "source_location": "L6"}], "edges": [{"source": "c_users_astra_desktop_hackon_debugzero_eval_plausibility_eval_py", "target": "ast", "relation": "imports", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\plausibility_eval.py", "source_location": "L1", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_eval_plausibility_eval_py", "target": "training_rewards", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\plausibility_eval.py", "source_location": "L2", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_eval_plausibility_eval_py", "target": "server_plausibility", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\plausibility_eval.py", "source_location": "L3", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_eval_plausibility_eval_py", "target": "plausibility_eval_evaluate_navidadkhah_plausibility", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\plausibility_eval.py", "source_location": "L5", "weight": 1.0}, {"source": "plausibility_eval_rationale_6", "target": "plausibility_eval_evaluate_navidadkhah_plausibility", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\plausibility_eval.py", "source_location": "L6", "weight": 1.0}], "raw_calls": [{"caller_nid": "plausibility_eval_evaluate_navidadkhah_plausibility", "callee": "print", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\plausibility_eval.py", "source_location": "L12"}, {"caller_nid": "plausibility_eval_evaluate_navidadkhah_plausibility", "callee": "compute_ast_distance", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\plausibility_eval.py", "source_location": "L17"}, {"caller_nid": "plausibility_eval_evaluate_navidadkhah_plausibility", "callee": "print", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\plausibility_eval.py", "source_location": "L18"}, {"caller_nid": "plausibility_eval_evaluate_navidadkhah_plausibility", "callee": "print", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\plausibility_eval.py", "source_location": "L19"}]}
|
graphify-out/cache/d0a5997f201fea0af43ec9eeaaa25d7fcd42b2f27e50b4798176f0227ddf4f9c.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"nodes": [{"id": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py", "label": "test_bug_injector.py", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "source_location": "L1"}, {"id": "test_bug_injector_test_missing_base_case", "label": "test_missing_base_case()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "source_location": "L10"}, {"id": "test_bug_injector_test_off_by_one", "label": "test_off_by_one()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "source_location": "L17"}, {"id": "test_bug_injector_test_loop_boundary_shift", "label": "test_loop_boundary_shift()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "source_location": "L25"}, {"id": "test_bug_injector_test_wrong_builtin", "label": "test_wrong_builtin()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "source_location": "L32"}, {"id": "test_bug_injector_test_condition_negation", "label": "test_condition_negation()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "source_location": "L38"}, {"id": "test_bug_injector_test_safety_check_blocks", "label": "test_safety_check_blocks()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "source_location": "L44"}], "edges": [{"source": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py", "target": "pytest", "relation": "imports", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "source_location": "L1", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py", "target": "server_bug_injector", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "source_location": "L2", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py", "target": "test_bug_injector_test_missing_base_case", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "source_location": "L10", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py", "target": "test_bug_injector_test_off_by_one", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "source_location": "L17", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py", "target": "test_bug_injector_test_loop_boundary_shift", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "source_location": "L25", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py", "target": "test_bug_injector_test_wrong_builtin", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "source_location": "L32", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py", "target": "test_bug_injector_test_condition_negation", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "source_location": "L38", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py", "target": "test_bug_injector_test_safety_check_blocks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "source_location": "L44", "weight": 1.0}], "raw_calls": [{"caller_nid": "test_bug_injector_test_missing_base_case", "callee": "inject_bug", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "source_location": "L11"}, {"caller_nid": "test_bug_injector_test_off_by_one", "callee": "inject_bug", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "source_location": "L19"}, {"caller_nid": "test_bug_injector_test_loop_boundary_shift", "callee": "inject_bug", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "source_location": "L26"}, {"caller_nid": "test_bug_injector_test_wrong_builtin", "callee": "inject_bug", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "source_location": "L33"}, {"caller_nid": "test_bug_injector_test_condition_negation", "callee": "inject_bug", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "source_location": "L40"}, {"caller_nid": "test_bug_injector_test_safety_check_blocks", "callee": "is_safe_injection", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "source_location": "L48"}, {"caller_nid": "test_bug_injector_test_safety_check_blocks", "callee": "is_safe_injection", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "source_location": "L49"}]}
|
graphify-out/cache/d6d5ae1a9a21fc3ab376c0282323e399ef74b332e975871ff941a93dec674d27.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"nodes": [{"id": "c_users_astra_desktop_hackon_debugzero_server_bug_injector_py", "label": "bug_injector.py", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L1"}, {"id": "bug_injector_is_safe_injection", "label": "is_safe_injection()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L13"}, {"id": "bug_injector_buginjectorvisitor", "label": "BugInjectorVisitor", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L19"}, {"id": "bug_injector_buginjectorvisitor_init", "label": ".__init__()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L20"}, {"id": "bug_injector_buginjectorvisitor_visit_constant", "label": ".visit_Constant()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L25"}, {"id": "bug_injector_buginjectorvisitor_visit_compare", "label": ".visit_Compare()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L38"}, {"id": "bug_injector_buginjectorvisitor_visit_binop", "label": ".visit_BinOp()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L64"}, {"id": "bug_injector_buginjectorvisitor_visit_call", "label": ".visit_Call()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L84"}, {"id": "bug_injector_buginjectorvisitor_visit_if", "label": ".visit_If()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L108"}, {"id": "bug_injector_buginjectorvisitor_visit_slice", "label": ".visit_Slice()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L127"}, {"id": "bug_injector_buginjectorvisitor_visit_name", "label": ".visit_Name()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L142"}, {"id": "bug_injector_buginjectorvisitor_visit_assign", "label": ".visit_Assign()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L146"}, {"id": "bug_injector_inject_bug", "label": "inject_bug()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L159"}, {"id": "bug_injector_rationale_160", "label": "4 critical checks: - parse succeeds - mutation actually changed code", "file_type": "rationale", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L160"}], "edges": [{"source": "c_users_astra_desktop_hackon_debugzero_server_bug_injector_py", "target": "ast", "relation": "imports", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L1", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_bug_injector_py", "target": "random", "relation": "imports", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L2", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_bug_injector_py", "target": "copy", "relation": "imports", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L3", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_bug_injector_py", "target": "bug_injector_is_safe_injection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L13", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_bug_injector_py", "target": "bug_injector_buginjectorvisitor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L19", "weight": 1.0}, {"source": "bug_injector_buginjectorvisitor", "target": "bug_injector_buginjectorvisitor_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L20", "weight": 1.0}, {"source": "bug_injector_buginjectorvisitor", "target": "bug_injector_buginjectorvisitor_visit_constant", "relation": "method", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L25", "weight": 1.0}, {"source": "bug_injector_buginjectorvisitor", "target": "bug_injector_buginjectorvisitor_visit_compare", "relation": "method", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L38", "weight": 1.0}, {"source": "bug_injector_buginjectorvisitor", "target": "bug_injector_buginjectorvisitor_visit_binop", "relation": "method", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L64", "weight": 1.0}, {"source": "bug_injector_buginjectorvisitor", "target": "bug_injector_buginjectorvisitor_visit_call", "relation": "method", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L84", "weight": 1.0}, {"source": "bug_injector_buginjectorvisitor", "target": "bug_injector_buginjectorvisitor_visit_if", "relation": "method", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L108", "weight": 1.0}, {"source": "bug_injector_buginjectorvisitor", "target": "bug_injector_buginjectorvisitor_visit_slice", "relation": "method", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L127", "weight": 1.0}, {"source": "bug_injector_buginjectorvisitor", "target": "bug_injector_buginjectorvisitor_visit_name", "relation": "method", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L142", "weight": 1.0}, {"source": "bug_injector_buginjectorvisitor", "target": "bug_injector_buginjectorvisitor_visit_assign", "relation": "method", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L146", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_bug_injector_py", "target": "bug_injector_inject_bug", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L159", "weight": 1.0}, {"source": "bug_injector_inject_bug", "target": "bug_injector_buginjectorvisitor", "relation": "calls", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L172", "weight": 1.0}, {"source": "bug_injector_inject_bug", "target": "bug_injector_is_safe_injection", "relation": "calls", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L183", "weight": 1.0}, {"source": "bug_injector_rationale_160", "target": "bug_injector_inject_bug", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L160", "weight": 1.0}], "raw_calls": [{"caller_nid": "bug_injector_buginjectorvisitor_init", "callee": "super", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L21"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_constant", "callee": "generic_visit", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L26"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_constant", "callee": "isinstance", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L30"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_constant", "callee": "isinstance", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L30"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_constant", "callee": "choice", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L31"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_compare", "callee": "generic_visit", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L39"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_compare", "callee": "isinstance", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L44"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_compare", "callee": "GtE", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L45"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_compare", "callee": "isinstance", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L47"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_compare", "callee": "Gt", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L48"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_compare", "callee": "isinstance", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L50"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_compare", "callee": "LtE", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L51"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_compare", "callee": "isinstance", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L53"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_compare", "callee": "Lt", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L54"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_compare", "callee": "isinstance", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L56"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_compare", "callee": "NotEq", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L57"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_compare", "callee": "isinstance", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L59"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_compare", "callee": "Eq", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L60"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_binop", "callee": "generic_visit", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L65"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_binop", "callee": "isinstance", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L70"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_binop", "callee": "Sub", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L71"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_binop", "callee": "isinstance", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L73"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_binop", "callee": "Add", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L74"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_binop", "callee": "isinstance", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L76"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_binop", "callee": "FloorDiv", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L77"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_binop", "callee": "isinstance", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L79"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_binop", "callee": "Mult", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L80"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_call", "callee": "generic_visit", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L85"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_call", "callee": "isinstance", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L89"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_call", "callee": "len", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L97"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_call", "callee": "BinOp", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L99"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_call", "callee": "Add", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L99"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_call", "callee": "Constant", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L99"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_call", "callee": "len", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L101"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_call", "callee": "BinOp", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L103"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_call", "callee": "Sub", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L103"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_call", "callee": "Constant", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L103"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_if", "callee": "generic_visit", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L109"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_if", "callee": "UnaryOp", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L115"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_if", "callee": "Not", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L115"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_if", "callee": "enumerate", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L119"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_if", "callee": "isinstance", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L120"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_if", "callee": "Pass", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L121"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_slice", "callee": "generic_visit", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L128"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_slice", "callee": "BinOp", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L134"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_slice", "callee": "Add", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L134"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_slice", "callee": "Constant", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L134"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_slice", "callee": "BinOp", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L137"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_slice", "callee": "Sub", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L137"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_slice", "callee": "Constant", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L137"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_name", "callee": "generic_visit", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L143"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_assign", "callee": "generic_visit", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L148"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_assign", "callee": "getattr", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L152"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_assign", "callee": "isinstance", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L153"}, {"caller_nid": "bug_injector_buginjectorvisitor_visit_assign", "callee": "len", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L153"}, {"caller_nid": "bug_injector_inject_bug", "callee": "parse", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L168"}, {"caller_nid": "bug_injector_inject_bug", "callee": "visit", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L173"}, {"caller_nid": "bug_injector_inject_bug", "callee": "deepcopy", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L173"}, {"caller_nid": "bug_injector_inject_bug", "callee": "fix_missing_locations", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L174"}, {"caller_nid": "bug_injector_inject_bug", "callee": "unparse", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L176"}, {"caller_nid": "bug_injector_inject_bug", "callee": "strip", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L179"}, {"caller_nid": "bug_injector_inject_bug", "callee": "strip", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L179"}, {"caller_nid": "bug_injector_inject_bug", "callee": "parse", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "source_location": "L188"}]}
|
graphify-out/cache/eb2e059208921f657055e709a0f0bf0f0f435790fbb43c66ecb98c40d8d5af40.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"nodes": [{"id": "c_users_astra_desktop_hackon_debugzero_models_py", "label": "models.py", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "source_location": "L1"}, {"id": "models_debugzeroaction", "label": "DebugzeroAction", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "source_location": "L18"}, {"id": "action", "label": "Action", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "models_debugzeroobservation", "label": "DebugzeroObservation", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "source_location": "L25"}, {"id": "observation", "label": "Observation", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "models_debugzerostate", "label": "DebugzeroState", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "source_location": "L34"}, {"id": "state", "label": "State", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "models_rationale_19", "label": "Action for the DebugZero environment representing the Proposer or Solver inputs.", "file_type": "rationale", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "source_location": "L19"}, {"id": "models_rationale_26", "label": "Observation from the DebugZero environment following sandbox execution.", "file_type": "rationale", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "source_location": "L26"}, {"id": "models_rationale_35", "label": "State for the DebugZero environment, extending default state with seed context.", "file_type": "rationale", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "source_location": "L35"}], "edges": [{"source": "c_users_astra_desktop_hackon_debugzero_models_py", "target": "openenv_core_env_server_types", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "source_location": "L13", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_models_py", "target": "pydantic", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "source_location": "L14", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_models_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "source_location": "L15", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_models_py", "target": "models_debugzeroaction", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "source_location": "L18", "weight": 1.0}, {"source": "models_debugzeroaction", "target": "action", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "source_location": "L18", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_models_py", "target": "models_debugzeroobservation", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "source_location": "L25", "weight": 1.0}, {"source": "models_debugzeroobservation", "target": "observation", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "source_location": "L25", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_models_py", "target": "models_debugzerostate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "source_location": "L34", "weight": 1.0}, {"source": "models_debugzerostate", "target": "state", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "source_location": "L34", "weight": 1.0}, {"source": "models_rationale_19", "target": "models_debugzeroaction", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "source_location": "L19", "weight": 1.0}, {"source": "models_rationale_26", "target": "models_debugzeroobservation", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "source_location": "L26", "weight": 1.0}, {"source": "models_rationale_35", "target": "models_debugzerostate", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "source_location": "L35", "weight": 1.0}], "raw_calls": []}
|
graphify-out/cache/ede71c6c9d6a4345dfd051cb97f6c21f3113e4558c838f39aba660c5a5206a95.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"nodes": [{"id": "c_users_astra_desktop_hackon_debugzero_server_plausibility_py", "label": "plausibility.py", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\plausibility.py", "source_location": "L1"}, {"id": "plausibility_compute_ast_distance", "label": "compute_ast_distance()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\plausibility.py", "source_location": "L4"}, {"id": "plausibility_rationale_5", "label": "Computes the string similarity distance between the AST dumps of the original", "file_type": "rationale", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\plausibility.py", "source_location": "L5"}], "edges": [{"source": "c_users_astra_desktop_hackon_debugzero_server_plausibility_py", "target": "ast", "relation": "imports", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\plausibility.py", "source_location": "L1", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_plausibility_py", "target": "thefuzz", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\plausibility.py", "source_location": "L2", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_server_plausibility_py", "target": "plausibility_compute_ast_distance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\plausibility.py", "source_location": "L4", "weight": 1.0}, {"source": "plausibility_rationale_5", "target": "plausibility_compute_ast_distance", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\plausibility.py", "source_location": "L5", "weight": 1.0}], "raw_calls": [{"caller_nid": "plausibility_compute_ast_distance", "callee": "dump", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\plausibility.py", "source_location": "L13"}, {"caller_nid": "plausibility_compute_ast_distance", "callee": "parse", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\plausibility.py", "source_location": "L13"}, {"caller_nid": "plausibility_compute_ast_distance", "callee": "dump", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\plausibility.py", "source_location": "L14"}, {"caller_nid": "plausibility_compute_ast_distance", "callee": "parse", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\plausibility.py", "source_location": "L14"}, {"caller_nid": "plausibility_compute_ast_distance", "callee": "ratio", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\plausibility.py", "source_location": "L18"}, {"caller_nid": "plausibility_compute_ast_distance", "callee": "max", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\plausibility.py", "source_location": "L30"}]}
|
graphify-out/cache/f33eda5e3a4e90a27a5be751f771e90a9733c095bbc2093d20044746d2d98c4a.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"nodes": [{"id": "c_users_astra_desktop_hackon_debugzero_training_rewards_py", "label": "rewards.py", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "source_location": "L1"}, {"id": "rewards_get_solve_rate", "label": "get_solve_rate()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "source_location": "L7"}, {"id": "rewards_record_solve_result", "label": "record_solve_result()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "source_location": "L13"}, {"id": "rewards_compute_proposer_reward", "label": "compute_proposer_reward()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "source_location": "L18"}, {"id": "rewards_compute_solver_reward", "label": "compute_solver_reward()", "file_type": "code", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "source_location": "L37"}], "edges": [{"source": "c_users_astra_desktop_hackon_debugzero_training_rewards_py", "target": "collections", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "source_location": "L1", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_training_rewards_py", "target": "statistics", "relation": "imports", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "source_location": "L2", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_training_rewards_py", "target": "rewards_get_solve_rate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "source_location": "L7", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_training_rewards_py", "target": "rewards_record_solve_result", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "source_location": "L13", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_training_rewards_py", "target": "rewards_compute_proposer_reward", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "source_location": "L18", "weight": 1.0}, {"source": "c_users_astra_desktop_hackon_debugzero_training_rewards_py", "target": "rewards_compute_solver_reward", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "source_location": "L37", "weight": 1.0}, {"source": "rewards_compute_proposer_reward", "target": "rewards_get_solve_rate", "relation": "calls", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "source_location": "L30", "weight": 1.0}, {"source": "rewards_compute_solver_reward", "target": "rewards_record_solve_result", "relation": "calls", "confidence": "EXTRACTED", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "source_location": "L41", "weight": 1.0}], "raw_calls": [{"caller_nid": "rewards_get_solve_rate", "callee": "len", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "source_location": "L8"}, {"caller_nid": "rewards_get_solve_rate", "callee": "mean", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "source_location": "L11"}, {"caller_nid": "rewards_record_solve_result", "callee": "deque", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "source_location": "L15"}, {"caller_nid": "rewards_record_solve_result", "callee": "append", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "source_location": "L16"}, {"caller_nid": "rewards_compute_proposer_reward", "callee": "get", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "source_location": "L21"}, {"caller_nid": "rewards_compute_proposer_reward", "callee": "get", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "source_location": "L23"}, {"caller_nid": "rewards_compute_proposer_reward", "callee": "get", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "source_location": "L28"}, {"caller_nid": "rewards_compute_solver_reward", "callee": "get", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "source_location": "L39"}, {"caller_nid": "rewards_compute_solver_reward", "callee": "get", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "source_location": "L39"}]}
|
graphify-out/graph.html
ADDED
|
@@ -0,0 +1,257 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8">
|
| 5 |
+
<title>graphify - C:\Users\astra\Desktop\hackon\debugZero\graphify-out\graph.html</title>
|
| 6 |
+
<script src="https://unpkg.com/vis-network/standalone/umd/vis-network.min.js"></script>
|
| 7 |
+
<style>
|
| 8 |
+
* { box-sizing: border-box; margin: 0; padding: 0; }
|
| 9 |
+
body { background: #0f0f1a; color: #e0e0e0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; display: flex; height: 100vh; overflow: hidden; }
|
| 10 |
+
#graph { flex: 1; }
|
| 11 |
+
#sidebar { width: 280px; background: #1a1a2e; border-left: 1px solid #2a2a4e; display: flex; flex-direction: column; overflow: hidden; }
|
| 12 |
+
#search-wrap { padding: 12px; border-bottom: 1px solid #2a2a4e; }
|
| 13 |
+
#search { width: 100%; background: #0f0f1a; border: 1px solid #3a3a5e; color: #e0e0e0; padding: 7px 10px; border-radius: 6px; font-size: 13px; outline: none; }
|
| 14 |
+
#search:focus { border-color: #4E79A7; }
|
| 15 |
+
#search-results { max-height: 140px; overflow-y: auto; padding: 4px 12px; border-bottom: 1px solid #2a2a4e; display: none; }
|
| 16 |
+
.search-item { padding: 4px 6px; cursor: pointer; border-radius: 4px; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
| 17 |
+
.search-item:hover { background: #2a2a4e; }
|
| 18 |
+
#info-panel { padding: 14px; border-bottom: 1px solid #2a2a4e; min-height: 140px; }
|
| 19 |
+
#info-panel h3 { font-size: 13px; color: #aaa; margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.05em; }
|
| 20 |
+
#info-content { font-size: 13px; color: #ccc; line-height: 1.6; }
|
| 21 |
+
#info-content .field { margin-bottom: 5px; }
|
| 22 |
+
#info-content .field b { color: #e0e0e0; }
|
| 23 |
+
#info-content .empty { color: #555; font-style: italic; }
|
| 24 |
+
.neighbor-link { display: block; padding: 2px 6px; margin: 2px 0; border-radius: 3px; cursor: pointer; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border-left: 3px solid #333; }
|
| 25 |
+
.neighbor-link:hover { background: #2a2a4e; }
|
| 26 |
+
#neighbors-list { max-height: 160px; overflow-y: auto; margin-top: 4px; }
|
| 27 |
+
#legend-wrap { flex: 1; overflow-y: auto; padding: 12px; }
|
| 28 |
+
#legend-wrap h3 { font-size: 13px; color: #aaa; margin-bottom: 10px; text-transform: uppercase; letter-spacing: 0.05em; }
|
| 29 |
+
.legend-item { display: flex; align-items: center; gap: 8px; padding: 4px 0; cursor: pointer; border-radius: 4px; font-size: 12px; }
|
| 30 |
+
.legend-item:hover { background: #2a2a4e; padding-left: 4px; }
|
| 31 |
+
.legend-item.dimmed { opacity: 0.35; }
|
| 32 |
+
.legend-dot { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; }
|
| 33 |
+
.legend-label { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
| 34 |
+
.legend-count { color: #666; font-size: 11px; }
|
| 35 |
+
#stats { padding: 10px 14px; border-top: 1px solid #2a2a4e; font-size: 11px; color: #555; }
|
| 36 |
+
</style>
|
| 37 |
+
</head>
|
| 38 |
+
<body>
|
| 39 |
+
<div id="graph"></div>
|
| 40 |
+
<div id="sidebar">
|
| 41 |
+
<div id="search-wrap">
|
| 42 |
+
<input id="search" type="text" placeholder="Search nodes..." autocomplete="off">
|
| 43 |
+
<div id="search-results"></div>
|
| 44 |
+
</div>
|
| 45 |
+
<div id="info-panel">
|
| 46 |
+
<h3>Node Info</h3>
|
| 47 |
+
<div id="info-content"><span class="empty">Click a node to inspect it</span></div>
|
| 48 |
+
</div>
|
| 49 |
+
<div id="legend-wrap">
|
| 50 |
+
<h3>Communities</h3>
|
| 51 |
+
<div id="legend"></div>
|
| 52 |
+
</div>
|
| 53 |
+
<div id="stats">83 nodes · 132 edges · 11 communities</div>
|
| 54 |
+
</div>
|
| 55 |
+
<script>
|
| 56 |
+
const RAW_NODES = [{"id": "c_users_astra_desktop_hackon_debugzero_client_py", "label": "client.py", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 16.4, "font": {"size": 12, "color": "#ffffff"}, "title": "client.py", "community": 5, "community_name": "Community 5", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "file_type": "code", "degree": 3}, {"id": "client_debugzeroenv", "label": "DebugzeroEnv", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 27.1, "font": {"size": 12, "color": "#ffffff"}, "title": "DebugzeroEnv", "community": 1, "community_name": "Community 1", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "file_type": "code", "degree": 8}, {"id": "client_debugzeroenv_step_payload", "label": "._step_payload()", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "._step_payload()", "community": 1, "community_name": "Community 1", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "file_type": "code", "degree": 2}, {"id": "client_debugzeroenv_parse_result", "label": "._parse_result()", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 16.4, "font": {"size": 12, "color": "#ffffff"}, "title": "._parse_result()", "community": 7, "community_name": "Community 7", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "file_type": "code", "degree": 3}, {"id": "client_debugzeroenv_parse_state", "label": "._parse_state()", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 16.4, "font": {"size": 12, "color": "#ffffff"}, "title": "._parse_state()", "community": 1, "community_name": "Community 1", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "file_type": "code", "degree": 3}, {"id": "client_rationale_21", "label": "Client for the DebugZero Environment. This client maintains a persistent We", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 18.6, "font": {"size": 12, "color": "#ffffff"}, "title": "Client for the DebugZero Environment. This client maintains a persistent We", "community": 1, "community_name": "Community 1", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "file_type": "rationale", "degree": 4}, {"id": "client_rationale_48", "label": "Convert DebugzeroAction to JSON payload for step message. Args:", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 18.6, "font": {"size": 12, "color": "#ffffff"}, "title": "Convert DebugzeroAction to JSON payload for step message. Args:", "community": 1, "community_name": "Community 1", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "file_type": "rationale", "degree": 4}, {"id": "client_rationale_63", "label": "Parse server response into StepResult[DebugzeroObservation]. Args:", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 18.6, "font": {"size": 12, "color": "#ffffff"}, "title": "Parse server response into StepResult[DebugzeroObservation]. Args:", "community": 7, "community_name": "Community 7", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "file_type": "rationale", "degree": 4}, {"id": "client_rationale_91", "label": "Parse server response into State object. Args: payload: JSO", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 18.6, "font": {"size": 12, "color": "#ffffff"}, "title": "Parse server response into State object. Args: payload: JSO", "community": 1, "community_name": "Community 1", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py", "file_type": "rationale", "degree": 4}, {"id": "c_users_astra_desktop_hackon_debugzero_models_py", "label": "models.py", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 25.0, "font": {"size": 12, "color": "#ffffff"}, "title": "models.py", "community": 5, "community_name": "Community 5", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "file_type": "code", "degree": 7}, {"id": "models_debugzeroaction", "label": "DebugzeroAction", "color": {"background": "#BAB0AC", "border": "#BAB0AC", "highlight": {"background": "#ffffff", "border": "#BAB0AC"}}, "size": 35.7, "font": {"size": 12, "color": "#ffffff"}, "title": "DebugzeroAction", "community": 9, "community_name": "Community 9", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "file_type": "code", "degree": 12}, {"id": "action", "label": "Action", "color": {"background": "#BAB0AC", "border": "#BAB0AC", "highlight": {"background": "#ffffff", "border": "#BAB0AC"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": "Action", "community": 9, "community_name": "Community 9", "source_file": "", "file_type": "code", "degree": 1}, {"id": "models_debugzeroobservation", "label": "DebugzeroObservation", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 40.0, "font": {"size": 12, "color": "#ffffff"}, "title": "DebugzeroObservation", "community": 7, "community_name": "Community 7", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "file_type": "code", "degree": 14}, {"id": "observation", "label": "Observation", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": "Observation", "community": 7, "community_name": "Community 7", "source_file": "", "file_type": "code", "degree": 1}, {"id": "models_debugzerostate", "label": "DebugzeroState", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 37.9, "font": {"size": 12, "color": "#ffffff"}, "title": "DebugzeroState", "community": 1, "community_name": "Community 1", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "file_type": "code", "degree": 13}, {"id": "state", "label": "State", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": "State", "community": 1, "community_name": "Community 1", "source_file": "", "file_type": "code", "degree": 1}, {"id": "models_rationale_19", "label": "Action for the DebugZero environment representing the Proposer or Solver inputs.", "color": {"background": "#BAB0AC", "border": "#BAB0AC", "highlight": {"background": "#ffffff", "border": "#BAB0AC"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": "Action for the DebugZero environment representing the Proposer or Solver inputs.", "community": 9, "community_name": "Community 9", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "file_type": "rationale", "degree": 1}, {"id": "models_rationale_26", "label": "Observation from the DebugZero environment following sandbox execution.", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": "Observation from the DebugZero environment following sandbox execution.", "community": 7, "community_name": "Community 7", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "file_type": "rationale", "degree": 1}, {"id": "models_rationale_35", "label": "State for the DebugZero environment, extending default state with seed context.", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": "State for the DebugZero environment, extending default state with seed context.", "community": 1, "community_name": "Community 1", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py", "file_type": "rationale", "degree": 1}, {"id": "c_users_astra_desktop_hackon_debugzero_run_episode_py", "label": "run_episode.py", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": "run_episode.py", "community": 6, "community_name": "Community 6", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "file_type": "code", "degree": 1}, {"id": "run_episode_test_local_env", "label": "test_local_env()", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 20.7, "font": {"size": 12, "color": "#ffffff"}, "title": "test_local_env()", "community": 6, "community_name": "Community 6", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py", "file_type": "code", "degree": 5}, {"id": "c_users_astra_desktop_hackon_debugzero_init_py", "label": "__init__.py", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "__init__.py", "community": 5, "community_name": "Community 5", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\__init__.py", "file_type": "code", "degree": 2}, {"id": "c_users_astra_desktop_hackon_debugzero_eval_plausibility_eval_py", "label": "plausibility_eval.py", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": "plausibility_eval.py", "community": 8, "community_name": "Community 8", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\plausibility_eval.py", "file_type": "code", "degree": 1}, {"id": "plausibility_eval_evaluate_navidadkhah_plausibility", "label": "evaluate_navidadkhah_plausibility()", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 16.4, "font": {"size": 12, "color": "#ffffff"}, "title": "evaluate_navidadkhah_plausibility()", "community": 8, "community_name": "Community 8", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\plausibility_eval.py", "file_type": "code", "degree": 3}, {"id": "plausibility_eval_rationale_6", "label": "Offline evaluation of generated bugs against the navidadkhah 25k bug dataset.", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": "Offline evaluation of generated bugs against the navidadkhah 25k bug dataset.", "community": 8, "community_name": "Community 8", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\plausibility_eval.py", "file_type": "rationale", "degree": 1}, {"id": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py", "label": "test_bug_injector.py", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 22.9, "font": {"size": 12, "color": "#ffffff"}, "title": "test_bug_injector.py", "community": 0, "community_name": "Community 0", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "file_type": "code", "degree": 6}, {"id": "test_bug_injector_test_missing_base_case", "label": "test_missing_base_case()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "test_missing_base_case()", "community": 0, "community_name": "Community 0", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "file_type": "code", "degree": 2}, {"id": "test_bug_injector_test_off_by_one", "label": "test_off_by_one()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "test_off_by_one()", "community": 0, "community_name": "Community 0", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "file_type": "code", "degree": 2}, {"id": "test_bug_injector_test_loop_boundary_shift", "label": "test_loop_boundary_shift()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "test_loop_boundary_shift()", "community": 0, "community_name": "Community 0", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "file_type": "code", "degree": 2}, {"id": "test_bug_injector_test_wrong_builtin", "label": "test_wrong_builtin()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "test_wrong_builtin()", "community": 0, "community_name": "Community 0", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "file_type": "code", "degree": 2}, {"id": "test_bug_injector_test_condition_negation", "label": "test_condition_negation()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "test_condition_negation()", "community": 0, "community_name": "Community 0", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "file_type": "code", "degree": 2}, {"id": "test_bug_injector_test_safety_check_blocks", "label": "test_safety_check_blocks()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "test_safety_check_blocks()", "community": 0, "community_name": "Community 0", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py", "file_type": "code", "degree": 2}, {"id": "c_users_astra_desktop_hackon_debugzero_eval_test_executor_py", "label": "test_executor.py", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "test_executor.py", "community": 3, "community_name": "Community 3", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py", "file_type": "code", "degree": 2}, {"id": "test_executor_test_executor_is_safe", "label": "test_executor_is_safe()", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "test_executor_is_safe()", "community": 3, "community_name": "Community 3", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py", "file_type": "code", "degree": 2}, {"id": "test_executor_test_execute_code", "label": "test_execute_code()", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "test_execute_code()", "community": 3, "community_name": "Community 3", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py", "file_type": "code", "degree": 2}, {"id": "c_users_astra_desktop_hackon_debugzero_server_app_py", "label": "app.py", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 16.4, "font": {"size": 12, "color": "#ffffff"}, "title": "app.py", "community": 5, "community_name": "Community 5", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py", "file_type": "code", "degree": 3}, {"id": "app_main", "label": "main()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "main()", "community": 5, "community_name": "Community 5", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py", "file_type": "code", "degree": 2}, {"id": "app_rationale_61", "label": "Entry point for direct execution via uv run or python -m. This function ena", "color": {"background": "#BAB0AC", "border": "#BAB0AC", "highlight": {"background": "#ffffff", "border": "#BAB0AC"}}, "size": 18.6, "font": {"size": 12, "color": "#ffffff"}, "title": "Entry point for direct execution via uv run or python -m. This function ena", "community": 9, "community_name": "Community 9", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py", "file_type": "rationale", "degree": 4}, {"id": "c_users_astra_desktop_hackon_debugzero_server_bug_injector_py", "label": "bug_injector.py", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 18.6, "font": {"size": 12, "color": "#ffffff"}, "title": "bug_injector.py", "community": 0, "community_name": "Community 0", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "file_type": "code", "degree": 4}, {"id": "bug_injector_is_safe_injection", "label": "is_safe_injection()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 16.4, "font": {"size": 12, "color": "#ffffff"}, "title": "is_safe_injection()", "community": 0, "community_name": "Community 0", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "file_type": "code", "degree": 3}, {"id": "bug_injector_buginjectorvisitor", "label": "BugInjectorVisitor", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 33.6, "font": {"size": 12, "color": "#ffffff"}, "title": "BugInjectorVisitor", "community": 2, "community_name": "Community 2", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "file_type": "code", "degree": 11}, {"id": "bug_injector_buginjectorvisitor_init", "label": ".__init__()", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": ".__init__()", "community": 2, "community_name": "Community 2", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "file_type": "code", "degree": 1}, {"id": "bug_injector_buginjectorvisitor_visit_constant", "label": ".visit_Constant()", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": ".visit_Constant()", "community": 2, "community_name": "Community 2", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "file_type": "code", "degree": 1}, {"id": "bug_injector_buginjectorvisitor_visit_compare", "label": ".visit_Compare()", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": ".visit_Compare()", "community": 2, "community_name": "Community 2", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "file_type": "code", "degree": 1}, {"id": "bug_injector_buginjectorvisitor_visit_binop", "label": ".visit_BinOp()", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": ".visit_BinOp()", "community": 2, "community_name": "Community 2", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "file_type": "code", "degree": 1}, {"id": "bug_injector_buginjectorvisitor_visit_call", "label": ".visit_Call()", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": ".visit_Call()", "community": 2, "community_name": "Community 2", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "file_type": "code", "degree": 1}, {"id": "bug_injector_buginjectorvisitor_visit_if", "label": ".visit_If()", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": ".visit_If()", "community": 2, "community_name": "Community 2", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "file_type": "code", "degree": 1}, {"id": "bug_injector_buginjectorvisitor_visit_slice", "label": ".visit_Slice()", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": ".visit_Slice()", "community": 2, "community_name": "Community 2", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "file_type": "code", "degree": 1}, {"id": "bug_injector_buginjectorvisitor_visit_name", "label": ".visit_Name()", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": ".visit_Name()", "community": 2, "community_name": "Community 2", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "file_type": "code", "degree": 1}, {"id": "bug_injector_buginjectorvisitor_visit_assign", "label": ".visit_Assign()", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": ".visit_Assign()", "community": 2, "community_name": "Community 2", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "file_type": "code", "degree": 1}, {"id": "bug_injector_inject_bug", "label": "inject_bug()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 29.3, "font": {"size": 12, "color": "#ffffff"}, "title": "inject_bug()", "community": 0, "community_name": "Community 0", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "file_type": "code", "degree": 9}, {"id": "bug_injector_rationale_160", "label": "4 critical checks: - parse succeeds - mutation actually changed code", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": "4 critical checks: - parse succeeds - mutation actually changed code", "community": 0, "community_name": "Community 0", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py", "file_type": "rationale", "degree": 1}, {"id": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "label": "debugZero_environment.py", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 27.1, "font": {"size": 12, "color": "#ffffff"}, "title": "debugZero_environment.py", "community": 5, "community_name": "Community 5", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "file_type": "code", "degree": 8}, {"id": "debugzero_environment_debugzeroenvironment", "label": "DebugzeroEnvironment", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 35.7, "font": {"size": 12, "color": "#ffffff"}, "title": "DebugzeroEnvironment", "community": 6, "community_name": "Community 6", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "file_type": "code", "degree": 12}, {"id": "environment", "label": "Environment", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": "Environment", "community": 6, "community_name": "Community 6", "source_file": "", "file_type": "code", "degree": 1}, {"id": "debugzero_environment_debugzeroenvironment_init", "label": ".__init__()", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": ".__init__()", "community": 1, "community_name": "Community 1", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "file_type": "code", "degree": 2}, {"id": "debugzero_environment_debugzeroenvironment_reset", "label": ".reset()", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 18.6, "font": {"size": 12, "color": "#ffffff"}, "title": ".reset()", "community": 6, "community_name": "Community 6", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "file_type": "code", "degree": 4}, {"id": "debugzero_environment_debugzeroenvironment_step", "label": ".step()", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 18.6, "font": {"size": 12, "color": "#ffffff"}, "title": ".step()", "community": 6, "community_name": "Community 6", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "file_type": "code", "degree": 4}, {"id": "debugzero_environment_state", "label": "state()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": "state()", "community": 5, "community_name": "Community 5", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "file_type": "code", "degree": 1}, {"id": "debugzero_environment_rationale_39", "label": "Dual-role DebugZero Environment wrapping a Python sandbox execution for Prop", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 20.7, "font": {"size": 12, "color": "#ffffff"}, "title": "Dual-role DebugZero Environment wrapping a Python sandbox execution for Prop", "community": 7, "community_name": "Community 7", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py", "file_type": "rationale", "degree": 5}, {"id": "c_users_astra_desktop_hackon_debugzero_server_executor_py", "label": "executor.py", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 18.6, "font": {"size": 12, "color": "#ffffff"}, "title": "executor.py", "community": 3, "community_name": "Community 3", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "file_type": "code", "degree": 4}, {"id": "executor_is_safe", "label": "is_safe()", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 18.6, "font": {"size": 12, "color": "#ffffff"}, "title": "is_safe()", "community": 3, "community_name": "Community 3", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "file_type": "code", "degree": 4}, {"id": "executor_executionresult", "label": "ExecutionResult", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 20.7, "font": {"size": 12, "color": "#ffffff"}, "title": "ExecutionResult", "community": 3, "community_name": "Community 3", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "file_type": "code", "degree": 5}, {"id": "executor_executionresult_init", "label": ".__init__()", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": ".__init__()", "community": 3, "community_name": "Community 3", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "file_type": "code", "degree": 1}, {"id": "executor_execute_code", "label": "execute_code()", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 22.9, "font": {"size": 12, "color": "#ffffff"}, "title": "execute_code()", "community": 3, "community_name": "Community 3", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "file_type": "code", "degree": 6}, {"id": "executor_rationale_10", "label": "Check if the code contains any blocked imports strings. Also performs a qu", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": "Check if the code contains any blocked imports strings. Also performs a qu", "community": 3, "community_name": "Community 3", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "file_type": "rationale", "degree": 1}, {"id": "executor_rationale_52", "label": "Executes the provided python code alongside its tests in an isolated subprocess.", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": "Executes the provided python code alongside its tests in an isolated subprocess.", "community": 3, "community_name": "Community 3", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py", "file_type": "rationale", "degree": 1}, {"id": "c_users_astra_desktop_hackon_debugzero_server_plausibility_py", "label": "plausibility.py", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "plausibility.py", "community": 8, "community_name": "Community 8", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\plausibility.py", "file_type": "code", "degree": 2}, {"id": "plausibility_compute_ast_distance", "label": "compute_ast_distance()", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 16.4, "font": {"size": 12, "color": "#ffffff"}, "title": "compute_ast_distance()", "community": 8, "community_name": "Community 8", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\plausibility.py", "file_type": "code", "degree": 3}, {"id": "plausibility_rationale_5", "label": "Computes the string similarity distance between the AST dumps of the original", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": "Computes the string similarity distance between the AST dumps of the original", "community": 8, "community_name": "Community 8", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\plausibility.py", "file_type": "rationale", "degree": 1}, {"id": "c_users_astra_desktop_hackon_debugzero_server_init_py", "label": "__init__.py", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": "__init__.py", "community": 5, "community_name": "Community 5", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\__init__.py", "file_type": "code", "degree": 1}, {"id": "c_users_astra_desktop_hackon_debugzero_training_dual_role_sampler_py", "label": "dual_role_sampler.py", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "dual_role_sampler.py", "community": 10, "community_name": "Community 10", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\dual_role_sampler.py", "file_type": "code", "degree": 2}, {"id": "dual_role_sampler_sample_proposer_prompt", "label": "sample_proposer_prompt()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": "sample_proposer_prompt()", "community": 10, "community_name": "Community 10", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\dual_role_sampler.py", "file_type": "code", "degree": 1}, {"id": "dual_role_sampler_sample_solver_prompt", "label": "sample_solver_prompt()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": "sample_solver_prompt()", "community": 10, "community_name": "Community 10", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\dual_role_sampler.py", "file_type": "code", "degree": 1}, {"id": "c_users_astra_desktop_hackon_debugzero_training_grpo_train_py", "label": "grpo_train.py", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 16.4, "font": {"size": 12, "color": "#ffffff"}, "title": "grpo_train.py", "community": 4, "community_name": "Community 4", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "file_type": "code", "degree": 3}, {"id": "grpo_train_reward_fn", "label": "reward_fn()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 16.4, "font": {"size": 12, "color": "#ffffff"}, "title": "reward_fn()", "community": 4, "community_name": "Community 4", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "file_type": "code", "degree": 3}, {"id": "grpo_train_create_dataset", "label": "create_dataset()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "create_dataset()", "community": 4, "community_name": "Community 4", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "file_type": "code", "degree": 2}, {"id": "grpo_train_main", "label": "main()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "main()", "community": 4, "community_name": "Community 4", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py", "file_type": "code", "degree": 2}, {"id": "c_users_astra_desktop_hackon_debugzero_training_rewards_py", "label": "rewards.py", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 18.6, "font": {"size": 12, "color": "#ffffff"}, "title": "rewards.py", "community": 4, "community_name": "Community 4", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "file_type": "code", "degree": 4}, {"id": "rewards_get_solve_rate", "label": "get_solve_rate()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "get_solve_rate()", "community": 4, "community_name": "Community 4", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "file_type": "code", "degree": 2}, {"id": "rewards_record_solve_result", "label": "record_solve_result()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "record_solve_result()", "community": 4, "community_name": "Community 4", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "file_type": "code", "degree": 2}, {"id": "rewards_compute_proposer_reward", "label": "compute_proposer_reward()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 16.4, "font": {"size": 12, "color": "#ffffff"}, "title": "compute_proposer_reward()", "community": 4, "community_name": "Community 4", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "file_type": "code", "degree": 3}, {"id": "rewards_compute_solver_reward", "label": "compute_solver_reward()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 16.4, "font": {"size": 12, "color": "#ffffff"}, "title": "compute_solver_reward()", "community": 4, "community_name": "Community 4", "source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py", "file_type": "code", "degree": 3}];
|
| 57 |
+
const RAW_EDGES = [{"from": "c_users_astra_desktop_hackon_debugzero_client_py", "to": "c_users_astra_desktop_hackon_debugzero_models_py", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_client_py", "to": "client_debugzeroenv", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_client_py", "to": "c_users_astra_desktop_hackon_debugzero_init_py", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "client_debugzeroenv", "to": "client_debugzeroenv_step_payload", "label": "method", "title": "method [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "client_debugzeroenv", "to": "client_debugzeroenv_parse_result", "label": "method", "title": "method [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "client_debugzeroenv", "to": "client_debugzeroenv_parse_state", "label": "method", "title": "method [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "client_debugzeroenv", "to": "client_rationale_21", "label": "rationale_for", "title": "rationale_for [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "client_debugzeroenv", "to": "models_debugzeroaction", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "client_debugzeroenv", "to": "models_debugzeroobservation", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "client_debugzeroenv", "to": "models_debugzerostate", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "client_debugzeroenv_step_payload", "to": "client_rationale_48", "label": "rationale_for", "title": "rationale_for [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "client_debugzeroenv_parse_result", "to": "client_rationale_63", "label": "rationale_for", "title": "rationale_for [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "client_debugzeroenv_parse_result", "to": "models_debugzeroobservation", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "client_debugzeroenv_parse_state", "to": "client_rationale_91", "label": "rationale_for", "title": "rationale_for [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "client_debugzeroenv_parse_state", "to": "models_debugzerostate", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "client_rationale_21", "to": "models_debugzeroaction", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "client_rationale_21", "to": "models_debugzeroobservation", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "client_rationale_21", "to": "models_debugzerostate", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "client_rationale_48", "to": "models_debugzeroaction", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "client_rationale_48", "to": "models_debugzeroobservation", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "client_rationale_48", "to": "models_debugzerostate", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "client_rationale_63", "to": "models_debugzeroaction", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "client_rationale_63", "to": "models_debugzeroobservation", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "client_rationale_63", "to": "models_debugzerostate", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "client_rationale_91", "to": "models_debugzeroaction", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "client_rationale_91", "to": "models_debugzeroobservation", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "client_rationale_91", "to": "models_debugzerostate", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "c_users_astra_desktop_hackon_debugzero_models_py", "to": "models_debugzeroaction", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_models_py", "to": "models_debugzeroobservation", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_models_py", "to": "models_debugzerostate", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_models_py", "to": "c_users_astra_desktop_hackon_debugzero_init_py", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_models_py", "to": "c_users_astra_desktop_hackon_debugzero_server_app_py", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_models_py", "to": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "models_debugzeroaction", "to": "action", "label": "inherits", "title": "inherits [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "models_debugzeroaction", "to": "models_rationale_19", "label": "rationale_for", "title": "rationale_for [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "models_debugzeroaction", "to": "app_rationale_61", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "models_debugzeroaction", "to": "debugzero_environment_debugzeroenvironment", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "models_debugzeroaction", "to": "debugzero_environment_rationale_39", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "models_debugzeroaction", "to": "run_episode_test_local_env", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "models_debugzeroobservation", "to": "observation", "label": "inherits", "title": "inherits [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "models_debugzeroobservation", "to": "models_rationale_26", "label": "rationale_for", "title": "rationale_for [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "models_debugzeroobservation", "to": "app_rationale_61", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "models_debugzeroobservation", "to": "debugzero_environment_debugzeroenvironment", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "models_debugzeroobservation", "to": "debugzero_environment_rationale_39", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "models_debugzeroobservation", "to": "debugzero_environment_debugzeroenvironment_reset", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "models_debugzeroobservation", "to": "debugzero_environment_debugzeroenvironment_step", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "models_debugzerostate", "to": "state", "label": "inherits", "title": "inherits [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "models_debugzerostate", "to": "models_rationale_35", "label": "rationale_for", "title": "rationale_for [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "models_debugzerostate", "to": "debugzero_environment_debugzeroenvironment", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "models_debugzerostate", "to": "debugzero_environment_rationale_39", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "models_debugzerostate", "to": "debugzero_environment_debugzeroenvironment_init", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "models_debugzerostate", "to": "debugzero_environment_debugzeroenvironment_reset", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "c_users_astra_desktop_hackon_debugzero_run_episode_py", "to": "run_episode_test_local_env", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "run_episode_test_local_env", "to": "debugzero_environment_debugzeroenvironment", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "run_episode_test_local_env", "to": "debugzero_environment_debugzeroenvironment_reset", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "run_episode_test_local_env", "to": "debugzero_environment_debugzeroenvironment_step", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "c_users_astra_desktop_hackon_debugzero_eval_plausibility_eval_py", "to": "plausibility_eval_evaluate_navidadkhah_plausibility", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "plausibility_eval_evaluate_navidadkhah_plausibility", "to": "plausibility_eval_rationale_6", "label": "rationale_for", "title": "rationale_for [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "plausibility_eval_evaluate_navidadkhah_plausibility", "to": "plausibility_compute_ast_distance", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py", "to": "test_bug_injector_test_missing_base_case", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py", "to": "test_bug_injector_test_off_by_one", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py", "to": "test_bug_injector_test_loop_boundary_shift", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py", "to": "test_bug_injector_test_wrong_builtin", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py", "to": "test_bug_injector_test_condition_negation", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py", "to": "test_bug_injector_test_safety_check_blocks", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "test_bug_injector_test_missing_base_case", "to": "bug_injector_inject_bug", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "test_bug_injector_test_off_by_one", "to": "bug_injector_inject_bug", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "test_bug_injector_test_loop_boundary_shift", "to": "bug_injector_inject_bug", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "test_bug_injector_test_wrong_builtin", "to": "bug_injector_inject_bug", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "test_bug_injector_test_condition_negation", "to": "bug_injector_inject_bug", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "test_bug_injector_test_safety_check_blocks", "to": "bug_injector_is_safe_injection", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "c_users_astra_desktop_hackon_debugzero_eval_test_executor_py", "to": "test_executor_test_executor_is_safe", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_eval_test_executor_py", "to": "test_executor_test_execute_code", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "test_executor_test_executor_is_safe", "to": "executor_is_safe", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "test_executor_test_execute_code", "to": "executor_execute_code", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "c_users_astra_desktop_hackon_debugzero_server_app_py", "to": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_server_app_py", "to": "app_main", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_main", "to": "app_rationale_61", "label": "rationale_for", "title": "rationale_for [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_rationale_61", "to": "debugzero_environment_debugzeroenvironment", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "c_users_astra_desktop_hackon_debugzero_server_bug_injector_py", "to": "bug_injector_is_safe_injection", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_server_bug_injector_py", "to": "bug_injector_buginjectorvisitor", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_server_bug_injector_py", "to": "bug_injector_inject_bug", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_server_bug_injector_py", "to": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "bug_injector_is_safe_injection", "to": "bug_injector_inject_bug", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "bug_injector_buginjectorvisitor", "to": "bug_injector_buginjectorvisitor_init", "label": "method", "title": "method [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "bug_injector_buginjectorvisitor", "to": "bug_injector_buginjectorvisitor_visit_constant", "label": "method", "title": "method [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "bug_injector_buginjectorvisitor", "to": "bug_injector_buginjectorvisitor_visit_compare", "label": "method", "title": "method [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "bug_injector_buginjectorvisitor", "to": "bug_injector_buginjectorvisitor_visit_binop", "label": "method", "title": "method [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "bug_injector_buginjectorvisitor", "to": "bug_injector_buginjectorvisitor_visit_call", "label": "method", "title": "method [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "bug_injector_buginjectorvisitor", "to": "bug_injector_buginjectorvisitor_visit_if", "label": "method", "title": "method [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "bug_injector_buginjectorvisitor", "to": "bug_injector_buginjectorvisitor_visit_slice", "label": "method", "title": "method [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "bug_injector_buginjectorvisitor", "to": "bug_injector_buginjectorvisitor_visit_name", "label": "method", "title": "method [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "bug_injector_buginjectorvisitor", "to": "bug_injector_buginjectorvisitor_visit_assign", "label": "method", "title": "method [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "bug_injector_buginjectorvisitor", "to": "bug_injector_inject_bug", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "bug_injector_inject_bug", "to": "bug_injector_rationale_160", "label": "rationale_for", "title": "rationale_for [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "to": "c_users_astra_desktop_hackon_debugzero_server_executor_py", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "to": "c_users_astra_desktop_hackon_debugzero_server_plausibility_py", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "to": "debugzero_environment_debugzeroenvironment", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "to": "debugzero_environment_state", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py", "to": "c_users_astra_desktop_hackon_debugzero_server_init_py", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "debugzero_environment_debugzeroenvironment", "to": "environment", "label": "inherits", "title": "inherits [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "debugzero_environment_debugzeroenvironment", "to": "debugzero_environment_debugzeroenvironment_init", "label": "method", "title": "method [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "debugzero_environment_debugzeroenvironment", "to": "debugzero_environment_debugzeroenvironment_reset", "label": "method", "title": "method [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "debugzero_environment_debugzeroenvironment", "to": "debugzero_environment_debugzeroenvironment_step", "label": "method", "title": "method [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "debugzero_environment_debugzeroenvironment", "to": "debugzero_environment_rationale_39", "label": "rationale_for", "title": "rationale_for [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "debugzero_environment_debugzeroenvironment", "to": "executor_executionresult", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "debugzero_environment_debugzeroenvironment_step", "to": "executor_execute_code", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "debugzero_environment_rationale_39", "to": "executor_executionresult", "label": "uses", "title": "uses [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "c_users_astra_desktop_hackon_debugzero_server_executor_py", "to": "executor_is_safe", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_server_executor_py", "to": "executor_executionresult", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_server_executor_py", "to": "executor_execute_code", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "executor_is_safe", "to": "executor_execute_code", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "executor_is_safe", "to": "executor_rationale_10", "label": "rationale_for", "title": "rationale_for [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "executor_executionresult", "to": "executor_executionresult_init", "label": "method", "title": "method [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "executor_executionresult", "to": "executor_execute_code", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "executor_execute_code", "to": "executor_rationale_52", "label": "rationale_for", "title": "rationale_for [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_server_plausibility_py", "to": "plausibility_compute_ast_distance", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "plausibility_compute_ast_distance", "to": "plausibility_rationale_5", "label": "rationale_for", "title": "rationale_for [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_training_dual_role_sampler_py", "to": "dual_role_sampler_sample_proposer_prompt", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_training_dual_role_sampler_py", "to": "dual_role_sampler_sample_solver_prompt", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_training_grpo_train_py", "to": "grpo_train_reward_fn", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_training_grpo_train_py", "to": "grpo_train_create_dataset", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_training_grpo_train_py", "to": "grpo_train_main", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "grpo_train_reward_fn", "to": "rewards_compute_proposer_reward", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "grpo_train_reward_fn", "to": "rewards_compute_solver_reward", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "grpo_train_create_dataset", "to": "grpo_train_main", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_training_rewards_py", "to": "rewards_get_solve_rate", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_training_rewards_py", "to": "rewards_record_solve_result", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_training_rewards_py", "to": "rewards_compute_proposer_reward", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "c_users_astra_desktop_hackon_debugzero_training_rewards_py", "to": "rewards_compute_solver_reward", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "rewards_get_solve_rate", "to": "rewards_compute_proposer_reward", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "rewards_record_solve_result", "to": "rewards_compute_solver_reward", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}];
|
| 58 |
+
const LEGEND = [{"cid": 0, "color": "#4E79A7", "label": "Community 0", "count": 11}, {"cid": 1, "color": "#F28E2B", "label": "Community 1", "count": 10}, {"cid": 2, "color": "#E15759", "label": "Community 2", "count": 10}, {"cid": 3, "color": "#76B7B2", "label": "Community 3", "count": 10}, {"cid": 4, "color": "#59A14F", "label": "Community 4", "count": 9}, {"cid": 5, "color": "#EDC948", "label": "Community 5", "count": 8}, {"cid": 6, "color": "#B07AA1", "label": "Community 6", "count": 6}, {"cid": 7, "color": "#FF9DA7", "label": "Community 7", "count": 6}, {"cid": 8, "color": "#9C755F", "label": "Community 8", "count": 6}, {"cid": 9, "color": "#BAB0AC", "label": "Community 9", "count": 4}, {"cid": 10, "color": "#4E79A7", "label": "Community 10", "count": 3}];
|
| 59 |
+
|
| 60 |
+
// HTML-escape helper — prevents XSS when injecting graph data into innerHTML
|
| 61 |
+
function esc(s) {
|
| 62 |
+
return String(s).replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"').replace(/'/g,''');
|
| 63 |
+
}
|
| 64 |
+
|
| 65 |
+
// Build vis datasets
|
| 66 |
+
const nodesDS = new vis.DataSet(RAW_NODES.map(n => ({
|
| 67 |
+
id: n.id, label: n.label, color: n.color, size: n.size,
|
| 68 |
+
font: n.font, title: n.title,
|
| 69 |
+
_community: n.community, _community_name: n.community_name,
|
| 70 |
+
_source_file: n.source_file, _file_type: n.file_type, _degree: n.degree,
|
| 71 |
+
})));
|
| 72 |
+
|
| 73 |
+
const edgesDS = new vis.DataSet(RAW_EDGES.map((e, i) => ({
|
| 74 |
+
id: i, from: e.from, to: e.to,
|
| 75 |
+
label: '',
|
| 76 |
+
title: e.title,
|
| 77 |
+
dashes: e.dashes,
|
| 78 |
+
width: e.width,
|
| 79 |
+
color: e.color,
|
| 80 |
+
arrows: { to: { enabled: true, scaleFactor: 0.5 } },
|
| 81 |
+
})));
|
| 82 |
+
|
| 83 |
+
const container = document.getElementById('graph');
|
| 84 |
+
const network = new vis.Network(container, { nodes: nodesDS, edges: edgesDS }, {
|
| 85 |
+
physics: {
|
| 86 |
+
enabled: true,
|
| 87 |
+
solver: 'forceAtlas2Based',
|
| 88 |
+
forceAtlas2Based: {
|
| 89 |
+
gravitationalConstant: -60,
|
| 90 |
+
centralGravity: 0.005,
|
| 91 |
+
springLength: 120,
|
| 92 |
+
springConstant: 0.08,
|
| 93 |
+
damping: 0.4,
|
| 94 |
+
avoidOverlap: 0.8,
|
| 95 |
+
},
|
| 96 |
+
stabilization: { iterations: 200, fit: true },
|
| 97 |
+
},
|
| 98 |
+
interaction: {
|
| 99 |
+
hover: true,
|
| 100 |
+
tooltipDelay: 100,
|
| 101 |
+
hideEdgesOnDrag: true,
|
| 102 |
+
navigationButtons: false,
|
| 103 |
+
keyboard: false,
|
| 104 |
+
},
|
| 105 |
+
nodes: { shape: 'dot', borderWidth: 1.5 },
|
| 106 |
+
edges: { smooth: { type: 'continuous', roundness: 0.2 }, selectionWidth: 3 },
|
| 107 |
+
});
|
| 108 |
+
|
| 109 |
+
network.once('stabilizationIterationsDone', () => {
|
| 110 |
+
network.setOptions({ physics: { enabled: false } });
|
| 111 |
+
});
|
| 112 |
+
|
| 113 |
+
function showInfo(nodeId) {
|
| 114 |
+
const n = nodesDS.get(nodeId);
|
| 115 |
+
if (!n) return;
|
| 116 |
+
const neighborIds = network.getConnectedNodes(nodeId);
|
| 117 |
+
const neighborItems = neighborIds.map(nid => {
|
| 118 |
+
const nb = nodesDS.get(nid);
|
| 119 |
+
const color = nb ? nb.color.background : '#555';
|
| 120 |
+
return `<span class="neighbor-link" style="border-left-color:${esc(color)}" onclick="focusNode(${JSON.stringify(nid)})">${esc(nb ? nb.label : nid)}</span>`;
|
| 121 |
+
}).join('');
|
| 122 |
+
document.getElementById('info-content').innerHTML = `
|
| 123 |
+
<div class="field"><b>${esc(n.label)}</b></div>
|
| 124 |
+
<div class="field">Type: ${esc(n._file_type || 'unknown')}</div>
|
| 125 |
+
<div class="field">Community: ${esc(n._community_name)}</div>
|
| 126 |
+
<div class="field">Source: ${esc(n._source_file || '-')}</div>
|
| 127 |
+
<div class="field">Degree: ${n._degree}</div>
|
| 128 |
+
${neighborIds.length ? `<div class="field" style="margin-top:8px;color:#aaa;font-size:11px">Neighbors (${neighborIds.length})</div><div id="neighbors-list">${neighborItems}</div>` : ''}
|
| 129 |
+
`;
|
| 130 |
+
}
|
| 131 |
+
|
| 132 |
+
function focusNode(nodeId) {
|
| 133 |
+
network.focus(nodeId, { scale: 1.4, animation: true });
|
| 134 |
+
network.selectNodes([nodeId]);
|
| 135 |
+
showInfo(nodeId);
|
| 136 |
+
}
|
| 137 |
+
|
| 138 |
+
// Track hovered node — hover detection is more reliable than click params
|
| 139 |
+
let hoveredNodeId = null;
|
| 140 |
+
network.on('hoverNode', params => {
|
| 141 |
+
hoveredNodeId = params.node;
|
| 142 |
+
container.style.cursor = 'pointer';
|
| 143 |
+
});
|
| 144 |
+
network.on('blurNode', () => {
|
| 145 |
+
hoveredNodeId = null;
|
| 146 |
+
container.style.cursor = 'default';
|
| 147 |
+
});
|
| 148 |
+
container.addEventListener('click', () => {
|
| 149 |
+
if (hoveredNodeId !== null) {
|
| 150 |
+
showInfo(hoveredNodeId);
|
| 151 |
+
network.selectNodes([hoveredNodeId]);
|
| 152 |
+
}
|
| 153 |
+
});
|
| 154 |
+
network.on('click', params => {
|
| 155 |
+
if (params.nodes.length > 0) {
|
| 156 |
+
showInfo(params.nodes[0]);
|
| 157 |
+
} else if (hoveredNodeId === null) {
|
| 158 |
+
document.getElementById('info-content').innerHTML = '<span class="empty">Click a node to inspect it</span>';
|
| 159 |
+
}
|
| 160 |
+
});
|
| 161 |
+
|
| 162 |
+
const searchInput = document.getElementById('search');
|
| 163 |
+
const searchResults = document.getElementById('search-results');
|
| 164 |
+
searchInput.addEventListener('input', () => {
|
| 165 |
+
const q = searchInput.value.toLowerCase().trim();
|
| 166 |
+
searchResults.innerHTML = '';
|
| 167 |
+
if (!q) { searchResults.style.display = 'none'; return; }
|
| 168 |
+
const matches = RAW_NODES.filter(n => n.label.toLowerCase().includes(q)).slice(0, 20);
|
| 169 |
+
if (!matches.length) { searchResults.style.display = 'none'; return; }
|
| 170 |
+
searchResults.style.display = 'block';
|
| 171 |
+
matches.forEach(n => {
|
| 172 |
+
const el = document.createElement('div');
|
| 173 |
+
el.className = 'search-item';
|
| 174 |
+
el.textContent = n.label;
|
| 175 |
+
el.style.borderLeft = `3px solid ${n.color.background}`;
|
| 176 |
+
el.style.paddingLeft = '8px';
|
| 177 |
+
el.onclick = () => {
|
| 178 |
+
network.focus(n.id, { scale: 1.5, animation: true });
|
| 179 |
+
network.selectNodes([n.id]);
|
| 180 |
+
showInfo(n.id);
|
| 181 |
+
searchResults.style.display = 'none';
|
| 182 |
+
searchInput.value = '';
|
| 183 |
+
};
|
| 184 |
+
searchResults.appendChild(el);
|
| 185 |
+
});
|
| 186 |
+
});
|
| 187 |
+
document.addEventListener('click', e => {
|
| 188 |
+
if (!searchResults.contains(e.target) && e.target !== searchInput)
|
| 189 |
+
searchResults.style.display = 'none';
|
| 190 |
+
});
|
| 191 |
+
|
| 192 |
+
const hiddenCommunities = new Set();
|
| 193 |
+
const legendEl = document.getElementById('legend');
|
| 194 |
+
LEGEND.forEach(c => {
|
| 195 |
+
const item = document.createElement('div');
|
| 196 |
+
item.className = 'legend-item';
|
| 197 |
+
item.innerHTML = `<div class="legend-dot" style="background:${c.color}"></div>
|
| 198 |
+
<span class="legend-label">${c.label}</span>
|
| 199 |
+
<span class="legend-count">${c.count}</span>`;
|
| 200 |
+
item.onclick = () => {
|
| 201 |
+
if (hiddenCommunities.has(c.cid)) {
|
| 202 |
+
hiddenCommunities.delete(c.cid);
|
| 203 |
+
item.classList.remove('dimmed');
|
| 204 |
+
} else {
|
| 205 |
+
hiddenCommunities.add(c.cid);
|
| 206 |
+
item.classList.add('dimmed');
|
| 207 |
+
}
|
| 208 |
+
const updates = RAW_NODES
|
| 209 |
+
.filter(n => n.community === c.cid)
|
| 210 |
+
.map(n => ({ id: n.id, hidden: hiddenCommunities.has(c.cid) }));
|
| 211 |
+
nodesDS.update(updates);
|
| 212 |
+
};
|
| 213 |
+
legendEl.appendChild(item);
|
| 214 |
+
});
|
| 215 |
+
</script>
|
| 216 |
+
<script>
|
| 217 |
+
// Render hyperedges as shaded regions
|
| 218 |
+
const hyperedges = [];
|
| 219 |
+
// afterDrawing passes ctx already transformed to network coordinate space.
|
| 220 |
+
// Draw node positions raw — no manual pan/zoom/DPR math needed.
|
| 221 |
+
network.on('afterDrawing', function(ctx) {
|
| 222 |
+
hyperedges.forEach(h => {
|
| 223 |
+
const positions = h.nodes
|
| 224 |
+
.map(nid => network.getPositions([nid])[nid])
|
| 225 |
+
.filter(p => p !== undefined);
|
| 226 |
+
if (positions.length < 2) return;
|
| 227 |
+
ctx.save();
|
| 228 |
+
ctx.globalAlpha = 0.12;
|
| 229 |
+
ctx.fillStyle = '#6366f1';
|
| 230 |
+
ctx.strokeStyle = '#6366f1';
|
| 231 |
+
ctx.lineWidth = 2;
|
| 232 |
+
ctx.beginPath();
|
| 233 |
+
// Centroid and expanded hull in network coordinates
|
| 234 |
+
const cx = positions.reduce((s, p) => s + p.x, 0) / positions.length;
|
| 235 |
+
const cy = positions.reduce((s, p) => s + p.y, 0) / positions.length;
|
| 236 |
+
const expanded = positions.map(p => ({
|
| 237 |
+
x: cx + (p.x - cx) * 1.15,
|
| 238 |
+
y: cy + (p.y - cy) * 1.15
|
| 239 |
+
}));
|
| 240 |
+
ctx.moveTo(expanded[0].x, expanded[0].y);
|
| 241 |
+
expanded.slice(1).forEach(p => ctx.lineTo(p.x, p.y));
|
| 242 |
+
ctx.closePath();
|
| 243 |
+
ctx.fill();
|
| 244 |
+
ctx.globalAlpha = 0.4;
|
| 245 |
+
ctx.stroke();
|
| 246 |
+
// Label
|
| 247 |
+
ctx.globalAlpha = 0.8;
|
| 248 |
+
ctx.fillStyle = '#4f46e5';
|
| 249 |
+
ctx.font = 'bold 11px sans-serif';
|
| 250 |
+
ctx.textAlign = 'center';
|
| 251 |
+
ctx.fillText(h.label, cx, cy - 5);
|
| 252 |
+
ctx.restore();
|
| 253 |
+
});
|
| 254 |
+
});
|
| 255 |
+
</script>
|
| 256 |
+
</body>
|
| 257 |
+
</html>
|
graphify-out/graph.json
ADDED
|
@@ -0,0 +1,2341 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"directed": false,
|
| 3 |
+
"multigraph": false,
|
| 4 |
+
"graph": {},
|
| 5 |
+
"nodes": [
|
| 6 |
+
{
|
| 7 |
+
"label": "client.py",
|
| 8 |
+
"file_type": "code",
|
| 9 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 10 |
+
"source_location": "L1",
|
| 11 |
+
"id": "c_users_astra_desktop_hackon_debugzero_client_py",
|
| 12 |
+
"community": 5,
|
| 13 |
+
"norm_label": "client.py"
|
| 14 |
+
},
|
| 15 |
+
{
|
| 16 |
+
"label": "DebugzeroEnv",
|
| 17 |
+
"file_type": "code",
|
| 18 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 19 |
+
"source_location": "L18",
|
| 20 |
+
"id": "client_debugzeroenv",
|
| 21 |
+
"community": 1,
|
| 22 |
+
"norm_label": "debugzeroenv"
|
| 23 |
+
},
|
| 24 |
+
{
|
| 25 |
+
"label": "._step_payload()",
|
| 26 |
+
"file_type": "code",
|
| 27 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 28 |
+
"source_location": "L47",
|
| 29 |
+
"id": "client_debugzeroenv_step_payload",
|
| 30 |
+
"community": 1,
|
| 31 |
+
"norm_label": "._step_payload()"
|
| 32 |
+
},
|
| 33 |
+
{
|
| 34 |
+
"label": "._parse_result()",
|
| 35 |
+
"file_type": "code",
|
| 36 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 37 |
+
"source_location": "L62",
|
| 38 |
+
"id": "client_debugzeroenv_parse_result",
|
| 39 |
+
"community": 7,
|
| 40 |
+
"norm_label": "._parse_result()"
|
| 41 |
+
},
|
| 42 |
+
{
|
| 43 |
+
"label": "._parse_state()",
|
| 44 |
+
"file_type": "code",
|
| 45 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 46 |
+
"source_location": "L90",
|
| 47 |
+
"id": "client_debugzeroenv_parse_state",
|
| 48 |
+
"community": 1,
|
| 49 |
+
"norm_label": "._parse_state()"
|
| 50 |
+
},
|
| 51 |
+
{
|
| 52 |
+
"label": "Client for the DebugZero Environment. This client maintains a persistent We",
|
| 53 |
+
"file_type": "rationale",
|
| 54 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 55 |
+
"source_location": "L21",
|
| 56 |
+
"id": "client_rationale_21",
|
| 57 |
+
"community": 1,
|
| 58 |
+
"norm_label": "client for the debugzero environment. this client maintains a persistent we"
|
| 59 |
+
},
|
| 60 |
+
{
|
| 61 |
+
"label": "Convert DebugzeroAction to JSON payload for step message. Args:",
|
| 62 |
+
"file_type": "rationale",
|
| 63 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 64 |
+
"source_location": "L48",
|
| 65 |
+
"id": "client_rationale_48",
|
| 66 |
+
"community": 1,
|
| 67 |
+
"norm_label": "convert debugzeroaction to json payload for step message. args:"
|
| 68 |
+
},
|
| 69 |
+
{
|
| 70 |
+
"label": "Parse server response into StepResult[DebugzeroObservation]. Args:",
|
| 71 |
+
"file_type": "rationale",
|
| 72 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 73 |
+
"source_location": "L63",
|
| 74 |
+
"id": "client_rationale_63",
|
| 75 |
+
"community": 7,
|
| 76 |
+
"norm_label": "parse server response into stepresult[debugzeroobservation]. args:"
|
| 77 |
+
},
|
| 78 |
+
{
|
| 79 |
+
"label": "Parse server response into State object. Args: payload: JSO",
|
| 80 |
+
"file_type": "rationale",
|
| 81 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 82 |
+
"source_location": "L91",
|
| 83 |
+
"id": "client_rationale_91",
|
| 84 |
+
"community": 1,
|
| 85 |
+
"norm_label": "parse server response into state object. args: payload: jso"
|
| 86 |
+
},
|
| 87 |
+
{
|
| 88 |
+
"label": "models.py",
|
| 89 |
+
"file_type": "code",
|
| 90 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py",
|
| 91 |
+
"source_location": "L1",
|
| 92 |
+
"id": "c_users_astra_desktop_hackon_debugzero_models_py",
|
| 93 |
+
"community": 5,
|
| 94 |
+
"norm_label": "models.py"
|
| 95 |
+
},
|
| 96 |
+
{
|
| 97 |
+
"label": "DebugzeroAction",
|
| 98 |
+
"file_type": "code",
|
| 99 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py",
|
| 100 |
+
"source_location": "L18",
|
| 101 |
+
"id": "models_debugzeroaction",
|
| 102 |
+
"community": 9,
|
| 103 |
+
"norm_label": "debugzeroaction"
|
| 104 |
+
},
|
| 105 |
+
{
|
| 106 |
+
"label": "Action",
|
| 107 |
+
"file_type": "code",
|
| 108 |
+
"source_file": "",
|
| 109 |
+
"source_location": "",
|
| 110 |
+
"id": "action",
|
| 111 |
+
"community": 9,
|
| 112 |
+
"norm_label": "action"
|
| 113 |
+
},
|
| 114 |
+
{
|
| 115 |
+
"label": "DebugzeroObservation",
|
| 116 |
+
"file_type": "code",
|
| 117 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py",
|
| 118 |
+
"source_location": "L25",
|
| 119 |
+
"id": "models_debugzeroobservation",
|
| 120 |
+
"community": 7,
|
| 121 |
+
"norm_label": "debugzeroobservation"
|
| 122 |
+
},
|
| 123 |
+
{
|
| 124 |
+
"label": "Observation",
|
| 125 |
+
"file_type": "code",
|
| 126 |
+
"source_file": "",
|
| 127 |
+
"source_location": "",
|
| 128 |
+
"id": "observation",
|
| 129 |
+
"community": 7,
|
| 130 |
+
"norm_label": "observation"
|
| 131 |
+
},
|
| 132 |
+
{
|
| 133 |
+
"label": "DebugzeroState",
|
| 134 |
+
"file_type": "code",
|
| 135 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py",
|
| 136 |
+
"source_location": "L34",
|
| 137 |
+
"id": "models_debugzerostate",
|
| 138 |
+
"community": 1,
|
| 139 |
+
"norm_label": "debugzerostate"
|
| 140 |
+
},
|
| 141 |
+
{
|
| 142 |
+
"label": "State",
|
| 143 |
+
"file_type": "code",
|
| 144 |
+
"source_file": "",
|
| 145 |
+
"source_location": "",
|
| 146 |
+
"id": "state",
|
| 147 |
+
"community": 1,
|
| 148 |
+
"norm_label": "state"
|
| 149 |
+
},
|
| 150 |
+
{
|
| 151 |
+
"label": "Action for the DebugZero environment representing the Proposer or Solver inputs.",
|
| 152 |
+
"file_type": "rationale",
|
| 153 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py",
|
| 154 |
+
"source_location": "L19",
|
| 155 |
+
"id": "models_rationale_19",
|
| 156 |
+
"community": 9,
|
| 157 |
+
"norm_label": "action for the debugzero environment representing the proposer or solver inputs."
|
| 158 |
+
},
|
| 159 |
+
{
|
| 160 |
+
"label": "Observation from the DebugZero environment following sandbox execution.",
|
| 161 |
+
"file_type": "rationale",
|
| 162 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py",
|
| 163 |
+
"source_location": "L26",
|
| 164 |
+
"id": "models_rationale_26",
|
| 165 |
+
"community": 7,
|
| 166 |
+
"norm_label": "observation from the debugzero environment following sandbox execution."
|
| 167 |
+
},
|
| 168 |
+
{
|
| 169 |
+
"label": "State for the DebugZero environment, extending default state with seed context.",
|
| 170 |
+
"file_type": "rationale",
|
| 171 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py",
|
| 172 |
+
"source_location": "L35",
|
| 173 |
+
"id": "models_rationale_35",
|
| 174 |
+
"community": 1,
|
| 175 |
+
"norm_label": "state for the debugzero environment, extending default state with seed context."
|
| 176 |
+
},
|
| 177 |
+
{
|
| 178 |
+
"label": "run_episode.py",
|
| 179 |
+
"file_type": "code",
|
| 180 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py",
|
| 181 |
+
"source_location": "L1",
|
| 182 |
+
"id": "c_users_astra_desktop_hackon_debugzero_run_episode_py",
|
| 183 |
+
"community": 6,
|
| 184 |
+
"norm_label": "run_episode.py"
|
| 185 |
+
},
|
| 186 |
+
{
|
| 187 |
+
"label": "test_local_env()",
|
| 188 |
+
"file_type": "code",
|
| 189 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py",
|
| 190 |
+
"source_location": "L7",
|
| 191 |
+
"id": "run_episode_test_local_env",
|
| 192 |
+
"community": 6,
|
| 193 |
+
"norm_label": "test_local_env()"
|
| 194 |
+
},
|
| 195 |
+
{
|
| 196 |
+
"label": "__init__.py",
|
| 197 |
+
"file_type": "code",
|
| 198 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\__init__.py",
|
| 199 |
+
"source_location": "L1",
|
| 200 |
+
"id": "c_users_astra_desktop_hackon_debugzero_init_py",
|
| 201 |
+
"community": 5,
|
| 202 |
+
"norm_label": "__init__.py"
|
| 203 |
+
},
|
| 204 |
+
{
|
| 205 |
+
"label": "plausibility_eval.py",
|
| 206 |
+
"file_type": "code",
|
| 207 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\plausibility_eval.py",
|
| 208 |
+
"source_location": "L1",
|
| 209 |
+
"id": "c_users_astra_desktop_hackon_debugzero_eval_plausibility_eval_py",
|
| 210 |
+
"community": 8,
|
| 211 |
+
"norm_label": "plausibility_eval.py"
|
| 212 |
+
},
|
| 213 |
+
{
|
| 214 |
+
"label": "evaluate_navidadkhah_plausibility()",
|
| 215 |
+
"file_type": "code",
|
| 216 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\plausibility_eval.py",
|
| 217 |
+
"source_location": "L5",
|
| 218 |
+
"id": "plausibility_eval_evaluate_navidadkhah_plausibility",
|
| 219 |
+
"community": 8,
|
| 220 |
+
"norm_label": "evaluate_navidadkhah_plausibility()"
|
| 221 |
+
},
|
| 222 |
+
{
|
| 223 |
+
"label": "Offline evaluation of generated bugs against the navidadkhah 25k bug dataset.",
|
| 224 |
+
"file_type": "rationale",
|
| 225 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\plausibility_eval.py",
|
| 226 |
+
"source_location": "L6",
|
| 227 |
+
"id": "plausibility_eval_rationale_6",
|
| 228 |
+
"community": 8,
|
| 229 |
+
"norm_label": "offline evaluation of generated bugs against the navidadkhah 25k bug dataset."
|
| 230 |
+
},
|
| 231 |
+
{
|
| 232 |
+
"label": "test_bug_injector.py",
|
| 233 |
+
"file_type": "code",
|
| 234 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py",
|
| 235 |
+
"source_location": "L1",
|
| 236 |
+
"id": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py",
|
| 237 |
+
"community": 0,
|
| 238 |
+
"norm_label": "test_bug_injector.py"
|
| 239 |
+
},
|
| 240 |
+
{
|
| 241 |
+
"label": "test_missing_base_case()",
|
| 242 |
+
"file_type": "code",
|
| 243 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py",
|
| 244 |
+
"source_location": "L10",
|
| 245 |
+
"id": "test_bug_injector_test_missing_base_case",
|
| 246 |
+
"community": 0,
|
| 247 |
+
"norm_label": "test_missing_base_case()"
|
| 248 |
+
},
|
| 249 |
+
{
|
| 250 |
+
"label": "test_off_by_one()",
|
| 251 |
+
"file_type": "code",
|
| 252 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py",
|
| 253 |
+
"source_location": "L17",
|
| 254 |
+
"id": "test_bug_injector_test_off_by_one",
|
| 255 |
+
"community": 0,
|
| 256 |
+
"norm_label": "test_off_by_one()"
|
| 257 |
+
},
|
| 258 |
+
{
|
| 259 |
+
"label": "test_loop_boundary_shift()",
|
| 260 |
+
"file_type": "code",
|
| 261 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py",
|
| 262 |
+
"source_location": "L25",
|
| 263 |
+
"id": "test_bug_injector_test_loop_boundary_shift",
|
| 264 |
+
"community": 0,
|
| 265 |
+
"norm_label": "test_loop_boundary_shift()"
|
| 266 |
+
},
|
| 267 |
+
{
|
| 268 |
+
"label": "test_wrong_builtin()",
|
| 269 |
+
"file_type": "code",
|
| 270 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py",
|
| 271 |
+
"source_location": "L32",
|
| 272 |
+
"id": "test_bug_injector_test_wrong_builtin",
|
| 273 |
+
"community": 0,
|
| 274 |
+
"norm_label": "test_wrong_builtin()"
|
| 275 |
+
},
|
| 276 |
+
{
|
| 277 |
+
"label": "test_condition_negation()",
|
| 278 |
+
"file_type": "code",
|
| 279 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py",
|
| 280 |
+
"source_location": "L38",
|
| 281 |
+
"id": "test_bug_injector_test_condition_negation",
|
| 282 |
+
"community": 0,
|
| 283 |
+
"norm_label": "test_condition_negation()"
|
| 284 |
+
},
|
| 285 |
+
{
|
| 286 |
+
"label": "test_safety_check_blocks()",
|
| 287 |
+
"file_type": "code",
|
| 288 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py",
|
| 289 |
+
"source_location": "L44",
|
| 290 |
+
"id": "test_bug_injector_test_safety_check_blocks",
|
| 291 |
+
"community": 0,
|
| 292 |
+
"norm_label": "test_safety_check_blocks()"
|
| 293 |
+
},
|
| 294 |
+
{
|
| 295 |
+
"label": "test_executor.py",
|
| 296 |
+
"file_type": "code",
|
| 297 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py",
|
| 298 |
+
"source_location": "L1",
|
| 299 |
+
"id": "c_users_astra_desktop_hackon_debugzero_eval_test_executor_py",
|
| 300 |
+
"community": 3,
|
| 301 |
+
"norm_label": "test_executor.py"
|
| 302 |
+
},
|
| 303 |
+
{
|
| 304 |
+
"label": "test_executor_is_safe()",
|
| 305 |
+
"file_type": "code",
|
| 306 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py",
|
| 307 |
+
"source_location": "L4",
|
| 308 |
+
"id": "test_executor_test_executor_is_safe",
|
| 309 |
+
"community": 3,
|
| 310 |
+
"norm_label": "test_executor_is_safe()"
|
| 311 |
+
},
|
| 312 |
+
{
|
| 313 |
+
"label": "test_execute_code()",
|
| 314 |
+
"file_type": "code",
|
| 315 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py",
|
| 316 |
+
"source_location": "L16",
|
| 317 |
+
"id": "test_executor_test_execute_code",
|
| 318 |
+
"community": 3,
|
| 319 |
+
"norm_label": "test_execute_code()"
|
| 320 |
+
},
|
| 321 |
+
{
|
| 322 |
+
"label": "app.py",
|
| 323 |
+
"file_type": "code",
|
| 324 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py",
|
| 325 |
+
"source_location": "L1",
|
| 326 |
+
"id": "c_users_astra_desktop_hackon_debugzero_server_app_py",
|
| 327 |
+
"community": 5,
|
| 328 |
+
"norm_label": "app.py"
|
| 329 |
+
},
|
| 330 |
+
{
|
| 331 |
+
"label": "main()",
|
| 332 |
+
"file_type": "code",
|
| 333 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py",
|
| 334 |
+
"source_location": "L60",
|
| 335 |
+
"id": "app_main",
|
| 336 |
+
"community": 5,
|
| 337 |
+
"norm_label": "main()"
|
| 338 |
+
},
|
| 339 |
+
{
|
| 340 |
+
"label": "Entry point for direct execution via uv run or python -m. This function ena",
|
| 341 |
+
"file_type": "rationale",
|
| 342 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py",
|
| 343 |
+
"source_location": "L61",
|
| 344 |
+
"id": "app_rationale_61",
|
| 345 |
+
"community": 9,
|
| 346 |
+
"norm_label": "entry point for direct execution via uv run or python -m. this function ena"
|
| 347 |
+
},
|
| 348 |
+
{
|
| 349 |
+
"label": "bug_injector.py",
|
| 350 |
+
"file_type": "code",
|
| 351 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 352 |
+
"source_location": "L1",
|
| 353 |
+
"id": "c_users_astra_desktop_hackon_debugzero_server_bug_injector_py",
|
| 354 |
+
"community": 0,
|
| 355 |
+
"norm_label": "bug_injector.py"
|
| 356 |
+
},
|
| 357 |
+
{
|
| 358 |
+
"label": "is_safe_injection()",
|
| 359 |
+
"file_type": "code",
|
| 360 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 361 |
+
"source_location": "L13",
|
| 362 |
+
"id": "bug_injector_is_safe_injection",
|
| 363 |
+
"community": 0,
|
| 364 |
+
"norm_label": "is_safe_injection()"
|
| 365 |
+
},
|
| 366 |
+
{
|
| 367 |
+
"label": "BugInjectorVisitor",
|
| 368 |
+
"file_type": "code",
|
| 369 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 370 |
+
"source_location": "L19",
|
| 371 |
+
"id": "bug_injector_buginjectorvisitor",
|
| 372 |
+
"community": 2,
|
| 373 |
+
"norm_label": "buginjectorvisitor"
|
| 374 |
+
},
|
| 375 |
+
{
|
| 376 |
+
"label": ".__init__()",
|
| 377 |
+
"file_type": "code",
|
| 378 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 379 |
+
"source_location": "L20",
|
| 380 |
+
"id": "bug_injector_buginjectorvisitor_init",
|
| 381 |
+
"community": 2,
|
| 382 |
+
"norm_label": ".__init__()"
|
| 383 |
+
},
|
| 384 |
+
{
|
| 385 |
+
"label": ".visit_Constant()",
|
| 386 |
+
"file_type": "code",
|
| 387 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 388 |
+
"source_location": "L25",
|
| 389 |
+
"id": "bug_injector_buginjectorvisitor_visit_constant",
|
| 390 |
+
"community": 2,
|
| 391 |
+
"norm_label": ".visit_constant()"
|
| 392 |
+
},
|
| 393 |
+
{
|
| 394 |
+
"label": ".visit_Compare()",
|
| 395 |
+
"file_type": "code",
|
| 396 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 397 |
+
"source_location": "L38",
|
| 398 |
+
"id": "bug_injector_buginjectorvisitor_visit_compare",
|
| 399 |
+
"community": 2,
|
| 400 |
+
"norm_label": ".visit_compare()"
|
| 401 |
+
},
|
| 402 |
+
{
|
| 403 |
+
"label": ".visit_BinOp()",
|
| 404 |
+
"file_type": "code",
|
| 405 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 406 |
+
"source_location": "L64",
|
| 407 |
+
"id": "bug_injector_buginjectorvisitor_visit_binop",
|
| 408 |
+
"community": 2,
|
| 409 |
+
"norm_label": ".visit_binop()"
|
| 410 |
+
},
|
| 411 |
+
{
|
| 412 |
+
"label": ".visit_Call()",
|
| 413 |
+
"file_type": "code",
|
| 414 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 415 |
+
"source_location": "L84",
|
| 416 |
+
"id": "bug_injector_buginjectorvisitor_visit_call",
|
| 417 |
+
"community": 2,
|
| 418 |
+
"norm_label": ".visit_call()"
|
| 419 |
+
},
|
| 420 |
+
{
|
| 421 |
+
"label": ".visit_If()",
|
| 422 |
+
"file_type": "code",
|
| 423 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 424 |
+
"source_location": "L108",
|
| 425 |
+
"id": "bug_injector_buginjectorvisitor_visit_if",
|
| 426 |
+
"community": 2,
|
| 427 |
+
"norm_label": ".visit_if()"
|
| 428 |
+
},
|
| 429 |
+
{
|
| 430 |
+
"label": ".visit_Slice()",
|
| 431 |
+
"file_type": "code",
|
| 432 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 433 |
+
"source_location": "L127",
|
| 434 |
+
"id": "bug_injector_buginjectorvisitor_visit_slice",
|
| 435 |
+
"community": 2,
|
| 436 |
+
"norm_label": ".visit_slice()"
|
| 437 |
+
},
|
| 438 |
+
{
|
| 439 |
+
"label": ".visit_Name()",
|
| 440 |
+
"file_type": "code",
|
| 441 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 442 |
+
"source_location": "L142",
|
| 443 |
+
"id": "bug_injector_buginjectorvisitor_visit_name",
|
| 444 |
+
"community": 2,
|
| 445 |
+
"norm_label": ".visit_name()"
|
| 446 |
+
},
|
| 447 |
+
{
|
| 448 |
+
"label": ".visit_Assign()",
|
| 449 |
+
"file_type": "code",
|
| 450 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 451 |
+
"source_location": "L146",
|
| 452 |
+
"id": "bug_injector_buginjectorvisitor_visit_assign",
|
| 453 |
+
"community": 2,
|
| 454 |
+
"norm_label": ".visit_assign()"
|
| 455 |
+
},
|
| 456 |
+
{
|
| 457 |
+
"label": "inject_bug()",
|
| 458 |
+
"file_type": "code",
|
| 459 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 460 |
+
"source_location": "L159",
|
| 461 |
+
"id": "bug_injector_inject_bug",
|
| 462 |
+
"community": 0,
|
| 463 |
+
"norm_label": "inject_bug()"
|
| 464 |
+
},
|
| 465 |
+
{
|
| 466 |
+
"label": "4 critical checks: - parse succeeds - mutation actually changed code",
|
| 467 |
+
"file_type": "rationale",
|
| 468 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 469 |
+
"source_location": "L160",
|
| 470 |
+
"id": "bug_injector_rationale_160",
|
| 471 |
+
"community": 0,
|
| 472 |
+
"norm_label": "4 critical checks: - parse succeeds - mutation actually changed code"
|
| 473 |
+
},
|
| 474 |
+
{
|
| 475 |
+
"label": "debugZero_environment.py",
|
| 476 |
+
"file_type": "code",
|
| 477 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 478 |
+
"source_location": "L1",
|
| 479 |
+
"id": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py",
|
| 480 |
+
"community": 5,
|
| 481 |
+
"norm_label": "debugzero_environment.py"
|
| 482 |
+
},
|
| 483 |
+
{
|
| 484 |
+
"label": "DebugzeroEnvironment",
|
| 485 |
+
"file_type": "code",
|
| 486 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 487 |
+
"source_location": "L38",
|
| 488 |
+
"id": "debugzero_environment_debugzeroenvironment",
|
| 489 |
+
"community": 6,
|
| 490 |
+
"norm_label": "debugzeroenvironment"
|
| 491 |
+
},
|
| 492 |
+
{
|
| 493 |
+
"label": "Environment",
|
| 494 |
+
"file_type": "code",
|
| 495 |
+
"source_file": "",
|
| 496 |
+
"source_location": "",
|
| 497 |
+
"id": "environment",
|
| 498 |
+
"community": 6,
|
| 499 |
+
"norm_label": "environment"
|
| 500 |
+
},
|
| 501 |
+
{
|
| 502 |
+
"label": ".__init__()",
|
| 503 |
+
"file_type": "code",
|
| 504 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 505 |
+
"source_location": "L45",
|
| 506 |
+
"id": "debugzero_environment_debugzeroenvironment_init",
|
| 507 |
+
"community": 1,
|
| 508 |
+
"norm_label": ".__init__()"
|
| 509 |
+
},
|
| 510 |
+
{
|
| 511 |
+
"label": ".reset()",
|
| 512 |
+
"file_type": "code",
|
| 513 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 514 |
+
"source_location": "L56",
|
| 515 |
+
"id": "debugzero_environment_debugzeroenvironment_reset",
|
| 516 |
+
"community": 6,
|
| 517 |
+
"norm_label": ".reset()"
|
| 518 |
+
},
|
| 519 |
+
{
|
| 520 |
+
"label": ".step()",
|
| 521 |
+
"file_type": "code",
|
| 522 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 523 |
+
"source_location": "L77",
|
| 524 |
+
"id": "debugzero_environment_debugzeroenvironment_step",
|
| 525 |
+
"community": 6,
|
| 526 |
+
"norm_label": ".step()"
|
| 527 |
+
},
|
| 528 |
+
{
|
| 529 |
+
"label": "state()",
|
| 530 |
+
"file_type": "code",
|
| 531 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 532 |
+
"source_location": "L127",
|
| 533 |
+
"id": "debugzero_environment_state",
|
| 534 |
+
"community": 5,
|
| 535 |
+
"norm_label": "state()"
|
| 536 |
+
},
|
| 537 |
+
{
|
| 538 |
+
"label": "Dual-role DebugZero Environment wrapping a Python sandbox execution for Prop",
|
| 539 |
+
"file_type": "rationale",
|
| 540 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 541 |
+
"source_location": "L39",
|
| 542 |
+
"id": "debugzero_environment_rationale_39",
|
| 543 |
+
"community": 7,
|
| 544 |
+
"norm_label": "dual-role debugzero environment wrapping a python sandbox execution for prop"
|
| 545 |
+
},
|
| 546 |
+
{
|
| 547 |
+
"label": "executor.py",
|
| 548 |
+
"file_type": "code",
|
| 549 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py",
|
| 550 |
+
"source_location": "L1",
|
| 551 |
+
"id": "c_users_astra_desktop_hackon_debugzero_server_executor_py",
|
| 552 |
+
"community": 3,
|
| 553 |
+
"norm_label": "executor.py"
|
| 554 |
+
},
|
| 555 |
+
{
|
| 556 |
+
"label": "is_safe()",
|
| 557 |
+
"file_type": "code",
|
| 558 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py",
|
| 559 |
+
"source_location": "L9",
|
| 560 |
+
"id": "executor_is_safe",
|
| 561 |
+
"community": 3,
|
| 562 |
+
"norm_label": "is_safe()"
|
| 563 |
+
},
|
| 564 |
+
{
|
| 565 |
+
"label": "ExecutionResult",
|
| 566 |
+
"file_type": "code",
|
| 567 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py",
|
| 568 |
+
"source_location": "L44",
|
| 569 |
+
"id": "executor_executionresult",
|
| 570 |
+
"community": 3,
|
| 571 |
+
"norm_label": "executionresult"
|
| 572 |
+
},
|
| 573 |
+
{
|
| 574 |
+
"label": ".__init__()",
|
| 575 |
+
"file_type": "code",
|
| 576 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py",
|
| 577 |
+
"source_location": "L45",
|
| 578 |
+
"id": "executor_executionresult_init",
|
| 579 |
+
"community": 3,
|
| 580 |
+
"norm_label": ".__init__()"
|
| 581 |
+
},
|
| 582 |
+
{
|
| 583 |
+
"label": "execute_code()",
|
| 584 |
+
"file_type": "code",
|
| 585 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py",
|
| 586 |
+
"source_location": "L51",
|
| 587 |
+
"id": "executor_execute_code",
|
| 588 |
+
"community": 3,
|
| 589 |
+
"norm_label": "execute_code()"
|
| 590 |
+
},
|
| 591 |
+
{
|
| 592 |
+
"label": "Check if the code contains any blocked imports strings. Also performs a qu",
|
| 593 |
+
"file_type": "rationale",
|
| 594 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py",
|
| 595 |
+
"source_location": "L10",
|
| 596 |
+
"id": "executor_rationale_10",
|
| 597 |
+
"community": 3,
|
| 598 |
+
"norm_label": "check if the code contains any blocked imports strings. also performs a qu"
|
| 599 |
+
},
|
| 600 |
+
{
|
| 601 |
+
"label": "Executes the provided python code alongside its tests in an isolated subprocess.",
|
| 602 |
+
"file_type": "rationale",
|
| 603 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py",
|
| 604 |
+
"source_location": "L52",
|
| 605 |
+
"id": "executor_rationale_52",
|
| 606 |
+
"community": 3,
|
| 607 |
+
"norm_label": "executes the provided python code alongside its tests in an isolated subprocess."
|
| 608 |
+
},
|
| 609 |
+
{
|
| 610 |
+
"label": "plausibility.py",
|
| 611 |
+
"file_type": "code",
|
| 612 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\plausibility.py",
|
| 613 |
+
"source_location": "L1",
|
| 614 |
+
"id": "c_users_astra_desktop_hackon_debugzero_server_plausibility_py",
|
| 615 |
+
"community": 8,
|
| 616 |
+
"norm_label": "plausibility.py"
|
| 617 |
+
},
|
| 618 |
+
{
|
| 619 |
+
"label": "compute_ast_distance()",
|
| 620 |
+
"file_type": "code",
|
| 621 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\plausibility.py",
|
| 622 |
+
"source_location": "L4",
|
| 623 |
+
"id": "plausibility_compute_ast_distance",
|
| 624 |
+
"community": 8,
|
| 625 |
+
"norm_label": "compute_ast_distance()"
|
| 626 |
+
},
|
| 627 |
+
{
|
| 628 |
+
"label": "Computes the string similarity distance between the AST dumps of the original",
|
| 629 |
+
"file_type": "rationale",
|
| 630 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\plausibility.py",
|
| 631 |
+
"source_location": "L5",
|
| 632 |
+
"id": "plausibility_rationale_5",
|
| 633 |
+
"community": 8,
|
| 634 |
+
"norm_label": "computes the string similarity distance between the ast dumps of the original"
|
| 635 |
+
},
|
| 636 |
+
{
|
| 637 |
+
"label": "__init__.py",
|
| 638 |
+
"file_type": "code",
|
| 639 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\__init__.py",
|
| 640 |
+
"source_location": "L1",
|
| 641 |
+
"id": "c_users_astra_desktop_hackon_debugzero_server_init_py",
|
| 642 |
+
"community": 5,
|
| 643 |
+
"norm_label": "__init__.py"
|
| 644 |
+
},
|
| 645 |
+
{
|
| 646 |
+
"label": "dual_role_sampler.py",
|
| 647 |
+
"file_type": "code",
|
| 648 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\dual_role_sampler.py",
|
| 649 |
+
"source_location": "L1",
|
| 650 |
+
"id": "c_users_astra_desktop_hackon_debugzero_training_dual_role_sampler_py",
|
| 651 |
+
"community": 10,
|
| 652 |
+
"norm_label": "dual_role_sampler.py"
|
| 653 |
+
},
|
| 654 |
+
{
|
| 655 |
+
"label": "sample_proposer_prompt()",
|
| 656 |
+
"file_type": "code",
|
| 657 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\dual_role_sampler.py",
|
| 658 |
+
"source_location": "L23",
|
| 659 |
+
"id": "dual_role_sampler_sample_proposer_prompt",
|
| 660 |
+
"community": 10,
|
| 661 |
+
"norm_label": "sample_proposer_prompt()"
|
| 662 |
+
},
|
| 663 |
+
{
|
| 664 |
+
"label": "sample_solver_prompt()",
|
| 665 |
+
"file_type": "code",
|
| 666 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\dual_role_sampler.py",
|
| 667 |
+
"source_location": "L26",
|
| 668 |
+
"id": "dual_role_sampler_sample_solver_prompt",
|
| 669 |
+
"community": 10,
|
| 670 |
+
"norm_label": "sample_solver_prompt()"
|
| 671 |
+
},
|
| 672 |
+
{
|
| 673 |
+
"label": "grpo_train.py",
|
| 674 |
+
"file_type": "code",
|
| 675 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py",
|
| 676 |
+
"source_location": "L1",
|
| 677 |
+
"id": "c_users_astra_desktop_hackon_debugzero_training_grpo_train_py",
|
| 678 |
+
"community": 4,
|
| 679 |
+
"norm_label": "grpo_train.py"
|
| 680 |
+
},
|
| 681 |
+
{
|
| 682 |
+
"label": "reward_fn()",
|
| 683 |
+
"file_type": "code",
|
| 684 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py",
|
| 685 |
+
"source_location": "L25",
|
| 686 |
+
"id": "grpo_train_reward_fn",
|
| 687 |
+
"community": 4,
|
| 688 |
+
"norm_label": "reward_fn()"
|
| 689 |
+
},
|
| 690 |
+
{
|
| 691 |
+
"label": "create_dataset()",
|
| 692 |
+
"file_type": "code",
|
| 693 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py",
|
| 694 |
+
"source_location": "L44",
|
| 695 |
+
"id": "grpo_train_create_dataset",
|
| 696 |
+
"community": 4,
|
| 697 |
+
"norm_label": "create_dataset()"
|
| 698 |
+
},
|
| 699 |
+
{
|
| 700 |
+
"label": "main()",
|
| 701 |
+
"file_type": "code",
|
| 702 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py",
|
| 703 |
+
"source_location": "L57",
|
| 704 |
+
"id": "grpo_train_main",
|
| 705 |
+
"community": 4,
|
| 706 |
+
"norm_label": "main()"
|
| 707 |
+
},
|
| 708 |
+
{
|
| 709 |
+
"label": "rewards.py",
|
| 710 |
+
"file_type": "code",
|
| 711 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py",
|
| 712 |
+
"source_location": "L1",
|
| 713 |
+
"id": "c_users_astra_desktop_hackon_debugzero_training_rewards_py",
|
| 714 |
+
"community": 4,
|
| 715 |
+
"norm_label": "rewards.py"
|
| 716 |
+
},
|
| 717 |
+
{
|
| 718 |
+
"label": "get_solve_rate()",
|
| 719 |
+
"file_type": "code",
|
| 720 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py",
|
| 721 |
+
"source_location": "L7",
|
| 722 |
+
"id": "rewards_get_solve_rate",
|
| 723 |
+
"community": 4,
|
| 724 |
+
"norm_label": "get_solve_rate()"
|
| 725 |
+
},
|
| 726 |
+
{
|
| 727 |
+
"label": "record_solve_result()",
|
| 728 |
+
"file_type": "code",
|
| 729 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py",
|
| 730 |
+
"source_location": "L13",
|
| 731 |
+
"id": "rewards_record_solve_result",
|
| 732 |
+
"community": 4,
|
| 733 |
+
"norm_label": "record_solve_result()"
|
| 734 |
+
},
|
| 735 |
+
{
|
| 736 |
+
"label": "compute_proposer_reward()",
|
| 737 |
+
"file_type": "code",
|
| 738 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py",
|
| 739 |
+
"source_location": "L18",
|
| 740 |
+
"id": "rewards_compute_proposer_reward",
|
| 741 |
+
"community": 4,
|
| 742 |
+
"norm_label": "compute_proposer_reward()"
|
| 743 |
+
},
|
| 744 |
+
{
|
| 745 |
+
"label": "compute_solver_reward()",
|
| 746 |
+
"file_type": "code",
|
| 747 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py",
|
| 748 |
+
"source_location": "L37",
|
| 749 |
+
"id": "rewards_compute_solver_reward",
|
| 750 |
+
"community": 4,
|
| 751 |
+
"norm_label": "compute_solver_reward()"
|
| 752 |
+
}
|
| 753 |
+
],
|
| 754 |
+
"links": [
|
| 755 |
+
{
|
| 756 |
+
"relation": "imports_from",
|
| 757 |
+
"confidence": "EXTRACTED",
|
| 758 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 759 |
+
"source_location": "L15",
|
| 760 |
+
"weight": 1.0,
|
| 761 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_client_py",
|
| 762 |
+
"_tgt": "c_users_astra_desktop_hackon_debugzero_models_py",
|
| 763 |
+
"source": "c_users_astra_desktop_hackon_debugzero_client_py",
|
| 764 |
+
"target": "c_users_astra_desktop_hackon_debugzero_models_py",
|
| 765 |
+
"confidence_score": 1.0
|
| 766 |
+
},
|
| 767 |
+
{
|
| 768 |
+
"relation": "contains",
|
| 769 |
+
"confidence": "EXTRACTED",
|
| 770 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 771 |
+
"source_location": "L18",
|
| 772 |
+
"weight": 1.0,
|
| 773 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_client_py",
|
| 774 |
+
"_tgt": "client_debugzeroenv",
|
| 775 |
+
"source": "c_users_astra_desktop_hackon_debugzero_client_py",
|
| 776 |
+
"target": "client_debugzeroenv",
|
| 777 |
+
"confidence_score": 1.0
|
| 778 |
+
},
|
| 779 |
+
{
|
| 780 |
+
"relation": "imports_from",
|
| 781 |
+
"confidence": "EXTRACTED",
|
| 782 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\__init__.py",
|
| 783 |
+
"source_location": "L9",
|
| 784 |
+
"weight": 1.0,
|
| 785 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_init_py",
|
| 786 |
+
"_tgt": "c_users_astra_desktop_hackon_debugzero_client_py",
|
| 787 |
+
"source": "c_users_astra_desktop_hackon_debugzero_client_py",
|
| 788 |
+
"target": "c_users_astra_desktop_hackon_debugzero_init_py",
|
| 789 |
+
"confidence_score": 1.0
|
| 790 |
+
},
|
| 791 |
+
{
|
| 792 |
+
"relation": "method",
|
| 793 |
+
"confidence": "EXTRACTED",
|
| 794 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 795 |
+
"source_location": "L47",
|
| 796 |
+
"weight": 1.0,
|
| 797 |
+
"_src": "client_debugzeroenv",
|
| 798 |
+
"_tgt": "client_debugzeroenv_step_payload",
|
| 799 |
+
"source": "client_debugzeroenv",
|
| 800 |
+
"target": "client_debugzeroenv_step_payload",
|
| 801 |
+
"confidence_score": 1.0
|
| 802 |
+
},
|
| 803 |
+
{
|
| 804 |
+
"relation": "method",
|
| 805 |
+
"confidence": "EXTRACTED",
|
| 806 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 807 |
+
"source_location": "L62",
|
| 808 |
+
"weight": 1.0,
|
| 809 |
+
"_src": "client_debugzeroenv",
|
| 810 |
+
"_tgt": "client_debugzeroenv_parse_result",
|
| 811 |
+
"source": "client_debugzeroenv",
|
| 812 |
+
"target": "client_debugzeroenv_parse_result",
|
| 813 |
+
"confidence_score": 1.0
|
| 814 |
+
},
|
| 815 |
+
{
|
| 816 |
+
"relation": "method",
|
| 817 |
+
"confidence": "EXTRACTED",
|
| 818 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 819 |
+
"source_location": "L90",
|
| 820 |
+
"weight": 1.0,
|
| 821 |
+
"_src": "client_debugzeroenv",
|
| 822 |
+
"_tgt": "client_debugzeroenv_parse_state",
|
| 823 |
+
"source": "client_debugzeroenv",
|
| 824 |
+
"target": "client_debugzeroenv_parse_state",
|
| 825 |
+
"confidence_score": 1.0
|
| 826 |
+
},
|
| 827 |
+
{
|
| 828 |
+
"relation": "rationale_for",
|
| 829 |
+
"confidence": "EXTRACTED",
|
| 830 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 831 |
+
"source_location": "L21",
|
| 832 |
+
"weight": 1.0,
|
| 833 |
+
"_src": "client_rationale_21",
|
| 834 |
+
"_tgt": "client_debugzeroenv",
|
| 835 |
+
"source": "client_debugzeroenv",
|
| 836 |
+
"target": "client_rationale_21",
|
| 837 |
+
"confidence_score": 1.0
|
| 838 |
+
},
|
| 839 |
+
{
|
| 840 |
+
"relation": "uses",
|
| 841 |
+
"confidence": "INFERRED",
|
| 842 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 843 |
+
"source_location": "L15",
|
| 844 |
+
"weight": 0.8,
|
| 845 |
+
"_src": "client_debugzeroenv",
|
| 846 |
+
"_tgt": "models_debugzeroaction",
|
| 847 |
+
"source": "client_debugzeroenv",
|
| 848 |
+
"target": "models_debugzeroaction",
|
| 849 |
+
"confidence_score": 0.5
|
| 850 |
+
},
|
| 851 |
+
{
|
| 852 |
+
"relation": "uses",
|
| 853 |
+
"confidence": "INFERRED",
|
| 854 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 855 |
+
"source_location": "L15",
|
| 856 |
+
"weight": 0.8,
|
| 857 |
+
"_src": "client_debugzeroenv",
|
| 858 |
+
"_tgt": "models_debugzeroobservation",
|
| 859 |
+
"source": "client_debugzeroenv",
|
| 860 |
+
"target": "models_debugzeroobservation",
|
| 861 |
+
"confidence_score": 0.5
|
| 862 |
+
},
|
| 863 |
+
{
|
| 864 |
+
"relation": "uses",
|
| 865 |
+
"confidence": "INFERRED",
|
| 866 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 867 |
+
"source_location": "L15",
|
| 868 |
+
"weight": 0.8,
|
| 869 |
+
"_src": "client_debugzeroenv",
|
| 870 |
+
"_tgt": "models_debugzerostate",
|
| 871 |
+
"source": "client_debugzeroenv",
|
| 872 |
+
"target": "models_debugzerostate",
|
| 873 |
+
"confidence_score": 0.5
|
| 874 |
+
},
|
| 875 |
+
{
|
| 876 |
+
"relation": "rationale_for",
|
| 877 |
+
"confidence": "EXTRACTED",
|
| 878 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 879 |
+
"source_location": "L48",
|
| 880 |
+
"weight": 1.0,
|
| 881 |
+
"_src": "client_rationale_48",
|
| 882 |
+
"_tgt": "client_debugzeroenv_step_payload",
|
| 883 |
+
"source": "client_debugzeroenv_step_payload",
|
| 884 |
+
"target": "client_rationale_48",
|
| 885 |
+
"confidence_score": 1.0
|
| 886 |
+
},
|
| 887 |
+
{
|
| 888 |
+
"relation": "rationale_for",
|
| 889 |
+
"confidence": "EXTRACTED",
|
| 890 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 891 |
+
"source_location": "L63",
|
| 892 |
+
"weight": 1.0,
|
| 893 |
+
"_src": "client_rationale_63",
|
| 894 |
+
"_tgt": "client_debugzeroenv_parse_result",
|
| 895 |
+
"source": "client_debugzeroenv_parse_result",
|
| 896 |
+
"target": "client_rationale_63",
|
| 897 |
+
"confidence_score": 1.0
|
| 898 |
+
},
|
| 899 |
+
{
|
| 900 |
+
"relation": "calls",
|
| 901 |
+
"confidence": "INFERRED",
|
| 902 |
+
"confidence_score": 0.8,
|
| 903 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 904 |
+
"source_location": "L73",
|
| 905 |
+
"weight": 1.0,
|
| 906 |
+
"_src": "client_debugzeroenv_parse_result",
|
| 907 |
+
"_tgt": "models_debugzeroobservation",
|
| 908 |
+
"source": "client_debugzeroenv_parse_result",
|
| 909 |
+
"target": "models_debugzeroobservation"
|
| 910 |
+
},
|
| 911 |
+
{
|
| 912 |
+
"relation": "rationale_for",
|
| 913 |
+
"confidence": "EXTRACTED",
|
| 914 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 915 |
+
"source_location": "L91",
|
| 916 |
+
"weight": 1.0,
|
| 917 |
+
"_src": "client_rationale_91",
|
| 918 |
+
"_tgt": "client_debugzeroenv_parse_state",
|
| 919 |
+
"source": "client_debugzeroenv_parse_state",
|
| 920 |
+
"target": "client_rationale_91",
|
| 921 |
+
"confidence_score": 1.0
|
| 922 |
+
},
|
| 923 |
+
{
|
| 924 |
+
"relation": "calls",
|
| 925 |
+
"confidence": "INFERRED",
|
| 926 |
+
"confidence_score": 0.8,
|
| 927 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 928 |
+
"source_location": "L100",
|
| 929 |
+
"weight": 1.0,
|
| 930 |
+
"_src": "client_debugzeroenv_parse_state",
|
| 931 |
+
"_tgt": "models_debugzerostate",
|
| 932 |
+
"source": "client_debugzeroenv_parse_state",
|
| 933 |
+
"target": "models_debugzerostate"
|
| 934 |
+
},
|
| 935 |
+
{
|
| 936 |
+
"relation": "uses",
|
| 937 |
+
"confidence": "INFERRED",
|
| 938 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 939 |
+
"source_location": "L15",
|
| 940 |
+
"weight": 0.8,
|
| 941 |
+
"_src": "client_rationale_21",
|
| 942 |
+
"_tgt": "models_debugzeroaction",
|
| 943 |
+
"source": "client_rationale_21",
|
| 944 |
+
"target": "models_debugzeroaction",
|
| 945 |
+
"confidence_score": 0.5
|
| 946 |
+
},
|
| 947 |
+
{
|
| 948 |
+
"relation": "uses",
|
| 949 |
+
"confidence": "INFERRED",
|
| 950 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 951 |
+
"source_location": "L15",
|
| 952 |
+
"weight": 0.8,
|
| 953 |
+
"_src": "client_rationale_21",
|
| 954 |
+
"_tgt": "models_debugzeroobservation",
|
| 955 |
+
"source": "client_rationale_21",
|
| 956 |
+
"target": "models_debugzeroobservation",
|
| 957 |
+
"confidence_score": 0.5
|
| 958 |
+
},
|
| 959 |
+
{
|
| 960 |
+
"relation": "uses",
|
| 961 |
+
"confidence": "INFERRED",
|
| 962 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 963 |
+
"source_location": "L15",
|
| 964 |
+
"weight": 0.8,
|
| 965 |
+
"_src": "client_rationale_21",
|
| 966 |
+
"_tgt": "models_debugzerostate",
|
| 967 |
+
"source": "client_rationale_21",
|
| 968 |
+
"target": "models_debugzerostate",
|
| 969 |
+
"confidence_score": 0.5
|
| 970 |
+
},
|
| 971 |
+
{
|
| 972 |
+
"relation": "uses",
|
| 973 |
+
"confidence": "INFERRED",
|
| 974 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 975 |
+
"source_location": "L15",
|
| 976 |
+
"weight": 0.8,
|
| 977 |
+
"_src": "client_rationale_48",
|
| 978 |
+
"_tgt": "models_debugzeroaction",
|
| 979 |
+
"source": "client_rationale_48",
|
| 980 |
+
"target": "models_debugzeroaction",
|
| 981 |
+
"confidence_score": 0.5
|
| 982 |
+
},
|
| 983 |
+
{
|
| 984 |
+
"relation": "uses",
|
| 985 |
+
"confidence": "INFERRED",
|
| 986 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 987 |
+
"source_location": "L15",
|
| 988 |
+
"weight": 0.8,
|
| 989 |
+
"_src": "client_rationale_48",
|
| 990 |
+
"_tgt": "models_debugzeroobservation",
|
| 991 |
+
"source": "client_rationale_48",
|
| 992 |
+
"target": "models_debugzeroobservation",
|
| 993 |
+
"confidence_score": 0.5
|
| 994 |
+
},
|
| 995 |
+
{
|
| 996 |
+
"relation": "uses",
|
| 997 |
+
"confidence": "INFERRED",
|
| 998 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 999 |
+
"source_location": "L15",
|
| 1000 |
+
"weight": 0.8,
|
| 1001 |
+
"_src": "client_rationale_48",
|
| 1002 |
+
"_tgt": "models_debugzerostate",
|
| 1003 |
+
"source": "client_rationale_48",
|
| 1004 |
+
"target": "models_debugzerostate",
|
| 1005 |
+
"confidence_score": 0.5
|
| 1006 |
+
},
|
| 1007 |
+
{
|
| 1008 |
+
"relation": "uses",
|
| 1009 |
+
"confidence": "INFERRED",
|
| 1010 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 1011 |
+
"source_location": "L15",
|
| 1012 |
+
"weight": 0.8,
|
| 1013 |
+
"_src": "client_rationale_63",
|
| 1014 |
+
"_tgt": "models_debugzeroaction",
|
| 1015 |
+
"source": "client_rationale_63",
|
| 1016 |
+
"target": "models_debugzeroaction",
|
| 1017 |
+
"confidence_score": 0.5
|
| 1018 |
+
},
|
| 1019 |
+
{
|
| 1020 |
+
"relation": "uses",
|
| 1021 |
+
"confidence": "INFERRED",
|
| 1022 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 1023 |
+
"source_location": "L15",
|
| 1024 |
+
"weight": 0.8,
|
| 1025 |
+
"_src": "client_rationale_63",
|
| 1026 |
+
"_tgt": "models_debugzeroobservation",
|
| 1027 |
+
"source": "client_rationale_63",
|
| 1028 |
+
"target": "models_debugzeroobservation",
|
| 1029 |
+
"confidence_score": 0.5
|
| 1030 |
+
},
|
| 1031 |
+
{
|
| 1032 |
+
"relation": "uses",
|
| 1033 |
+
"confidence": "INFERRED",
|
| 1034 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 1035 |
+
"source_location": "L15",
|
| 1036 |
+
"weight": 0.8,
|
| 1037 |
+
"_src": "client_rationale_63",
|
| 1038 |
+
"_tgt": "models_debugzerostate",
|
| 1039 |
+
"source": "client_rationale_63",
|
| 1040 |
+
"target": "models_debugzerostate",
|
| 1041 |
+
"confidence_score": 0.5
|
| 1042 |
+
},
|
| 1043 |
+
{
|
| 1044 |
+
"relation": "uses",
|
| 1045 |
+
"confidence": "INFERRED",
|
| 1046 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 1047 |
+
"source_location": "L15",
|
| 1048 |
+
"weight": 0.8,
|
| 1049 |
+
"_src": "client_rationale_91",
|
| 1050 |
+
"_tgt": "models_debugzeroaction",
|
| 1051 |
+
"source": "client_rationale_91",
|
| 1052 |
+
"target": "models_debugzeroaction",
|
| 1053 |
+
"confidence_score": 0.5
|
| 1054 |
+
},
|
| 1055 |
+
{
|
| 1056 |
+
"relation": "uses",
|
| 1057 |
+
"confidence": "INFERRED",
|
| 1058 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 1059 |
+
"source_location": "L15",
|
| 1060 |
+
"weight": 0.8,
|
| 1061 |
+
"_src": "client_rationale_91",
|
| 1062 |
+
"_tgt": "models_debugzeroobservation",
|
| 1063 |
+
"source": "client_rationale_91",
|
| 1064 |
+
"target": "models_debugzeroobservation",
|
| 1065 |
+
"confidence_score": 0.5
|
| 1066 |
+
},
|
| 1067 |
+
{
|
| 1068 |
+
"relation": "uses",
|
| 1069 |
+
"confidence": "INFERRED",
|
| 1070 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\client.py",
|
| 1071 |
+
"source_location": "L15",
|
| 1072 |
+
"weight": 0.8,
|
| 1073 |
+
"_src": "client_rationale_91",
|
| 1074 |
+
"_tgt": "models_debugzerostate",
|
| 1075 |
+
"source": "client_rationale_91",
|
| 1076 |
+
"target": "models_debugzerostate",
|
| 1077 |
+
"confidence_score": 0.5
|
| 1078 |
+
},
|
| 1079 |
+
{
|
| 1080 |
+
"relation": "contains",
|
| 1081 |
+
"confidence": "EXTRACTED",
|
| 1082 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py",
|
| 1083 |
+
"source_location": "L18",
|
| 1084 |
+
"weight": 1.0,
|
| 1085 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_models_py",
|
| 1086 |
+
"_tgt": "models_debugzeroaction",
|
| 1087 |
+
"source": "c_users_astra_desktop_hackon_debugzero_models_py",
|
| 1088 |
+
"target": "models_debugzeroaction",
|
| 1089 |
+
"confidence_score": 1.0
|
| 1090 |
+
},
|
| 1091 |
+
{
|
| 1092 |
+
"relation": "contains",
|
| 1093 |
+
"confidence": "EXTRACTED",
|
| 1094 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py",
|
| 1095 |
+
"source_location": "L25",
|
| 1096 |
+
"weight": 1.0,
|
| 1097 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_models_py",
|
| 1098 |
+
"_tgt": "models_debugzeroobservation",
|
| 1099 |
+
"source": "c_users_astra_desktop_hackon_debugzero_models_py",
|
| 1100 |
+
"target": "models_debugzeroobservation",
|
| 1101 |
+
"confidence_score": 1.0
|
| 1102 |
+
},
|
| 1103 |
+
{
|
| 1104 |
+
"relation": "contains",
|
| 1105 |
+
"confidence": "EXTRACTED",
|
| 1106 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py",
|
| 1107 |
+
"source_location": "L34",
|
| 1108 |
+
"weight": 1.0,
|
| 1109 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_models_py",
|
| 1110 |
+
"_tgt": "models_debugzerostate",
|
| 1111 |
+
"source": "c_users_astra_desktop_hackon_debugzero_models_py",
|
| 1112 |
+
"target": "models_debugzerostate",
|
| 1113 |
+
"confidence_score": 1.0
|
| 1114 |
+
},
|
| 1115 |
+
{
|
| 1116 |
+
"relation": "imports_from",
|
| 1117 |
+
"confidence": "EXTRACTED",
|
| 1118 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\__init__.py",
|
| 1119 |
+
"source_location": "L10",
|
| 1120 |
+
"weight": 1.0,
|
| 1121 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_init_py",
|
| 1122 |
+
"_tgt": "c_users_astra_desktop_hackon_debugzero_models_py",
|
| 1123 |
+
"source": "c_users_astra_desktop_hackon_debugzero_models_py",
|
| 1124 |
+
"target": "c_users_astra_desktop_hackon_debugzero_init_py",
|
| 1125 |
+
"confidence_score": 1.0
|
| 1126 |
+
},
|
| 1127 |
+
{
|
| 1128 |
+
"relation": "imports_from",
|
| 1129 |
+
"confidence": "EXTRACTED",
|
| 1130 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py",
|
| 1131 |
+
"source_location": "L43",
|
| 1132 |
+
"weight": 1.0,
|
| 1133 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_server_app_py",
|
| 1134 |
+
"_tgt": "c_users_astra_desktop_hackon_debugzero_models_py",
|
| 1135 |
+
"source": "c_users_astra_desktop_hackon_debugzero_models_py",
|
| 1136 |
+
"target": "c_users_astra_desktop_hackon_debugzero_server_app_py",
|
| 1137 |
+
"confidence_score": 1.0
|
| 1138 |
+
},
|
| 1139 |
+
{
|
| 1140 |
+
"relation": "imports_from",
|
| 1141 |
+
"confidence": "EXTRACTED",
|
| 1142 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 1143 |
+
"source_location": "L17",
|
| 1144 |
+
"weight": 1.0,
|
| 1145 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py",
|
| 1146 |
+
"_tgt": "c_users_astra_desktop_hackon_debugzero_models_py",
|
| 1147 |
+
"source": "c_users_astra_desktop_hackon_debugzero_models_py",
|
| 1148 |
+
"target": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py",
|
| 1149 |
+
"confidence_score": 1.0
|
| 1150 |
+
},
|
| 1151 |
+
{
|
| 1152 |
+
"relation": "inherits",
|
| 1153 |
+
"confidence": "EXTRACTED",
|
| 1154 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py",
|
| 1155 |
+
"source_location": "L18",
|
| 1156 |
+
"weight": 1.0,
|
| 1157 |
+
"_src": "models_debugzeroaction",
|
| 1158 |
+
"_tgt": "action",
|
| 1159 |
+
"source": "models_debugzeroaction",
|
| 1160 |
+
"target": "action",
|
| 1161 |
+
"confidence_score": 1.0
|
| 1162 |
+
},
|
| 1163 |
+
{
|
| 1164 |
+
"relation": "rationale_for",
|
| 1165 |
+
"confidence": "EXTRACTED",
|
| 1166 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py",
|
| 1167 |
+
"source_location": "L19",
|
| 1168 |
+
"weight": 1.0,
|
| 1169 |
+
"_src": "models_rationale_19",
|
| 1170 |
+
"_tgt": "models_debugzeroaction",
|
| 1171 |
+
"source": "models_debugzeroaction",
|
| 1172 |
+
"target": "models_rationale_19",
|
| 1173 |
+
"confidence_score": 1.0
|
| 1174 |
+
},
|
| 1175 |
+
{
|
| 1176 |
+
"relation": "uses",
|
| 1177 |
+
"confidence": "INFERRED",
|
| 1178 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py",
|
| 1179 |
+
"source_location": "L46",
|
| 1180 |
+
"weight": 0.8,
|
| 1181 |
+
"_src": "app_rationale_61",
|
| 1182 |
+
"_tgt": "models_debugzeroaction",
|
| 1183 |
+
"source": "models_debugzeroaction",
|
| 1184 |
+
"target": "app_rationale_61",
|
| 1185 |
+
"confidence_score": 0.5
|
| 1186 |
+
},
|
| 1187 |
+
{
|
| 1188 |
+
"relation": "uses",
|
| 1189 |
+
"confidence": "INFERRED",
|
| 1190 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 1191 |
+
"source_location": "L19",
|
| 1192 |
+
"weight": 0.8,
|
| 1193 |
+
"_src": "debugzero_environment_debugzeroenvironment",
|
| 1194 |
+
"_tgt": "models_debugzeroaction",
|
| 1195 |
+
"source": "models_debugzeroaction",
|
| 1196 |
+
"target": "debugzero_environment_debugzeroenvironment",
|
| 1197 |
+
"confidence_score": 0.5
|
| 1198 |
+
},
|
| 1199 |
+
{
|
| 1200 |
+
"relation": "uses",
|
| 1201 |
+
"confidence": "INFERRED",
|
| 1202 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 1203 |
+
"source_location": "L19",
|
| 1204 |
+
"weight": 0.8,
|
| 1205 |
+
"_src": "debugzero_environment_rationale_39",
|
| 1206 |
+
"_tgt": "models_debugzeroaction",
|
| 1207 |
+
"source": "models_debugzeroaction",
|
| 1208 |
+
"target": "debugzero_environment_rationale_39",
|
| 1209 |
+
"confidence_score": 0.5
|
| 1210 |
+
},
|
| 1211 |
+
{
|
| 1212 |
+
"relation": "calls",
|
| 1213 |
+
"confidence": "INFERRED",
|
| 1214 |
+
"confidence_score": 0.8,
|
| 1215 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py",
|
| 1216 |
+
"source_location": "L15",
|
| 1217 |
+
"weight": 1.0,
|
| 1218 |
+
"_src": "run_episode_test_local_env",
|
| 1219 |
+
"_tgt": "models_debugzeroaction",
|
| 1220 |
+
"source": "models_debugzeroaction",
|
| 1221 |
+
"target": "run_episode_test_local_env"
|
| 1222 |
+
},
|
| 1223 |
+
{
|
| 1224 |
+
"relation": "inherits",
|
| 1225 |
+
"confidence": "EXTRACTED",
|
| 1226 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py",
|
| 1227 |
+
"source_location": "L25",
|
| 1228 |
+
"weight": 1.0,
|
| 1229 |
+
"_src": "models_debugzeroobservation",
|
| 1230 |
+
"_tgt": "observation",
|
| 1231 |
+
"source": "models_debugzeroobservation",
|
| 1232 |
+
"target": "observation",
|
| 1233 |
+
"confidence_score": 1.0
|
| 1234 |
+
},
|
| 1235 |
+
{
|
| 1236 |
+
"relation": "rationale_for",
|
| 1237 |
+
"confidence": "EXTRACTED",
|
| 1238 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py",
|
| 1239 |
+
"source_location": "L26",
|
| 1240 |
+
"weight": 1.0,
|
| 1241 |
+
"_src": "models_rationale_26",
|
| 1242 |
+
"_tgt": "models_debugzeroobservation",
|
| 1243 |
+
"source": "models_debugzeroobservation",
|
| 1244 |
+
"target": "models_rationale_26",
|
| 1245 |
+
"confidence_score": 1.0
|
| 1246 |
+
},
|
| 1247 |
+
{
|
| 1248 |
+
"relation": "uses",
|
| 1249 |
+
"confidence": "INFERRED",
|
| 1250 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py",
|
| 1251 |
+
"source_location": "L46",
|
| 1252 |
+
"weight": 0.8,
|
| 1253 |
+
"_src": "app_rationale_61",
|
| 1254 |
+
"_tgt": "models_debugzeroobservation",
|
| 1255 |
+
"source": "models_debugzeroobservation",
|
| 1256 |
+
"target": "app_rationale_61",
|
| 1257 |
+
"confidence_score": 0.5
|
| 1258 |
+
},
|
| 1259 |
+
{
|
| 1260 |
+
"relation": "uses",
|
| 1261 |
+
"confidence": "INFERRED",
|
| 1262 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 1263 |
+
"source_location": "L19",
|
| 1264 |
+
"weight": 0.8,
|
| 1265 |
+
"_src": "debugzero_environment_debugzeroenvironment",
|
| 1266 |
+
"_tgt": "models_debugzeroobservation",
|
| 1267 |
+
"source": "models_debugzeroobservation",
|
| 1268 |
+
"target": "debugzero_environment_debugzeroenvironment",
|
| 1269 |
+
"confidence_score": 0.5
|
| 1270 |
+
},
|
| 1271 |
+
{
|
| 1272 |
+
"relation": "uses",
|
| 1273 |
+
"confidence": "INFERRED",
|
| 1274 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 1275 |
+
"source_location": "L19",
|
| 1276 |
+
"weight": 0.8,
|
| 1277 |
+
"_src": "debugzero_environment_rationale_39",
|
| 1278 |
+
"_tgt": "models_debugzeroobservation",
|
| 1279 |
+
"source": "models_debugzeroobservation",
|
| 1280 |
+
"target": "debugzero_environment_rationale_39",
|
| 1281 |
+
"confidence_score": 0.5
|
| 1282 |
+
},
|
| 1283 |
+
{
|
| 1284 |
+
"relation": "calls",
|
| 1285 |
+
"confidence": "INFERRED",
|
| 1286 |
+
"confidence_score": 0.8,
|
| 1287 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 1288 |
+
"source_location": "L67",
|
| 1289 |
+
"weight": 1.0,
|
| 1290 |
+
"_src": "debugzero_environment_debugzeroenvironment_reset",
|
| 1291 |
+
"_tgt": "models_debugzeroobservation",
|
| 1292 |
+
"source": "models_debugzeroobservation",
|
| 1293 |
+
"target": "debugzero_environment_debugzeroenvironment_reset"
|
| 1294 |
+
},
|
| 1295 |
+
{
|
| 1296 |
+
"relation": "calls",
|
| 1297 |
+
"confidence": "INFERRED",
|
| 1298 |
+
"confidence_score": 0.8,
|
| 1299 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 1300 |
+
"source_location": "L95",
|
| 1301 |
+
"weight": 1.0,
|
| 1302 |
+
"_src": "debugzero_environment_debugzeroenvironment_step",
|
| 1303 |
+
"_tgt": "models_debugzeroobservation",
|
| 1304 |
+
"source": "models_debugzeroobservation",
|
| 1305 |
+
"target": "debugzero_environment_debugzeroenvironment_step"
|
| 1306 |
+
},
|
| 1307 |
+
{
|
| 1308 |
+
"relation": "inherits",
|
| 1309 |
+
"confidence": "EXTRACTED",
|
| 1310 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py",
|
| 1311 |
+
"source_location": "L34",
|
| 1312 |
+
"weight": 1.0,
|
| 1313 |
+
"_src": "models_debugzerostate",
|
| 1314 |
+
"_tgt": "state",
|
| 1315 |
+
"source": "models_debugzerostate",
|
| 1316 |
+
"target": "state",
|
| 1317 |
+
"confidence_score": 1.0
|
| 1318 |
+
},
|
| 1319 |
+
{
|
| 1320 |
+
"relation": "rationale_for",
|
| 1321 |
+
"confidence": "EXTRACTED",
|
| 1322 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\models.py",
|
| 1323 |
+
"source_location": "L35",
|
| 1324 |
+
"weight": 1.0,
|
| 1325 |
+
"_src": "models_rationale_35",
|
| 1326 |
+
"_tgt": "models_debugzerostate",
|
| 1327 |
+
"source": "models_debugzerostate",
|
| 1328 |
+
"target": "models_rationale_35",
|
| 1329 |
+
"confidence_score": 1.0
|
| 1330 |
+
},
|
| 1331 |
+
{
|
| 1332 |
+
"relation": "uses",
|
| 1333 |
+
"confidence": "INFERRED",
|
| 1334 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 1335 |
+
"source_location": "L19",
|
| 1336 |
+
"weight": 0.8,
|
| 1337 |
+
"_src": "debugzero_environment_debugzeroenvironment",
|
| 1338 |
+
"_tgt": "models_debugzerostate",
|
| 1339 |
+
"source": "models_debugzerostate",
|
| 1340 |
+
"target": "debugzero_environment_debugzeroenvironment",
|
| 1341 |
+
"confidence_score": 0.5
|
| 1342 |
+
},
|
| 1343 |
+
{
|
| 1344 |
+
"relation": "uses",
|
| 1345 |
+
"confidence": "INFERRED",
|
| 1346 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 1347 |
+
"source_location": "L19",
|
| 1348 |
+
"weight": 0.8,
|
| 1349 |
+
"_src": "debugzero_environment_rationale_39",
|
| 1350 |
+
"_tgt": "models_debugzerostate",
|
| 1351 |
+
"source": "models_debugzerostate",
|
| 1352 |
+
"target": "debugzero_environment_rationale_39",
|
| 1353 |
+
"confidence_score": 0.5
|
| 1354 |
+
},
|
| 1355 |
+
{
|
| 1356 |
+
"relation": "calls",
|
| 1357 |
+
"confidence": "INFERRED",
|
| 1358 |
+
"confidence_score": 0.8,
|
| 1359 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 1360 |
+
"source_location": "L46",
|
| 1361 |
+
"weight": 1.0,
|
| 1362 |
+
"_src": "debugzero_environment_debugzeroenvironment_init",
|
| 1363 |
+
"_tgt": "models_debugzerostate",
|
| 1364 |
+
"source": "models_debugzerostate",
|
| 1365 |
+
"target": "debugzero_environment_debugzeroenvironment_init"
|
| 1366 |
+
},
|
| 1367 |
+
{
|
| 1368 |
+
"relation": "calls",
|
| 1369 |
+
"confidence": "INFERRED",
|
| 1370 |
+
"confidence_score": 0.8,
|
| 1371 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 1372 |
+
"source_location": "L57",
|
| 1373 |
+
"weight": 1.0,
|
| 1374 |
+
"_src": "debugzero_environment_debugzeroenvironment_reset",
|
| 1375 |
+
"_tgt": "models_debugzerostate",
|
| 1376 |
+
"source": "models_debugzerostate",
|
| 1377 |
+
"target": "debugzero_environment_debugzeroenvironment_reset"
|
| 1378 |
+
},
|
| 1379 |
+
{
|
| 1380 |
+
"relation": "contains",
|
| 1381 |
+
"confidence": "EXTRACTED",
|
| 1382 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py",
|
| 1383 |
+
"source_location": "L7",
|
| 1384 |
+
"weight": 1.0,
|
| 1385 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_run_episode_py",
|
| 1386 |
+
"_tgt": "run_episode_test_local_env",
|
| 1387 |
+
"source": "c_users_astra_desktop_hackon_debugzero_run_episode_py",
|
| 1388 |
+
"target": "run_episode_test_local_env",
|
| 1389 |
+
"confidence_score": 1.0
|
| 1390 |
+
},
|
| 1391 |
+
{
|
| 1392 |
+
"relation": "calls",
|
| 1393 |
+
"confidence": "INFERRED",
|
| 1394 |
+
"confidence_score": 0.8,
|
| 1395 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py",
|
| 1396 |
+
"source_location": "L9",
|
| 1397 |
+
"weight": 1.0,
|
| 1398 |
+
"_src": "run_episode_test_local_env",
|
| 1399 |
+
"_tgt": "debugzero_environment_debugzeroenvironment",
|
| 1400 |
+
"source": "run_episode_test_local_env",
|
| 1401 |
+
"target": "debugzero_environment_debugzeroenvironment"
|
| 1402 |
+
},
|
| 1403 |
+
{
|
| 1404 |
+
"relation": "calls",
|
| 1405 |
+
"confidence": "INFERRED",
|
| 1406 |
+
"confidence_score": 0.8,
|
| 1407 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py",
|
| 1408 |
+
"source_location": "L10",
|
| 1409 |
+
"weight": 1.0,
|
| 1410 |
+
"_src": "run_episode_test_local_env",
|
| 1411 |
+
"_tgt": "debugzero_environment_debugzeroenvironment_reset",
|
| 1412 |
+
"source": "run_episode_test_local_env",
|
| 1413 |
+
"target": "debugzero_environment_debugzeroenvironment_reset"
|
| 1414 |
+
},
|
| 1415 |
+
{
|
| 1416 |
+
"relation": "calls",
|
| 1417 |
+
"confidence": "INFERRED",
|
| 1418 |
+
"confidence_score": 0.8,
|
| 1419 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\run_episode.py",
|
| 1420 |
+
"source_location": "L16",
|
| 1421 |
+
"weight": 1.0,
|
| 1422 |
+
"_src": "run_episode_test_local_env",
|
| 1423 |
+
"_tgt": "debugzero_environment_debugzeroenvironment_step",
|
| 1424 |
+
"source": "run_episode_test_local_env",
|
| 1425 |
+
"target": "debugzero_environment_debugzeroenvironment_step"
|
| 1426 |
+
},
|
| 1427 |
+
{
|
| 1428 |
+
"relation": "contains",
|
| 1429 |
+
"confidence": "EXTRACTED",
|
| 1430 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\plausibility_eval.py",
|
| 1431 |
+
"source_location": "L5",
|
| 1432 |
+
"weight": 1.0,
|
| 1433 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_eval_plausibility_eval_py",
|
| 1434 |
+
"_tgt": "plausibility_eval_evaluate_navidadkhah_plausibility",
|
| 1435 |
+
"source": "c_users_astra_desktop_hackon_debugzero_eval_plausibility_eval_py",
|
| 1436 |
+
"target": "plausibility_eval_evaluate_navidadkhah_plausibility",
|
| 1437 |
+
"confidence_score": 1.0
|
| 1438 |
+
},
|
| 1439 |
+
{
|
| 1440 |
+
"relation": "rationale_for",
|
| 1441 |
+
"confidence": "EXTRACTED",
|
| 1442 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\plausibility_eval.py",
|
| 1443 |
+
"source_location": "L6",
|
| 1444 |
+
"weight": 1.0,
|
| 1445 |
+
"_src": "plausibility_eval_rationale_6",
|
| 1446 |
+
"_tgt": "plausibility_eval_evaluate_navidadkhah_plausibility",
|
| 1447 |
+
"source": "plausibility_eval_evaluate_navidadkhah_plausibility",
|
| 1448 |
+
"target": "plausibility_eval_rationale_6",
|
| 1449 |
+
"confidence_score": 1.0
|
| 1450 |
+
},
|
| 1451 |
+
{
|
| 1452 |
+
"relation": "calls",
|
| 1453 |
+
"confidence": "INFERRED",
|
| 1454 |
+
"confidence_score": 0.8,
|
| 1455 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\plausibility_eval.py",
|
| 1456 |
+
"source_location": "L17",
|
| 1457 |
+
"weight": 1.0,
|
| 1458 |
+
"_src": "plausibility_eval_evaluate_navidadkhah_plausibility",
|
| 1459 |
+
"_tgt": "plausibility_compute_ast_distance",
|
| 1460 |
+
"source": "plausibility_eval_evaluate_navidadkhah_plausibility",
|
| 1461 |
+
"target": "plausibility_compute_ast_distance"
|
| 1462 |
+
},
|
| 1463 |
+
{
|
| 1464 |
+
"relation": "contains",
|
| 1465 |
+
"confidence": "EXTRACTED",
|
| 1466 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py",
|
| 1467 |
+
"source_location": "L10",
|
| 1468 |
+
"weight": 1.0,
|
| 1469 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py",
|
| 1470 |
+
"_tgt": "test_bug_injector_test_missing_base_case",
|
| 1471 |
+
"source": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py",
|
| 1472 |
+
"target": "test_bug_injector_test_missing_base_case",
|
| 1473 |
+
"confidence_score": 1.0
|
| 1474 |
+
},
|
| 1475 |
+
{
|
| 1476 |
+
"relation": "contains",
|
| 1477 |
+
"confidence": "EXTRACTED",
|
| 1478 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py",
|
| 1479 |
+
"source_location": "L17",
|
| 1480 |
+
"weight": 1.0,
|
| 1481 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py",
|
| 1482 |
+
"_tgt": "test_bug_injector_test_off_by_one",
|
| 1483 |
+
"source": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py",
|
| 1484 |
+
"target": "test_bug_injector_test_off_by_one",
|
| 1485 |
+
"confidence_score": 1.0
|
| 1486 |
+
},
|
| 1487 |
+
{
|
| 1488 |
+
"relation": "contains",
|
| 1489 |
+
"confidence": "EXTRACTED",
|
| 1490 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py",
|
| 1491 |
+
"source_location": "L25",
|
| 1492 |
+
"weight": 1.0,
|
| 1493 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py",
|
| 1494 |
+
"_tgt": "test_bug_injector_test_loop_boundary_shift",
|
| 1495 |
+
"source": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py",
|
| 1496 |
+
"target": "test_bug_injector_test_loop_boundary_shift",
|
| 1497 |
+
"confidence_score": 1.0
|
| 1498 |
+
},
|
| 1499 |
+
{
|
| 1500 |
+
"relation": "contains",
|
| 1501 |
+
"confidence": "EXTRACTED",
|
| 1502 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py",
|
| 1503 |
+
"source_location": "L32",
|
| 1504 |
+
"weight": 1.0,
|
| 1505 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py",
|
| 1506 |
+
"_tgt": "test_bug_injector_test_wrong_builtin",
|
| 1507 |
+
"source": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py",
|
| 1508 |
+
"target": "test_bug_injector_test_wrong_builtin",
|
| 1509 |
+
"confidence_score": 1.0
|
| 1510 |
+
},
|
| 1511 |
+
{
|
| 1512 |
+
"relation": "contains",
|
| 1513 |
+
"confidence": "EXTRACTED",
|
| 1514 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py",
|
| 1515 |
+
"source_location": "L38",
|
| 1516 |
+
"weight": 1.0,
|
| 1517 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py",
|
| 1518 |
+
"_tgt": "test_bug_injector_test_condition_negation",
|
| 1519 |
+
"source": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py",
|
| 1520 |
+
"target": "test_bug_injector_test_condition_negation",
|
| 1521 |
+
"confidence_score": 1.0
|
| 1522 |
+
},
|
| 1523 |
+
{
|
| 1524 |
+
"relation": "contains",
|
| 1525 |
+
"confidence": "EXTRACTED",
|
| 1526 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py",
|
| 1527 |
+
"source_location": "L44",
|
| 1528 |
+
"weight": 1.0,
|
| 1529 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py",
|
| 1530 |
+
"_tgt": "test_bug_injector_test_safety_check_blocks",
|
| 1531 |
+
"source": "c_users_astra_desktop_hackon_debugzero_eval_test_bug_injector_py",
|
| 1532 |
+
"target": "test_bug_injector_test_safety_check_blocks",
|
| 1533 |
+
"confidence_score": 1.0
|
| 1534 |
+
},
|
| 1535 |
+
{
|
| 1536 |
+
"relation": "calls",
|
| 1537 |
+
"confidence": "INFERRED",
|
| 1538 |
+
"confidence_score": 0.8,
|
| 1539 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py",
|
| 1540 |
+
"source_location": "L11",
|
| 1541 |
+
"weight": 1.0,
|
| 1542 |
+
"_src": "test_bug_injector_test_missing_base_case",
|
| 1543 |
+
"_tgt": "bug_injector_inject_bug",
|
| 1544 |
+
"source": "test_bug_injector_test_missing_base_case",
|
| 1545 |
+
"target": "bug_injector_inject_bug"
|
| 1546 |
+
},
|
| 1547 |
+
{
|
| 1548 |
+
"relation": "calls",
|
| 1549 |
+
"confidence": "INFERRED",
|
| 1550 |
+
"confidence_score": 0.8,
|
| 1551 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py",
|
| 1552 |
+
"source_location": "L19",
|
| 1553 |
+
"weight": 1.0,
|
| 1554 |
+
"_src": "test_bug_injector_test_off_by_one",
|
| 1555 |
+
"_tgt": "bug_injector_inject_bug",
|
| 1556 |
+
"source": "test_bug_injector_test_off_by_one",
|
| 1557 |
+
"target": "bug_injector_inject_bug"
|
| 1558 |
+
},
|
| 1559 |
+
{
|
| 1560 |
+
"relation": "calls",
|
| 1561 |
+
"confidence": "INFERRED",
|
| 1562 |
+
"confidence_score": 0.8,
|
| 1563 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py",
|
| 1564 |
+
"source_location": "L26",
|
| 1565 |
+
"weight": 1.0,
|
| 1566 |
+
"_src": "test_bug_injector_test_loop_boundary_shift",
|
| 1567 |
+
"_tgt": "bug_injector_inject_bug",
|
| 1568 |
+
"source": "test_bug_injector_test_loop_boundary_shift",
|
| 1569 |
+
"target": "bug_injector_inject_bug"
|
| 1570 |
+
},
|
| 1571 |
+
{
|
| 1572 |
+
"relation": "calls",
|
| 1573 |
+
"confidence": "INFERRED",
|
| 1574 |
+
"confidence_score": 0.8,
|
| 1575 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py",
|
| 1576 |
+
"source_location": "L33",
|
| 1577 |
+
"weight": 1.0,
|
| 1578 |
+
"_src": "test_bug_injector_test_wrong_builtin",
|
| 1579 |
+
"_tgt": "bug_injector_inject_bug",
|
| 1580 |
+
"source": "test_bug_injector_test_wrong_builtin",
|
| 1581 |
+
"target": "bug_injector_inject_bug"
|
| 1582 |
+
},
|
| 1583 |
+
{
|
| 1584 |
+
"relation": "calls",
|
| 1585 |
+
"confidence": "INFERRED",
|
| 1586 |
+
"confidence_score": 0.8,
|
| 1587 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py",
|
| 1588 |
+
"source_location": "L40",
|
| 1589 |
+
"weight": 1.0,
|
| 1590 |
+
"_src": "test_bug_injector_test_condition_negation",
|
| 1591 |
+
"_tgt": "bug_injector_inject_bug",
|
| 1592 |
+
"source": "test_bug_injector_test_condition_negation",
|
| 1593 |
+
"target": "bug_injector_inject_bug"
|
| 1594 |
+
},
|
| 1595 |
+
{
|
| 1596 |
+
"relation": "calls",
|
| 1597 |
+
"confidence": "INFERRED",
|
| 1598 |
+
"confidence_score": 0.8,
|
| 1599 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_bug_injector.py",
|
| 1600 |
+
"source_location": "L48",
|
| 1601 |
+
"weight": 1.0,
|
| 1602 |
+
"_src": "test_bug_injector_test_safety_check_blocks",
|
| 1603 |
+
"_tgt": "bug_injector_is_safe_injection",
|
| 1604 |
+
"source": "test_bug_injector_test_safety_check_blocks",
|
| 1605 |
+
"target": "bug_injector_is_safe_injection"
|
| 1606 |
+
},
|
| 1607 |
+
{
|
| 1608 |
+
"relation": "contains",
|
| 1609 |
+
"confidence": "EXTRACTED",
|
| 1610 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py",
|
| 1611 |
+
"source_location": "L4",
|
| 1612 |
+
"weight": 1.0,
|
| 1613 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_eval_test_executor_py",
|
| 1614 |
+
"_tgt": "test_executor_test_executor_is_safe",
|
| 1615 |
+
"source": "c_users_astra_desktop_hackon_debugzero_eval_test_executor_py",
|
| 1616 |
+
"target": "test_executor_test_executor_is_safe",
|
| 1617 |
+
"confidence_score": 1.0
|
| 1618 |
+
},
|
| 1619 |
+
{
|
| 1620 |
+
"relation": "contains",
|
| 1621 |
+
"confidence": "EXTRACTED",
|
| 1622 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py",
|
| 1623 |
+
"source_location": "L16",
|
| 1624 |
+
"weight": 1.0,
|
| 1625 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_eval_test_executor_py",
|
| 1626 |
+
"_tgt": "test_executor_test_execute_code",
|
| 1627 |
+
"source": "c_users_astra_desktop_hackon_debugzero_eval_test_executor_py",
|
| 1628 |
+
"target": "test_executor_test_execute_code",
|
| 1629 |
+
"confidence_score": 1.0
|
| 1630 |
+
},
|
| 1631 |
+
{
|
| 1632 |
+
"relation": "calls",
|
| 1633 |
+
"confidence": "INFERRED",
|
| 1634 |
+
"confidence_score": 0.8,
|
| 1635 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py",
|
| 1636 |
+
"source_location": "L5",
|
| 1637 |
+
"weight": 1.0,
|
| 1638 |
+
"_src": "test_executor_test_executor_is_safe",
|
| 1639 |
+
"_tgt": "executor_is_safe",
|
| 1640 |
+
"source": "test_executor_test_executor_is_safe",
|
| 1641 |
+
"target": "executor_is_safe"
|
| 1642 |
+
},
|
| 1643 |
+
{
|
| 1644 |
+
"relation": "calls",
|
| 1645 |
+
"confidence": "INFERRED",
|
| 1646 |
+
"confidence_score": 0.8,
|
| 1647 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\eval\\test_executor.py",
|
| 1648 |
+
"source_location": "L19",
|
| 1649 |
+
"weight": 1.0,
|
| 1650 |
+
"_src": "test_executor_test_execute_code",
|
| 1651 |
+
"_tgt": "executor_execute_code",
|
| 1652 |
+
"source": "test_executor_test_execute_code",
|
| 1653 |
+
"target": "executor_execute_code"
|
| 1654 |
+
},
|
| 1655 |
+
{
|
| 1656 |
+
"relation": "imports_from",
|
| 1657 |
+
"confidence": "EXTRACTED",
|
| 1658 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py",
|
| 1659 |
+
"source_location": "L44",
|
| 1660 |
+
"weight": 1.0,
|
| 1661 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_server_app_py",
|
| 1662 |
+
"_tgt": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py",
|
| 1663 |
+
"source": "c_users_astra_desktop_hackon_debugzero_server_app_py",
|
| 1664 |
+
"target": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py",
|
| 1665 |
+
"confidence_score": 1.0
|
| 1666 |
+
},
|
| 1667 |
+
{
|
| 1668 |
+
"relation": "contains",
|
| 1669 |
+
"confidence": "EXTRACTED",
|
| 1670 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py",
|
| 1671 |
+
"source_location": "L60",
|
| 1672 |
+
"weight": 1.0,
|
| 1673 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_server_app_py",
|
| 1674 |
+
"_tgt": "app_main",
|
| 1675 |
+
"source": "c_users_astra_desktop_hackon_debugzero_server_app_py",
|
| 1676 |
+
"target": "app_main",
|
| 1677 |
+
"confidence_score": 1.0
|
| 1678 |
+
},
|
| 1679 |
+
{
|
| 1680 |
+
"relation": "rationale_for",
|
| 1681 |
+
"confidence": "EXTRACTED",
|
| 1682 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py",
|
| 1683 |
+
"source_location": "L61",
|
| 1684 |
+
"weight": 1.0,
|
| 1685 |
+
"_src": "app_rationale_61",
|
| 1686 |
+
"_tgt": "app_main",
|
| 1687 |
+
"source": "app_main",
|
| 1688 |
+
"target": "app_rationale_61",
|
| 1689 |
+
"confidence_score": 1.0
|
| 1690 |
+
},
|
| 1691 |
+
{
|
| 1692 |
+
"relation": "uses",
|
| 1693 |
+
"confidence": "INFERRED",
|
| 1694 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\app.py",
|
| 1695 |
+
"source_location": "L47",
|
| 1696 |
+
"weight": 0.8,
|
| 1697 |
+
"_src": "app_rationale_61",
|
| 1698 |
+
"_tgt": "debugzero_environment_debugzeroenvironment",
|
| 1699 |
+
"source": "app_rationale_61",
|
| 1700 |
+
"target": "debugzero_environment_debugzeroenvironment",
|
| 1701 |
+
"confidence_score": 0.5
|
| 1702 |
+
},
|
| 1703 |
+
{
|
| 1704 |
+
"relation": "contains",
|
| 1705 |
+
"confidence": "EXTRACTED",
|
| 1706 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 1707 |
+
"source_location": "L13",
|
| 1708 |
+
"weight": 1.0,
|
| 1709 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_server_bug_injector_py",
|
| 1710 |
+
"_tgt": "bug_injector_is_safe_injection",
|
| 1711 |
+
"source": "c_users_astra_desktop_hackon_debugzero_server_bug_injector_py",
|
| 1712 |
+
"target": "bug_injector_is_safe_injection",
|
| 1713 |
+
"confidence_score": 1.0
|
| 1714 |
+
},
|
| 1715 |
+
{
|
| 1716 |
+
"relation": "contains",
|
| 1717 |
+
"confidence": "EXTRACTED",
|
| 1718 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 1719 |
+
"source_location": "L19",
|
| 1720 |
+
"weight": 1.0,
|
| 1721 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_server_bug_injector_py",
|
| 1722 |
+
"_tgt": "bug_injector_buginjectorvisitor",
|
| 1723 |
+
"source": "c_users_astra_desktop_hackon_debugzero_server_bug_injector_py",
|
| 1724 |
+
"target": "bug_injector_buginjectorvisitor",
|
| 1725 |
+
"confidence_score": 1.0
|
| 1726 |
+
},
|
| 1727 |
+
{
|
| 1728 |
+
"relation": "contains",
|
| 1729 |
+
"confidence": "EXTRACTED",
|
| 1730 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 1731 |
+
"source_location": "L159",
|
| 1732 |
+
"weight": 1.0,
|
| 1733 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_server_bug_injector_py",
|
| 1734 |
+
"_tgt": "bug_injector_inject_bug",
|
| 1735 |
+
"source": "c_users_astra_desktop_hackon_debugzero_server_bug_injector_py",
|
| 1736 |
+
"target": "bug_injector_inject_bug",
|
| 1737 |
+
"confidence_score": 1.0
|
| 1738 |
+
},
|
| 1739 |
+
{
|
| 1740 |
+
"relation": "imports_from",
|
| 1741 |
+
"confidence": "EXTRACTED",
|
| 1742 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 1743 |
+
"source_location": "L23",
|
| 1744 |
+
"weight": 1.0,
|
| 1745 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py",
|
| 1746 |
+
"_tgt": "c_users_astra_desktop_hackon_debugzero_server_bug_injector_py",
|
| 1747 |
+
"source": "c_users_astra_desktop_hackon_debugzero_server_bug_injector_py",
|
| 1748 |
+
"target": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py",
|
| 1749 |
+
"confidence_score": 1.0
|
| 1750 |
+
},
|
| 1751 |
+
{
|
| 1752 |
+
"relation": "calls",
|
| 1753 |
+
"confidence": "EXTRACTED",
|
| 1754 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 1755 |
+
"source_location": "L183",
|
| 1756 |
+
"weight": 1.0,
|
| 1757 |
+
"_src": "bug_injector_inject_bug",
|
| 1758 |
+
"_tgt": "bug_injector_is_safe_injection",
|
| 1759 |
+
"source": "bug_injector_is_safe_injection",
|
| 1760 |
+
"target": "bug_injector_inject_bug",
|
| 1761 |
+
"confidence_score": 1.0
|
| 1762 |
+
},
|
| 1763 |
+
{
|
| 1764 |
+
"relation": "method",
|
| 1765 |
+
"confidence": "EXTRACTED",
|
| 1766 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 1767 |
+
"source_location": "L20",
|
| 1768 |
+
"weight": 1.0,
|
| 1769 |
+
"_src": "bug_injector_buginjectorvisitor",
|
| 1770 |
+
"_tgt": "bug_injector_buginjectorvisitor_init",
|
| 1771 |
+
"source": "bug_injector_buginjectorvisitor",
|
| 1772 |
+
"target": "bug_injector_buginjectorvisitor_init",
|
| 1773 |
+
"confidence_score": 1.0
|
| 1774 |
+
},
|
| 1775 |
+
{
|
| 1776 |
+
"relation": "method",
|
| 1777 |
+
"confidence": "EXTRACTED",
|
| 1778 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 1779 |
+
"source_location": "L25",
|
| 1780 |
+
"weight": 1.0,
|
| 1781 |
+
"_src": "bug_injector_buginjectorvisitor",
|
| 1782 |
+
"_tgt": "bug_injector_buginjectorvisitor_visit_constant",
|
| 1783 |
+
"source": "bug_injector_buginjectorvisitor",
|
| 1784 |
+
"target": "bug_injector_buginjectorvisitor_visit_constant",
|
| 1785 |
+
"confidence_score": 1.0
|
| 1786 |
+
},
|
| 1787 |
+
{
|
| 1788 |
+
"relation": "method",
|
| 1789 |
+
"confidence": "EXTRACTED",
|
| 1790 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 1791 |
+
"source_location": "L38",
|
| 1792 |
+
"weight": 1.0,
|
| 1793 |
+
"_src": "bug_injector_buginjectorvisitor",
|
| 1794 |
+
"_tgt": "bug_injector_buginjectorvisitor_visit_compare",
|
| 1795 |
+
"source": "bug_injector_buginjectorvisitor",
|
| 1796 |
+
"target": "bug_injector_buginjectorvisitor_visit_compare",
|
| 1797 |
+
"confidence_score": 1.0
|
| 1798 |
+
},
|
| 1799 |
+
{
|
| 1800 |
+
"relation": "method",
|
| 1801 |
+
"confidence": "EXTRACTED",
|
| 1802 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 1803 |
+
"source_location": "L64",
|
| 1804 |
+
"weight": 1.0,
|
| 1805 |
+
"_src": "bug_injector_buginjectorvisitor",
|
| 1806 |
+
"_tgt": "bug_injector_buginjectorvisitor_visit_binop",
|
| 1807 |
+
"source": "bug_injector_buginjectorvisitor",
|
| 1808 |
+
"target": "bug_injector_buginjectorvisitor_visit_binop",
|
| 1809 |
+
"confidence_score": 1.0
|
| 1810 |
+
},
|
| 1811 |
+
{
|
| 1812 |
+
"relation": "method",
|
| 1813 |
+
"confidence": "EXTRACTED",
|
| 1814 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 1815 |
+
"source_location": "L84",
|
| 1816 |
+
"weight": 1.0,
|
| 1817 |
+
"_src": "bug_injector_buginjectorvisitor",
|
| 1818 |
+
"_tgt": "bug_injector_buginjectorvisitor_visit_call",
|
| 1819 |
+
"source": "bug_injector_buginjectorvisitor",
|
| 1820 |
+
"target": "bug_injector_buginjectorvisitor_visit_call",
|
| 1821 |
+
"confidence_score": 1.0
|
| 1822 |
+
},
|
| 1823 |
+
{
|
| 1824 |
+
"relation": "method",
|
| 1825 |
+
"confidence": "EXTRACTED",
|
| 1826 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 1827 |
+
"source_location": "L108",
|
| 1828 |
+
"weight": 1.0,
|
| 1829 |
+
"_src": "bug_injector_buginjectorvisitor",
|
| 1830 |
+
"_tgt": "bug_injector_buginjectorvisitor_visit_if",
|
| 1831 |
+
"source": "bug_injector_buginjectorvisitor",
|
| 1832 |
+
"target": "bug_injector_buginjectorvisitor_visit_if",
|
| 1833 |
+
"confidence_score": 1.0
|
| 1834 |
+
},
|
| 1835 |
+
{
|
| 1836 |
+
"relation": "method",
|
| 1837 |
+
"confidence": "EXTRACTED",
|
| 1838 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 1839 |
+
"source_location": "L127",
|
| 1840 |
+
"weight": 1.0,
|
| 1841 |
+
"_src": "bug_injector_buginjectorvisitor",
|
| 1842 |
+
"_tgt": "bug_injector_buginjectorvisitor_visit_slice",
|
| 1843 |
+
"source": "bug_injector_buginjectorvisitor",
|
| 1844 |
+
"target": "bug_injector_buginjectorvisitor_visit_slice",
|
| 1845 |
+
"confidence_score": 1.0
|
| 1846 |
+
},
|
| 1847 |
+
{
|
| 1848 |
+
"relation": "method",
|
| 1849 |
+
"confidence": "EXTRACTED",
|
| 1850 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 1851 |
+
"source_location": "L142",
|
| 1852 |
+
"weight": 1.0,
|
| 1853 |
+
"_src": "bug_injector_buginjectorvisitor",
|
| 1854 |
+
"_tgt": "bug_injector_buginjectorvisitor_visit_name",
|
| 1855 |
+
"source": "bug_injector_buginjectorvisitor",
|
| 1856 |
+
"target": "bug_injector_buginjectorvisitor_visit_name",
|
| 1857 |
+
"confidence_score": 1.0
|
| 1858 |
+
},
|
| 1859 |
+
{
|
| 1860 |
+
"relation": "method",
|
| 1861 |
+
"confidence": "EXTRACTED",
|
| 1862 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 1863 |
+
"source_location": "L146",
|
| 1864 |
+
"weight": 1.0,
|
| 1865 |
+
"_src": "bug_injector_buginjectorvisitor",
|
| 1866 |
+
"_tgt": "bug_injector_buginjectorvisitor_visit_assign",
|
| 1867 |
+
"source": "bug_injector_buginjectorvisitor",
|
| 1868 |
+
"target": "bug_injector_buginjectorvisitor_visit_assign",
|
| 1869 |
+
"confidence_score": 1.0
|
| 1870 |
+
},
|
| 1871 |
+
{
|
| 1872 |
+
"relation": "calls",
|
| 1873 |
+
"confidence": "EXTRACTED",
|
| 1874 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 1875 |
+
"source_location": "L172",
|
| 1876 |
+
"weight": 1.0,
|
| 1877 |
+
"_src": "bug_injector_inject_bug",
|
| 1878 |
+
"_tgt": "bug_injector_buginjectorvisitor",
|
| 1879 |
+
"source": "bug_injector_buginjectorvisitor",
|
| 1880 |
+
"target": "bug_injector_inject_bug",
|
| 1881 |
+
"confidence_score": 1.0
|
| 1882 |
+
},
|
| 1883 |
+
{
|
| 1884 |
+
"relation": "rationale_for",
|
| 1885 |
+
"confidence": "EXTRACTED",
|
| 1886 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\bug_injector.py",
|
| 1887 |
+
"source_location": "L160",
|
| 1888 |
+
"weight": 1.0,
|
| 1889 |
+
"_src": "bug_injector_rationale_160",
|
| 1890 |
+
"_tgt": "bug_injector_inject_bug",
|
| 1891 |
+
"source": "bug_injector_inject_bug",
|
| 1892 |
+
"target": "bug_injector_rationale_160",
|
| 1893 |
+
"confidence_score": 1.0
|
| 1894 |
+
},
|
| 1895 |
+
{
|
| 1896 |
+
"relation": "imports_from",
|
| 1897 |
+
"confidence": "EXTRACTED",
|
| 1898 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 1899 |
+
"source_location": "L22",
|
| 1900 |
+
"weight": 1.0,
|
| 1901 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py",
|
| 1902 |
+
"_tgt": "c_users_astra_desktop_hackon_debugzero_server_executor_py",
|
| 1903 |
+
"source": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py",
|
| 1904 |
+
"target": "c_users_astra_desktop_hackon_debugzero_server_executor_py",
|
| 1905 |
+
"confidence_score": 1.0
|
| 1906 |
+
},
|
| 1907 |
+
{
|
| 1908 |
+
"relation": "imports_from",
|
| 1909 |
+
"confidence": "EXTRACTED",
|
| 1910 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 1911 |
+
"source_location": "L24",
|
| 1912 |
+
"weight": 1.0,
|
| 1913 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py",
|
| 1914 |
+
"_tgt": "c_users_astra_desktop_hackon_debugzero_server_plausibility_py",
|
| 1915 |
+
"source": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py",
|
| 1916 |
+
"target": "c_users_astra_desktop_hackon_debugzero_server_plausibility_py",
|
| 1917 |
+
"confidence_score": 1.0
|
| 1918 |
+
},
|
| 1919 |
+
{
|
| 1920 |
+
"relation": "contains",
|
| 1921 |
+
"confidence": "EXTRACTED",
|
| 1922 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 1923 |
+
"source_location": "L38",
|
| 1924 |
+
"weight": 1.0,
|
| 1925 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py",
|
| 1926 |
+
"_tgt": "debugzero_environment_debugzeroenvironment",
|
| 1927 |
+
"source": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py",
|
| 1928 |
+
"target": "debugzero_environment_debugzeroenvironment",
|
| 1929 |
+
"confidence_score": 1.0
|
| 1930 |
+
},
|
| 1931 |
+
{
|
| 1932 |
+
"relation": "contains",
|
| 1933 |
+
"confidence": "EXTRACTED",
|
| 1934 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 1935 |
+
"source_location": "L127",
|
| 1936 |
+
"weight": 1.0,
|
| 1937 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py",
|
| 1938 |
+
"_tgt": "debugzero_environment_state",
|
| 1939 |
+
"source": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py",
|
| 1940 |
+
"target": "debugzero_environment_state",
|
| 1941 |
+
"confidence_score": 1.0
|
| 1942 |
+
},
|
| 1943 |
+
{
|
| 1944 |
+
"relation": "imports_from",
|
| 1945 |
+
"confidence": "EXTRACTED",
|
| 1946 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\__init__.py",
|
| 1947 |
+
"source_location": "L9",
|
| 1948 |
+
"weight": 1.0,
|
| 1949 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_server_init_py",
|
| 1950 |
+
"_tgt": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py",
|
| 1951 |
+
"source": "c_users_astra_desktop_hackon_debugzero_server_debugzero_environment_py",
|
| 1952 |
+
"target": "c_users_astra_desktop_hackon_debugzero_server_init_py",
|
| 1953 |
+
"confidence_score": 1.0
|
| 1954 |
+
},
|
| 1955 |
+
{
|
| 1956 |
+
"relation": "inherits",
|
| 1957 |
+
"confidence": "EXTRACTED",
|
| 1958 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 1959 |
+
"source_location": "L38",
|
| 1960 |
+
"weight": 1.0,
|
| 1961 |
+
"_src": "debugzero_environment_debugzeroenvironment",
|
| 1962 |
+
"_tgt": "environment",
|
| 1963 |
+
"source": "debugzero_environment_debugzeroenvironment",
|
| 1964 |
+
"target": "environment",
|
| 1965 |
+
"confidence_score": 1.0
|
| 1966 |
+
},
|
| 1967 |
+
{
|
| 1968 |
+
"relation": "method",
|
| 1969 |
+
"confidence": "EXTRACTED",
|
| 1970 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 1971 |
+
"source_location": "L45",
|
| 1972 |
+
"weight": 1.0,
|
| 1973 |
+
"_src": "debugzero_environment_debugzeroenvironment",
|
| 1974 |
+
"_tgt": "debugzero_environment_debugzeroenvironment_init",
|
| 1975 |
+
"source": "debugzero_environment_debugzeroenvironment",
|
| 1976 |
+
"target": "debugzero_environment_debugzeroenvironment_init",
|
| 1977 |
+
"confidence_score": 1.0
|
| 1978 |
+
},
|
| 1979 |
+
{
|
| 1980 |
+
"relation": "method",
|
| 1981 |
+
"confidence": "EXTRACTED",
|
| 1982 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 1983 |
+
"source_location": "L56",
|
| 1984 |
+
"weight": 1.0,
|
| 1985 |
+
"_src": "debugzero_environment_debugzeroenvironment",
|
| 1986 |
+
"_tgt": "debugzero_environment_debugzeroenvironment_reset",
|
| 1987 |
+
"source": "debugzero_environment_debugzeroenvironment",
|
| 1988 |
+
"target": "debugzero_environment_debugzeroenvironment_reset",
|
| 1989 |
+
"confidence_score": 1.0
|
| 1990 |
+
},
|
| 1991 |
+
{
|
| 1992 |
+
"relation": "method",
|
| 1993 |
+
"confidence": "EXTRACTED",
|
| 1994 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 1995 |
+
"source_location": "L77",
|
| 1996 |
+
"weight": 1.0,
|
| 1997 |
+
"_src": "debugzero_environment_debugzeroenvironment",
|
| 1998 |
+
"_tgt": "debugzero_environment_debugzeroenvironment_step",
|
| 1999 |
+
"source": "debugzero_environment_debugzeroenvironment",
|
| 2000 |
+
"target": "debugzero_environment_debugzeroenvironment_step",
|
| 2001 |
+
"confidence_score": 1.0
|
| 2002 |
+
},
|
| 2003 |
+
{
|
| 2004 |
+
"relation": "rationale_for",
|
| 2005 |
+
"confidence": "EXTRACTED",
|
| 2006 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 2007 |
+
"source_location": "L39",
|
| 2008 |
+
"weight": 1.0,
|
| 2009 |
+
"_src": "debugzero_environment_rationale_39",
|
| 2010 |
+
"_tgt": "debugzero_environment_debugzeroenvironment",
|
| 2011 |
+
"source": "debugzero_environment_debugzeroenvironment",
|
| 2012 |
+
"target": "debugzero_environment_rationale_39",
|
| 2013 |
+
"confidence_score": 1.0
|
| 2014 |
+
},
|
| 2015 |
+
{
|
| 2016 |
+
"relation": "uses",
|
| 2017 |
+
"confidence": "INFERRED",
|
| 2018 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 2019 |
+
"source_location": "L26",
|
| 2020 |
+
"weight": 0.8,
|
| 2021 |
+
"_src": "debugzero_environment_debugzeroenvironment",
|
| 2022 |
+
"_tgt": "executor_executionresult",
|
| 2023 |
+
"source": "debugzero_environment_debugzeroenvironment",
|
| 2024 |
+
"target": "executor_executionresult",
|
| 2025 |
+
"confidence_score": 0.5
|
| 2026 |
+
},
|
| 2027 |
+
{
|
| 2028 |
+
"relation": "calls",
|
| 2029 |
+
"confidence": "INFERRED",
|
| 2030 |
+
"confidence_score": 0.8,
|
| 2031 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 2032 |
+
"source_location": "L89",
|
| 2033 |
+
"weight": 1.0,
|
| 2034 |
+
"_src": "debugzero_environment_debugzeroenvironment_step",
|
| 2035 |
+
"_tgt": "executor_execute_code",
|
| 2036 |
+
"source": "debugzero_environment_debugzeroenvironment_step",
|
| 2037 |
+
"target": "executor_execute_code"
|
| 2038 |
+
},
|
| 2039 |
+
{
|
| 2040 |
+
"relation": "uses",
|
| 2041 |
+
"confidence": "INFERRED",
|
| 2042 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\debugZero_environment.py",
|
| 2043 |
+
"source_location": "L26",
|
| 2044 |
+
"weight": 0.8,
|
| 2045 |
+
"_src": "debugzero_environment_rationale_39",
|
| 2046 |
+
"_tgt": "executor_executionresult",
|
| 2047 |
+
"source": "debugzero_environment_rationale_39",
|
| 2048 |
+
"target": "executor_executionresult",
|
| 2049 |
+
"confidence_score": 0.5
|
| 2050 |
+
},
|
| 2051 |
+
{
|
| 2052 |
+
"relation": "contains",
|
| 2053 |
+
"confidence": "EXTRACTED",
|
| 2054 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py",
|
| 2055 |
+
"source_location": "L9",
|
| 2056 |
+
"weight": 1.0,
|
| 2057 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_server_executor_py",
|
| 2058 |
+
"_tgt": "executor_is_safe",
|
| 2059 |
+
"source": "c_users_astra_desktop_hackon_debugzero_server_executor_py",
|
| 2060 |
+
"target": "executor_is_safe",
|
| 2061 |
+
"confidence_score": 1.0
|
| 2062 |
+
},
|
| 2063 |
+
{
|
| 2064 |
+
"relation": "contains",
|
| 2065 |
+
"confidence": "EXTRACTED",
|
| 2066 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py",
|
| 2067 |
+
"source_location": "L44",
|
| 2068 |
+
"weight": 1.0,
|
| 2069 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_server_executor_py",
|
| 2070 |
+
"_tgt": "executor_executionresult",
|
| 2071 |
+
"source": "c_users_astra_desktop_hackon_debugzero_server_executor_py",
|
| 2072 |
+
"target": "executor_executionresult",
|
| 2073 |
+
"confidence_score": 1.0
|
| 2074 |
+
},
|
| 2075 |
+
{
|
| 2076 |
+
"relation": "contains",
|
| 2077 |
+
"confidence": "EXTRACTED",
|
| 2078 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py",
|
| 2079 |
+
"source_location": "L51",
|
| 2080 |
+
"weight": 1.0,
|
| 2081 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_server_executor_py",
|
| 2082 |
+
"_tgt": "executor_execute_code",
|
| 2083 |
+
"source": "c_users_astra_desktop_hackon_debugzero_server_executor_py",
|
| 2084 |
+
"target": "executor_execute_code",
|
| 2085 |
+
"confidence_score": 1.0
|
| 2086 |
+
},
|
| 2087 |
+
{
|
| 2088 |
+
"relation": "calls",
|
| 2089 |
+
"confidence": "EXTRACTED",
|
| 2090 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py",
|
| 2091 |
+
"source_location": "L58",
|
| 2092 |
+
"weight": 1.0,
|
| 2093 |
+
"_src": "executor_execute_code",
|
| 2094 |
+
"_tgt": "executor_is_safe",
|
| 2095 |
+
"source": "executor_is_safe",
|
| 2096 |
+
"target": "executor_execute_code",
|
| 2097 |
+
"confidence_score": 1.0
|
| 2098 |
+
},
|
| 2099 |
+
{
|
| 2100 |
+
"relation": "rationale_for",
|
| 2101 |
+
"confidence": "EXTRACTED",
|
| 2102 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py",
|
| 2103 |
+
"source_location": "L10",
|
| 2104 |
+
"weight": 1.0,
|
| 2105 |
+
"_src": "executor_rationale_10",
|
| 2106 |
+
"_tgt": "executor_is_safe",
|
| 2107 |
+
"source": "executor_is_safe",
|
| 2108 |
+
"target": "executor_rationale_10",
|
| 2109 |
+
"confidence_score": 1.0
|
| 2110 |
+
},
|
| 2111 |
+
{
|
| 2112 |
+
"relation": "method",
|
| 2113 |
+
"confidence": "EXTRACTED",
|
| 2114 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py",
|
| 2115 |
+
"source_location": "L45",
|
| 2116 |
+
"weight": 1.0,
|
| 2117 |
+
"_src": "executor_executionresult",
|
| 2118 |
+
"_tgt": "executor_executionresult_init",
|
| 2119 |
+
"source": "executor_executionresult",
|
| 2120 |
+
"target": "executor_executionresult_init",
|
| 2121 |
+
"confidence_score": 1.0
|
| 2122 |
+
},
|
| 2123 |
+
{
|
| 2124 |
+
"relation": "calls",
|
| 2125 |
+
"confidence": "EXTRACTED",
|
| 2126 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py",
|
| 2127 |
+
"source_location": "L62",
|
| 2128 |
+
"weight": 1.0,
|
| 2129 |
+
"_src": "executor_execute_code",
|
| 2130 |
+
"_tgt": "executor_executionresult",
|
| 2131 |
+
"source": "executor_executionresult",
|
| 2132 |
+
"target": "executor_execute_code",
|
| 2133 |
+
"confidence_score": 1.0
|
| 2134 |
+
},
|
| 2135 |
+
{
|
| 2136 |
+
"relation": "rationale_for",
|
| 2137 |
+
"confidence": "EXTRACTED",
|
| 2138 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\executor.py",
|
| 2139 |
+
"source_location": "L52",
|
| 2140 |
+
"weight": 1.0,
|
| 2141 |
+
"_src": "executor_rationale_52",
|
| 2142 |
+
"_tgt": "executor_execute_code",
|
| 2143 |
+
"source": "executor_execute_code",
|
| 2144 |
+
"target": "executor_rationale_52",
|
| 2145 |
+
"confidence_score": 1.0
|
| 2146 |
+
},
|
| 2147 |
+
{
|
| 2148 |
+
"relation": "contains",
|
| 2149 |
+
"confidence": "EXTRACTED",
|
| 2150 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\plausibility.py",
|
| 2151 |
+
"source_location": "L4",
|
| 2152 |
+
"weight": 1.0,
|
| 2153 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_server_plausibility_py",
|
| 2154 |
+
"_tgt": "plausibility_compute_ast_distance",
|
| 2155 |
+
"source": "c_users_astra_desktop_hackon_debugzero_server_plausibility_py",
|
| 2156 |
+
"target": "plausibility_compute_ast_distance",
|
| 2157 |
+
"confidence_score": 1.0
|
| 2158 |
+
},
|
| 2159 |
+
{
|
| 2160 |
+
"relation": "rationale_for",
|
| 2161 |
+
"confidence": "EXTRACTED",
|
| 2162 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\server\\plausibility.py",
|
| 2163 |
+
"source_location": "L5",
|
| 2164 |
+
"weight": 1.0,
|
| 2165 |
+
"_src": "plausibility_rationale_5",
|
| 2166 |
+
"_tgt": "plausibility_compute_ast_distance",
|
| 2167 |
+
"source": "plausibility_compute_ast_distance",
|
| 2168 |
+
"target": "plausibility_rationale_5",
|
| 2169 |
+
"confidence_score": 1.0
|
| 2170 |
+
},
|
| 2171 |
+
{
|
| 2172 |
+
"relation": "contains",
|
| 2173 |
+
"confidence": "EXTRACTED",
|
| 2174 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\dual_role_sampler.py",
|
| 2175 |
+
"source_location": "L23",
|
| 2176 |
+
"weight": 1.0,
|
| 2177 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_training_dual_role_sampler_py",
|
| 2178 |
+
"_tgt": "dual_role_sampler_sample_proposer_prompt",
|
| 2179 |
+
"source": "c_users_astra_desktop_hackon_debugzero_training_dual_role_sampler_py",
|
| 2180 |
+
"target": "dual_role_sampler_sample_proposer_prompt",
|
| 2181 |
+
"confidence_score": 1.0
|
| 2182 |
+
},
|
| 2183 |
+
{
|
| 2184 |
+
"relation": "contains",
|
| 2185 |
+
"confidence": "EXTRACTED",
|
| 2186 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\dual_role_sampler.py",
|
| 2187 |
+
"source_location": "L26",
|
| 2188 |
+
"weight": 1.0,
|
| 2189 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_training_dual_role_sampler_py",
|
| 2190 |
+
"_tgt": "dual_role_sampler_sample_solver_prompt",
|
| 2191 |
+
"source": "c_users_astra_desktop_hackon_debugzero_training_dual_role_sampler_py",
|
| 2192 |
+
"target": "dual_role_sampler_sample_solver_prompt",
|
| 2193 |
+
"confidence_score": 1.0
|
| 2194 |
+
},
|
| 2195 |
+
{
|
| 2196 |
+
"relation": "contains",
|
| 2197 |
+
"confidence": "EXTRACTED",
|
| 2198 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py",
|
| 2199 |
+
"source_location": "L25",
|
| 2200 |
+
"weight": 1.0,
|
| 2201 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_training_grpo_train_py",
|
| 2202 |
+
"_tgt": "grpo_train_reward_fn",
|
| 2203 |
+
"source": "c_users_astra_desktop_hackon_debugzero_training_grpo_train_py",
|
| 2204 |
+
"target": "grpo_train_reward_fn",
|
| 2205 |
+
"confidence_score": 1.0
|
| 2206 |
+
},
|
| 2207 |
+
{
|
| 2208 |
+
"relation": "contains",
|
| 2209 |
+
"confidence": "EXTRACTED",
|
| 2210 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py",
|
| 2211 |
+
"source_location": "L44",
|
| 2212 |
+
"weight": 1.0,
|
| 2213 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_training_grpo_train_py",
|
| 2214 |
+
"_tgt": "grpo_train_create_dataset",
|
| 2215 |
+
"source": "c_users_astra_desktop_hackon_debugzero_training_grpo_train_py",
|
| 2216 |
+
"target": "grpo_train_create_dataset",
|
| 2217 |
+
"confidence_score": 1.0
|
| 2218 |
+
},
|
| 2219 |
+
{
|
| 2220 |
+
"relation": "contains",
|
| 2221 |
+
"confidence": "EXTRACTED",
|
| 2222 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py",
|
| 2223 |
+
"source_location": "L57",
|
| 2224 |
+
"weight": 1.0,
|
| 2225 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_training_grpo_train_py",
|
| 2226 |
+
"_tgt": "grpo_train_main",
|
| 2227 |
+
"source": "c_users_astra_desktop_hackon_debugzero_training_grpo_train_py",
|
| 2228 |
+
"target": "grpo_train_main",
|
| 2229 |
+
"confidence_score": 1.0
|
| 2230 |
+
},
|
| 2231 |
+
{
|
| 2232 |
+
"relation": "calls",
|
| 2233 |
+
"confidence": "INFERRED",
|
| 2234 |
+
"confidence_score": 0.8,
|
| 2235 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py",
|
| 2236 |
+
"source_location": "L34",
|
| 2237 |
+
"weight": 1.0,
|
| 2238 |
+
"_src": "grpo_train_reward_fn",
|
| 2239 |
+
"_tgt": "rewards_compute_proposer_reward",
|
| 2240 |
+
"source": "grpo_train_reward_fn",
|
| 2241 |
+
"target": "rewards_compute_proposer_reward"
|
| 2242 |
+
},
|
| 2243 |
+
{
|
| 2244 |
+
"relation": "calls",
|
| 2245 |
+
"confidence": "INFERRED",
|
| 2246 |
+
"confidence_score": 0.8,
|
| 2247 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py",
|
| 2248 |
+
"source_location": "L37",
|
| 2249 |
+
"weight": 1.0,
|
| 2250 |
+
"_src": "grpo_train_reward_fn",
|
| 2251 |
+
"_tgt": "rewards_compute_solver_reward",
|
| 2252 |
+
"source": "grpo_train_reward_fn",
|
| 2253 |
+
"target": "rewards_compute_solver_reward"
|
| 2254 |
+
},
|
| 2255 |
+
{
|
| 2256 |
+
"relation": "calls",
|
| 2257 |
+
"confidence": "EXTRACTED",
|
| 2258 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\grpo_train.py",
|
| 2259 |
+
"source_location": "L63",
|
| 2260 |
+
"weight": 1.0,
|
| 2261 |
+
"_src": "grpo_train_main",
|
| 2262 |
+
"_tgt": "grpo_train_create_dataset",
|
| 2263 |
+
"source": "grpo_train_create_dataset",
|
| 2264 |
+
"target": "grpo_train_main",
|
| 2265 |
+
"confidence_score": 1.0
|
| 2266 |
+
},
|
| 2267 |
+
{
|
| 2268 |
+
"relation": "contains",
|
| 2269 |
+
"confidence": "EXTRACTED",
|
| 2270 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py",
|
| 2271 |
+
"source_location": "L7",
|
| 2272 |
+
"weight": 1.0,
|
| 2273 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_training_rewards_py",
|
| 2274 |
+
"_tgt": "rewards_get_solve_rate",
|
| 2275 |
+
"source": "c_users_astra_desktop_hackon_debugzero_training_rewards_py",
|
| 2276 |
+
"target": "rewards_get_solve_rate",
|
| 2277 |
+
"confidence_score": 1.0
|
| 2278 |
+
},
|
| 2279 |
+
{
|
| 2280 |
+
"relation": "contains",
|
| 2281 |
+
"confidence": "EXTRACTED",
|
| 2282 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py",
|
| 2283 |
+
"source_location": "L13",
|
| 2284 |
+
"weight": 1.0,
|
| 2285 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_training_rewards_py",
|
| 2286 |
+
"_tgt": "rewards_record_solve_result",
|
| 2287 |
+
"source": "c_users_astra_desktop_hackon_debugzero_training_rewards_py",
|
| 2288 |
+
"target": "rewards_record_solve_result",
|
| 2289 |
+
"confidence_score": 1.0
|
| 2290 |
+
},
|
| 2291 |
+
{
|
| 2292 |
+
"relation": "contains",
|
| 2293 |
+
"confidence": "EXTRACTED",
|
| 2294 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py",
|
| 2295 |
+
"source_location": "L18",
|
| 2296 |
+
"weight": 1.0,
|
| 2297 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_training_rewards_py",
|
| 2298 |
+
"_tgt": "rewards_compute_proposer_reward",
|
| 2299 |
+
"source": "c_users_astra_desktop_hackon_debugzero_training_rewards_py",
|
| 2300 |
+
"target": "rewards_compute_proposer_reward",
|
| 2301 |
+
"confidence_score": 1.0
|
| 2302 |
+
},
|
| 2303 |
+
{
|
| 2304 |
+
"relation": "contains",
|
| 2305 |
+
"confidence": "EXTRACTED",
|
| 2306 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py",
|
| 2307 |
+
"source_location": "L37",
|
| 2308 |
+
"weight": 1.0,
|
| 2309 |
+
"_src": "c_users_astra_desktop_hackon_debugzero_training_rewards_py",
|
| 2310 |
+
"_tgt": "rewards_compute_solver_reward",
|
| 2311 |
+
"source": "c_users_astra_desktop_hackon_debugzero_training_rewards_py",
|
| 2312 |
+
"target": "rewards_compute_solver_reward",
|
| 2313 |
+
"confidence_score": 1.0
|
| 2314 |
+
},
|
| 2315 |
+
{
|
| 2316 |
+
"relation": "calls",
|
| 2317 |
+
"confidence": "EXTRACTED",
|
| 2318 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py",
|
| 2319 |
+
"source_location": "L30",
|
| 2320 |
+
"weight": 1.0,
|
| 2321 |
+
"_src": "rewards_compute_proposer_reward",
|
| 2322 |
+
"_tgt": "rewards_get_solve_rate",
|
| 2323 |
+
"source": "rewards_get_solve_rate",
|
| 2324 |
+
"target": "rewards_compute_proposer_reward",
|
| 2325 |
+
"confidence_score": 1.0
|
| 2326 |
+
},
|
| 2327 |
+
{
|
| 2328 |
+
"relation": "calls",
|
| 2329 |
+
"confidence": "EXTRACTED",
|
| 2330 |
+
"source_file": "C:\\Users\\astra\\Desktop\\hackon\\debugZero\\training\\rewards.py",
|
| 2331 |
+
"source_location": "L41",
|
| 2332 |
+
"weight": 1.0,
|
| 2333 |
+
"_src": "rewards_compute_solver_reward",
|
| 2334 |
+
"_tgt": "rewards_record_solve_result",
|
| 2335 |
+
"source": "rewards_record_solve_result",
|
| 2336 |
+
"target": "rewards_compute_solver_reward",
|
| 2337 |
+
"confidence_score": 1.0
|
| 2338 |
+
}
|
| 2339 |
+
],
|
| 2340 |
+
"hyperedges": []
|
| 2341 |
+
}
|
models.py
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 2 |
+
# All rights reserved.
|
| 3 |
+
#
|
| 4 |
+
# This source code is licensed under the BSD-style license found in the
|
| 5 |
+
# LICENSE file in the root directory of this source tree.
|
| 6 |
+
|
| 7 |
+
"""
|
| 8 |
+
Data models for the DebugZero Environment.
|
| 9 |
+
|
| 10 |
+
The debugZero environment implements the Absolute Zero paradigm for debugging self-play.
|
| 11 |
+
"""
|
| 12 |
+
|
| 13 |
+
from openenv.core.env_server.types import Action, Observation, State
|
| 14 |
+
from pydantic import Field
|
| 15 |
+
from typing import Optional
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
class DebugzeroAction(Action):
|
| 19 |
+
"""Action for the DebugZero environment representing the Proposer or Solver inputs."""
|
| 20 |
+
|
| 21 |
+
role: str = Field(..., description="Role taking action: 'proposer' or 'solver'")
|
| 22 |
+
code: str = Field(..., description="Code injected (by proposer) or fixed (by solver)")
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
class DebugzeroObservation(Observation):
|
| 26 |
+
"""Observation from the DebugZero environment following sandbox execution."""
|
| 27 |
+
|
| 28 |
+
role_next: str = Field(default="proposer", description="The role supposed to play next")
|
| 29 |
+
current_code: str = Field(default="", description="The current state of the python code")
|
| 30 |
+
execution_result: str = Field(default="", description="Result of evaluating tests in the sandbox")
|
| 31 |
+
tests_passed: bool = Field(default=False, description="Whether the tests passed")
|
| 32 |
+
syntax_error: bool = Field(default=False, description="Whether the code had a parse/syntax error")
|
| 33 |
+
|
| 34 |
+
class DebugzeroState(State):
|
| 35 |
+
"""State for the DebugZero environment, extending default state with seed context."""
|
| 36 |
+
seed_id: str = Field(default="", description="ID of the HumanEval function")
|
| 37 |
+
original_code: str = Field(default="", description="Original clean seed code")
|
| 38 |
+
current_code: str = Field(default="", description="Current code after Proposer/Solver turn")
|
| 39 |
+
role_turn: str = Field(default="proposer", description="Current turn's role")
|
notebooks/train_colab.ipynb
ADDED
|
@@ -0,0 +1,511 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "markdown",
|
| 5 |
+
"id": "title",
|
| 6 |
+
"metadata": {},
|
| 7 |
+
"source": [
|
| 8 |
+
"# DebugZero OpenEnv GRPO Training Notebook\n",
|
| 9 |
+
"\n",
|
| 10 |
+
"This Colab notebook installs DebugZero from GitHub, starts the OpenEnv server, connects through the packaged OpenEnv client, and trains a small code model with TRL GRPO/Unsloth. The reward function calls `env.reset()` and `env.step()` on the live environment for every completion, so training is tied to the actual environment instead of a static dataset or local file import."
|
| 11 |
+
]
|
| 12 |
+
},
|
| 13 |
+
{
|
| 14 |
+
"cell_type": "markdown",
|
| 15 |
+
"id": "checklist",
|
| 16 |
+
"metadata": {},
|
| 17 |
+
"source": [
|
| 18 |
+
"## What this notebook proves\n",
|
| 19 |
+
"\n",
|
| 20 |
+
"- Installs the submitted environment directly from GitHub.\n",
|
| 21 |
+
"- Uses the standard OpenEnv client/server boundary.\n",
|
| 22 |
+
"- Runs a smoke test against the live environment.\n",
|
| 23 |
+
"- Trains with GRPO using environment rewards from real rollouts.\n",
|
| 24 |
+
"- Saves loss/reward plots that can be committed into the README."
|
| 25 |
+
]
|
| 26 |
+
},
|
| 27 |
+
{
|
| 28 |
+
"cell_type": "code",
|
| 29 |
+
"execution_count": null,
|
| 30 |
+
"id": "config",
|
| 31 |
+
"metadata": {},
|
| 32 |
+
"outputs": [],
|
| 33 |
+
"source": [
|
| 34 |
+
"# Change these only if your final submission branch or Space URL differs.\n",
|
| 35 |
+
"REPO_URL = \"https://github.com/Ray-0906/DebugZero.git\"\n",
|
| 36 |
+
"BRANCH = \"main\"\n",
|
| 37 |
+
"\n",
|
| 38 |
+
"# Leave blank to launch the environment locally from the GitHub package.\n",
|
| 39 |
+
"# Set this to your Hugging Face Space URL to train against the deployed Space instead.\n",
|
| 40 |
+
"REMOTE_OPENENV_URL = \"\"\n",
|
| 41 |
+
"\n",
|
| 42 |
+
"MODEL_ID = \"unsloth/Qwen2.5-Coder-3B-Instruct\"\n",
|
| 43 |
+
"OUTPUT_DIR = \"debugzero-openenv-grpo\"\n",
|
| 44 |
+
"MAX_STEPS = 30\n",
|
| 45 |
+
"NUM_GENERATIONS = 2\n",
|
| 46 |
+
"RUN_TRAINING = True"
|
| 47 |
+
]
|
| 48 |
+
},
|
| 49 |
+
{
|
| 50 |
+
"cell_type": "code",
|
| 51 |
+
"execution_count": null,
|
| 52 |
+
"id": "install",
|
| 53 |
+
"metadata": {},
|
| 54 |
+
"outputs": [],
|
| 55 |
+
"source": [
|
| 56 |
+
"import subprocess\n",
|
| 57 |
+
"import sys\n",
|
| 58 |
+
"\n",
|
| 59 |
+
"def pip_install(*packages):\n",
|
| 60 |
+
" subprocess.check_call([sys.executable, \"-m\", \"pip\", \"install\", \"-q\", *packages])\n",
|
| 61 |
+
"\n",
|
| 62 |
+
"# Install runtime/training dependencies explicitly, then install the environment package\n",
|
| 63 |
+
"# from GitHub without letting the repo's experimental training pins override Colab.\n",
|
| 64 |
+
"pip_install(\n",
|
| 65 |
+
" \"openenv-core[core]>=0.2.1\",\n",
|
| 66 |
+
" \"datasets\",\n",
|
| 67 |
+
" \"trl\",\n",
|
| 68 |
+
" \"transformers\",\n",
|
| 69 |
+
" \"accelerate\",\n",
|
| 70 |
+
" \"peft\",\n",
|
| 71 |
+
" \"bitsandbytes\",\n",
|
| 72 |
+
" \"matplotlib\",\n",
|
| 73 |
+
" \"pandas\",\n",
|
| 74 |
+
" \"thefuzz[speedup]\",\n",
|
| 75 |
+
" \"uvicorn[standard]\",\n",
|
| 76 |
+
" \"requests\",\n",
|
| 77 |
+
")\n",
|
| 78 |
+
"\n",
|
| 79 |
+
"try:\n",
|
| 80 |
+
" pip_install(\"unsloth\")\n",
|
| 81 |
+
"except Exception as exc:\n",
|
| 82 |
+
" print(f\"Unsloth install failed, continuing with native TRL fallback: {exc}\")\n",
|
| 83 |
+
"\n",
|
| 84 |
+
"pip_install(\"--no-deps\", f\"git+{REPO_URL}@{BRANCH}\")"
|
| 85 |
+
]
|
| 86 |
+
},
|
| 87 |
+
{
|
| 88 |
+
"cell_type": "code",
|
| 89 |
+
"execution_count": null,
|
| 90 |
+
"id": "server",
|
| 91 |
+
"metadata": {},
|
| 92 |
+
"outputs": [],
|
| 93 |
+
"source": [
|
| 94 |
+
"import atexit\n",
|
| 95 |
+
"import os\n",
|
| 96 |
+
"import subprocess\n",
|
| 97 |
+
"import sys\n",
|
| 98 |
+
"import time\n",
|
| 99 |
+
"\n",
|
| 100 |
+
"import requests\n",
|
| 101 |
+
"\n",
|
| 102 |
+
"if REMOTE_OPENENV_URL:\n",
|
| 103 |
+
" BASE_URL = REMOTE_OPENENV_URL.rstrip(\"/\")\n",
|
| 104 |
+
" server_process = None\n",
|
| 105 |
+
"else:\n",
|
| 106 |
+
" BASE_URL = \"http://127.0.0.1:8000\"\n",
|
| 107 |
+
" server_process = subprocess.Popen(\n",
|
| 108 |
+
" [sys.executable, \"-m\", \"debugZero.server.app\", \"--host\", \"127.0.0.1\", \"--port\", \"8000\"],\n",
|
| 109 |
+
" stdout=subprocess.PIPE,\n",
|
| 110 |
+
" stderr=subprocess.STDOUT,\n",
|
| 111 |
+
" text=True,\n",
|
| 112 |
+
" )\n",
|
| 113 |
+
" atexit.register(lambda: server_process and server_process.poll() is None and server_process.terminate())\n",
|
| 114 |
+
"\n",
|
| 115 |
+
"def wait_for_openenv(base_url, timeout_s=90):\n",
|
| 116 |
+
" deadline = time.time() + timeout_s\n",
|
| 117 |
+
" last_error = None\n",
|
| 118 |
+
" while time.time() < deadline:\n",
|
| 119 |
+
" try:\n",
|
| 120 |
+
" response = requests.get(f\"{base_url}/schema\", timeout=5)\n",
|
| 121 |
+
" if response.status_code == 200:\n",
|
| 122 |
+
" return response.json()\n",
|
| 123 |
+
" except Exception as exc:\n",
|
| 124 |
+
" last_error = exc\n",
|
| 125 |
+
" time.sleep(2)\n",
|
| 126 |
+
" if server_process and server_process.stdout:\n",
|
| 127 |
+
" print(server_process.stdout.read())\n",
|
| 128 |
+
" raise RuntimeError(f\"OpenEnv server did not become ready: {last_error}\")\n",
|
| 129 |
+
"\n",
|
| 130 |
+
"schema = wait_for_openenv(BASE_URL)\n",
|
| 131 |
+
"print(\"Connected to OpenEnv:\", BASE_URL)\n",
|
| 132 |
+
"schema"
|
| 133 |
+
]
|
| 134 |
+
},
|
| 135 |
+
{
|
| 136 |
+
"cell_type": "code",
|
| 137 |
+
"execution_count": null,
|
| 138 |
+
"id": "client-smoke-test",
|
| 139 |
+
"metadata": {},
|
| 140 |
+
"outputs": [],
|
| 141 |
+
"source": [
|
| 142 |
+
"from debugZero.client import DebugzeroEnv\n",
|
| 143 |
+
"from debugZero.models import DebugzeroAction\n",
|
| 144 |
+
"\n",
|
| 145 |
+
"def observation(result):\n",
|
| 146 |
+
" return getattr(result, \"observation\", result)\n",
|
| 147 |
+
"\n",
|
| 148 |
+
"with DebugzeroEnv(base_url=BASE_URL) as env:\n",
|
| 149 |
+
" reset_obs = observation(env.reset())\n",
|
| 150 |
+
" print(\"Initial role:\", reset_obs.role_next)\n",
|
| 151 |
+
" print(reset_obs.current_code[:300])\n",
|
| 152 |
+
"\n",
|
| 153 |
+
" buggy_code = reset_obs.current_code.replace(\"distance < threshold\", \"distance <= threshold\")\n",
|
| 154 |
+
" prop_obs = observation(env.step(DebugzeroAction(role=\"proposer\", code=buggy_code)))\n",
|
| 155 |
+
" print(\"After proposer:\", {\"role_next\": prop_obs.role_next, \"tests_passed\": prop_obs.tests_passed, \"syntax_error\": prop_obs.syntax_error})\n",
|
| 156 |
+
"\n",
|
| 157 |
+
" solve_obs = observation(env.step(DebugzeroAction(role=\"solver\", code=reset_obs.current_code)))\n",
|
| 158 |
+
" print(\"After solver:\", {\"role_next\": solve_obs.role_next, \"tests_passed\": solve_obs.tests_passed, \"syntax_error\": solve_obs.syntax_error})"
|
| 159 |
+
]
|
| 160 |
+
},
|
| 161 |
+
{
|
| 162 |
+
"cell_type": "code",
|
| 163 |
+
"execution_count": null,
|
| 164 |
+
"id": "dataset-and-prompts",
|
| 165 |
+
"metadata": {},
|
| 166 |
+
"outputs": [],
|
| 167 |
+
"source": [
|
| 168 |
+
"import re\n",
|
| 169 |
+
"from datasets import Dataset\n",
|
| 170 |
+
"\n",
|
| 171 |
+
"PROPOSER_PROMPT = \"\"\"You are the Proposer in DebugZero.\n",
|
| 172 |
+
"Inject one realistic, syntax-valid bug into the clean Python function.\n",
|
| 173 |
+
"The mutated function should run but fail at least one hidden test.\n",
|
| 174 |
+
"Return only the complete modified Python code inside a python code fence.\n",
|
| 175 |
+
"\n",
|
| 176 |
+
"Clean function:\n",
|
| 177 |
+
"```python\n",
|
| 178 |
+
"{code}\n",
|
| 179 |
+
"```\n",
|
| 180 |
+
"\"\"\"\n",
|
| 181 |
+
"\n",
|
| 182 |
+
"SOLVER_PROMPT = \"\"\"You are the Solver in DebugZero.\n",
|
| 183 |
+
"Repair the buggy Python function so it passes the environment tests.\n",
|
| 184 |
+
"Return only the complete repaired Python code inside a python code fence.\n",
|
| 185 |
+
"\n",
|
| 186 |
+
"Buggy function:\n",
|
| 187 |
+
"```python\n",
|
| 188 |
+
"{code}\n",
|
| 189 |
+
"```\n",
|
| 190 |
+
"\"\"\"\n",
|
| 191 |
+
"\n",
|
| 192 |
+
"def extract_code(text):\n",
|
| 193 |
+
" if isinstance(text, list):\n",
|
| 194 |
+
" text = text[0].get(\"content\", \"\") if text else \"\"\n",
|
| 195 |
+
" match = re.search(r\"```(?:python)?\\s*(.*?)```\", text, flags=re.DOTALL | re.IGNORECASE)\n",
|
| 196 |
+
" return (match.group(1) if match else text).strip()\n",
|
| 197 |
+
"\n",
|
| 198 |
+
"def deterministic_bug(clean_code):\n",
|
| 199 |
+
" replacements = [\n",
|
| 200 |
+
" (\"distance < threshold\", \"distance <= threshold\"),\n",
|
| 201 |
+
" (\"return True\", \"return False\"),\n",
|
| 202 |
+
" (\"idx != idx2\", \"idx == idx2\"),\n",
|
| 203 |
+
" ]\n",
|
| 204 |
+
" for old, new in replacements:\n",
|
| 205 |
+
" if old in clean_code:\n",
|
| 206 |
+
" return clean_code.replace(old, new, 1)\n",
|
| 207 |
+
" return clean_code + \"\\n# BUG: intentionally left for solver\\n\"\n",
|
| 208 |
+
"\n",
|
| 209 |
+
"def build_openenv_dataset(num_rounds=8):\n",
|
| 210 |
+
" rows = []\n",
|
| 211 |
+
" with DebugzeroEnv(base_url=BASE_URL) as env:\n",
|
| 212 |
+
" for episode in range(num_rounds):\n",
|
| 213 |
+
" clean_obs = observation(env.reset())\n",
|
| 214 |
+
" clean_code = clean_obs.current_code\n",
|
| 215 |
+
" buggy_code = deterministic_bug(clean_code)\n",
|
| 216 |
+
"\n",
|
| 217 |
+
" rows.append({\n",
|
| 218 |
+
" \"prompt\": PROPOSER_PROMPT.format(code=clean_code),\n",
|
| 219 |
+
" \"role\": \"proposer\",\n",
|
| 220 |
+
" \"clean_code\": clean_code,\n",
|
| 221 |
+
" \"buggy_code\": \"\",\n",
|
| 222 |
+
" \"episode\": episode,\n",
|
| 223 |
+
" })\n",
|
| 224 |
+
"\n",
|
| 225 |
+
" rows.append({\n",
|
| 226 |
+
" \"prompt\": SOLVER_PROMPT.format(code=buggy_code),\n",
|
| 227 |
+
" \"role\": \"solver\",\n",
|
| 228 |
+
" \"clean_code\": clean_code,\n",
|
| 229 |
+
" \"buggy_code\": buggy_code,\n",
|
| 230 |
+
" \"episode\": episode,\n",
|
| 231 |
+
" })\n",
|
| 232 |
+
" return Dataset.from_list(rows)\n",
|
| 233 |
+
"\n",
|
| 234 |
+
"train_dataset = build_openenv_dataset(num_rounds=8)\n",
|
| 235 |
+
"train_dataset"
|
| 236 |
+
]
|
| 237 |
+
},
|
| 238 |
+
{
|
| 239 |
+
"cell_type": "code",
|
| 240 |
+
"execution_count": null,
|
| 241 |
+
"id": "openenv-reward",
|
| 242 |
+
"metadata": {},
|
| 243 |
+
"outputs": [],
|
| 244 |
+
"source": [
|
| 245 |
+
"def proposer_reward(obs, submitted_code, clean_code):\n",
|
| 246 |
+
" if obs.syntax_error:\n",
|
| 247 |
+
" return -1.0\n",
|
| 248 |
+
" if submitted_code.strip() == clean_code.strip():\n",
|
| 249 |
+
" return -0.5\n",
|
| 250 |
+
" if obs.tests_passed:\n",
|
| 251 |
+
" return 0.0\n",
|
| 252 |
+
" return 1.0\n",
|
| 253 |
+
"\n",
|
| 254 |
+
"def solver_reward(obs, submitted_code, clean_code):\n",
|
| 255 |
+
" if obs.syntax_error:\n",
|
| 256 |
+
" return -1.0\n",
|
| 257 |
+
" if submitted_code.strip() == clean_code.strip() and obs.tests_passed:\n",
|
| 258 |
+
" return 1.25\n",
|
| 259 |
+
" return 1.0 if obs.tests_passed else 0.0\n",
|
| 260 |
+
"\n",
|
| 261 |
+
"def openenv_reward(completions, role=None, clean_code=None, buggy_code=None, **kwargs):\n",
|
| 262 |
+
" rewards = []\n",
|
| 263 |
+
" role = role or kwargs.get(\"roles\")\n",
|
| 264 |
+
" clean_code = clean_code or kwargs.get(\"clean_codes\")\n",
|
| 265 |
+
" buggy_code = buggy_code or kwargs.get(\"buggy_codes\")\n",
|
| 266 |
+
"\n",
|
| 267 |
+
" with DebugzeroEnv(base_url=BASE_URL) as env:\n",
|
| 268 |
+
" for completion, sample_role, clean, bug in zip(completions, role, clean_code, buggy_code):\n",
|
| 269 |
+
" code = extract_code(completion)\n",
|
| 270 |
+
" env.reset()\n",
|
| 271 |
+
" if sample_role == \"proposer\":\n",
|
| 272 |
+
" obs = observation(env.step(DebugzeroAction(role=\"proposer\", code=code)))\n",
|
| 273 |
+
" rewards.append(proposer_reward(obs, code, clean))\n",
|
| 274 |
+
" elif sample_role == \"solver\":\n",
|
| 275 |
+
" env.step(DebugzeroAction(role=\"proposer\", code=bug))\n",
|
| 276 |
+
" obs = observation(env.step(DebugzeroAction(role=\"solver\", code=code)))\n",
|
| 277 |
+
" rewards.append(solver_reward(obs, code, clean))\n",
|
| 278 |
+
" else:\n",
|
| 279 |
+
" rewards.append(0.0)\n",
|
| 280 |
+
" return rewards\n",
|
| 281 |
+
"\n",
|
| 282 |
+
"# Quick reward sanity checks against the live environment.\n",
|
| 283 |
+
"example = train_dataset[1]\n",
|
| 284 |
+
"print(openenv_reward(\n",
|
| 285 |
+
" [f\"```python\\n{example['clean_code']}\\n```\"],\n",
|
| 286 |
+
" role=[example[\"role\"]],\n",
|
| 287 |
+
" clean_code=[example[\"clean_code\"]],\n",
|
| 288 |
+
" buggy_code=[example[\"buggy_code\"]],\n",
|
| 289 |
+
"))"
|
| 290 |
+
]
|
| 291 |
+
},
|
| 292 |
+
{
|
| 293 |
+
"cell_type": "code",
|
| 294 |
+
"execution_count": null,
|
| 295 |
+
"id": "model",
|
| 296 |
+
"metadata": {},
|
| 297 |
+
"outputs": [],
|
| 298 |
+
"source": [
|
| 299 |
+
"import torch\n",
|
| 300 |
+
"\n",
|
| 301 |
+
"try:\n",
|
| 302 |
+
" from unsloth import FastLanguageModel, PatchFastRL, is_bfloat16_supported\n",
|
| 303 |
+
" PatchFastRL(\"GRPO\", FastLanguageModel)\n",
|
| 304 |
+
" HAS_UNSLOTH = True\n",
|
| 305 |
+
"except Exception as exc:\n",
|
| 306 |
+
" print(\"Using native Transformers/TRL fallback:\", exc)\n",
|
| 307 |
+
" HAS_UNSLOTH = False\n",
|
| 308 |
+
" is_bfloat16_supported = lambda: False\n",
|
| 309 |
+
"\n",
|
| 310 |
+
"from trl import GRPOConfig, GRPOTrainer\n",
|
| 311 |
+
"\n",
|
| 312 |
+
"if HAS_UNSLOTH:\n",
|
| 313 |
+
" model, tokenizer = FastLanguageModel.from_pretrained(\n",
|
| 314 |
+
" model_name=MODEL_ID,\n",
|
| 315 |
+
" max_seq_length=2048,\n",
|
| 316 |
+
" load_in_4bit=True,\n",
|
| 317 |
+
" fast_inference=False,\n",
|
| 318 |
+
" )\n",
|
| 319 |
+
" model = FastLanguageModel.get_peft_model(\n",
|
| 320 |
+
" model,\n",
|
| 321 |
+
" r=16,\n",
|
| 322 |
+
" target_modules=[\"q_proj\", \"k_proj\", \"v_proj\", \"o_proj\", \"gate_proj\", \"up_proj\", \"down_proj\"],\n",
|
| 323 |
+
" lora_alpha=16,\n",
|
| 324 |
+
" lora_dropout=0,\n",
|
| 325 |
+
" bias=\"none\",\n",
|
| 326 |
+
" use_gradient_checkpointing=\"unsloth\",\n",
|
| 327 |
+
" random_state=3407,\n",
|
| 328 |
+
" )\n",
|
| 329 |
+
"else:\n",
|
| 330 |
+
" from transformers import AutoModelForCausalLM, AutoTokenizer\n",
|
| 331 |
+
" fallback_model = \"Qwen/Qwen2.5-Coder-1.5B-Instruct\"\n",
|
| 332 |
+
" tokenizer = AutoTokenizer.from_pretrained(fallback_model, trust_remote_code=True)\n",
|
| 333 |
+
" model = AutoModelForCausalLM.from_pretrained(\n",
|
| 334 |
+
" fallback_model,\n",
|
| 335 |
+
" torch_dtype=torch.bfloat16 if torch.cuda.is_available() else torch.float32,\n",
|
| 336 |
+
" device_map=\"auto\" if torch.cuda.is_available() else None,\n",
|
| 337 |
+
" trust_remote_code=True,\n",
|
| 338 |
+
" )"
|
| 339 |
+
]
|
| 340 |
+
},
|
| 341 |
+
{
|
| 342 |
+
"cell_type": "code",
|
| 343 |
+
"execution_count": null,
|
| 344 |
+
"id": "baseline-eval",
|
| 345 |
+
"metadata": {},
|
| 346 |
+
"outputs": [],
|
| 347 |
+
"source": [
|
| 348 |
+
"def generate_completion(prompt, max_new_tokens=384):\n",
|
| 349 |
+
" inputs = tokenizer(prompt, return_tensors=\"pt\").to(model.device)\n",
|
| 350 |
+
" with torch.no_grad():\n",
|
| 351 |
+
" output = model.generate(\n",
|
| 352 |
+
" **inputs,\n",
|
| 353 |
+
" max_new_tokens=max_new_tokens,\n",
|
| 354 |
+
" do_sample=True,\n",
|
| 355 |
+
" temperature=0.7,\n",
|
| 356 |
+
" top_p=0.9,\n",
|
| 357 |
+
" pad_token_id=tokenizer.eos_token_id,\n",
|
| 358 |
+
" )\n",
|
| 359 |
+
" return tokenizer.decode(output[0][inputs[\"input_ids\"].shape[-1]:], skip_special_tokens=True)\n",
|
| 360 |
+
"\n",
|
| 361 |
+
"def evaluate_policy(dataset, n=4):\n",
|
| 362 |
+
" rows = [dataset[i] for i in range(min(n, len(dataset)))]\n",
|
| 363 |
+
" completions = [generate_completion(row[\"prompt\"]) for row in rows]\n",
|
| 364 |
+
" rewards = openenv_reward(\n",
|
| 365 |
+
" completions,\n",
|
| 366 |
+
" role=[row[\"role\"] for row in rows],\n",
|
| 367 |
+
" clean_code=[row[\"clean_code\"] for row in rows],\n",
|
| 368 |
+
" buggy_code=[row[\"buggy_code\"] for row in rows],\n",
|
| 369 |
+
" )\n",
|
| 370 |
+
" return rewards, completions\n",
|
| 371 |
+
"\n",
|
| 372 |
+
"baseline_rewards, baseline_completions = evaluate_policy(train_dataset, n=4)\n",
|
| 373 |
+
"print(\"Baseline rewards:\", baseline_rewards, \"mean=\", sum(baseline_rewards) / len(baseline_rewards))"
|
| 374 |
+
]
|
| 375 |
+
},
|
| 376 |
+
{
|
| 377 |
+
"cell_type": "code",
|
| 378 |
+
"execution_count": null,
|
| 379 |
+
"id": "train",
|
| 380 |
+
"metadata": {},
|
| 381 |
+
"outputs": [],
|
| 382 |
+
"source": [
|
| 383 |
+
"training_args = GRPOConfig(\n",
|
| 384 |
+
" output_dir=OUTPUT_DIR,\n",
|
| 385 |
+
" max_steps=MAX_STEPS,\n",
|
| 386 |
+
" learning_rate=5e-6,\n",
|
| 387 |
+
" per_device_train_batch_size=2,\n",
|
| 388 |
+
" gradient_accumulation_steps=2,\n",
|
| 389 |
+
" num_generations=NUM_GENERATIONS,\n",
|
| 390 |
+
" max_prompt_length=1024,\n",
|
| 391 |
+
" max_completion_length=384,\n",
|
| 392 |
+
" logging_steps=1,\n",
|
| 393 |
+
" save_steps=MAX_STEPS,\n",
|
| 394 |
+
" report_to=\"none\",\n",
|
| 395 |
+
" bf16=bool(torch.cuda.is_available() and is_bfloat16_supported()),\n",
|
| 396 |
+
" fp16=bool(torch.cuda.is_available() and not is_bfloat16_supported()),\n",
|
| 397 |
+
")\n",
|
| 398 |
+
"\n",
|
| 399 |
+
"trainer_kwargs = dict(\n",
|
| 400 |
+
" model=model,\n",
|
| 401 |
+
" reward_funcs=[openenv_reward],\n",
|
| 402 |
+
" args=training_args,\n",
|
| 403 |
+
" train_dataset=train_dataset,\n",
|
| 404 |
+
")\n",
|
| 405 |
+
"\n",
|
| 406 |
+
"try:\n",
|
| 407 |
+
" trainer = GRPOTrainer(processing_class=tokenizer, **trainer_kwargs)\n",
|
| 408 |
+
"except TypeError:\n",
|
| 409 |
+
" trainer = GRPOTrainer(tokenizer=tokenizer, **trainer_kwargs)\n",
|
| 410 |
+
"\n",
|
| 411 |
+
"if RUN_TRAINING:\n",
|
| 412 |
+
" train_result = trainer.train()\n",
|
| 413 |
+
" trainer.save_model(OUTPUT_DIR)\n",
|
| 414 |
+
"else:\n",
|
| 415 |
+
" train_result = None\n",
|
| 416 |
+
" print(\"RUN_TRAINING=False, trainer configured but not executed.\")"
|
| 417 |
+
]
|
| 418 |
+
},
|
| 419 |
+
{
|
| 420 |
+
"cell_type": "code",
|
| 421 |
+
"execution_count": null,
|
| 422 |
+
"id": "after-eval",
|
| 423 |
+
"metadata": {},
|
| 424 |
+
"outputs": [],
|
| 425 |
+
"source": [
|
| 426 |
+
"trained_rewards, trained_completions = evaluate_policy(train_dataset, n=4)\n",
|
| 427 |
+
"print(\"Baseline rewards:\", baseline_rewards, \"mean=\", sum(baseline_rewards) / len(baseline_rewards))\n",
|
| 428 |
+
"print(\"Trained rewards:\", trained_rewards, \"mean=\", sum(trained_rewards) / len(trained_rewards))"
|
| 429 |
+
]
|
| 430 |
+
},
|
| 431 |
+
{
|
| 432 |
+
"cell_type": "code",
|
| 433 |
+
"execution_count": null,
|
| 434 |
+
"id": "plots",
|
| 435 |
+
"metadata": {},
|
| 436 |
+
"outputs": [],
|
| 437 |
+
"source": [
|
| 438 |
+
"import os\n",
|
| 439 |
+
"\n",
|
| 440 |
+
"import matplotlib.pyplot as plt\n",
|
| 441 |
+
"import pandas as pd\n",
|
| 442 |
+
"\n",
|
| 443 |
+
"os.makedirs(\"results\", exist_ok=True)\n",
|
| 444 |
+
"history = pd.DataFrame(trainer.state.log_history)\n",
|
| 445 |
+
"history.to_csv(\"results/training_log.csv\", index=False)\n",
|
| 446 |
+
"\n",
|
| 447 |
+
"reward_cols = [col for col in history.columns if \"reward\" in col.lower()]\n",
|
| 448 |
+
"loss_cols = [col for col in history.columns if \"loss\" in col.lower()]\n",
|
| 449 |
+
"\n",
|
| 450 |
+
"if reward_cols:\n",
|
| 451 |
+
" ax = history.plot(x=\"step\", y=reward_cols, marker=\"o\", figsize=(8, 4))\n",
|
| 452 |
+
" ax.set_xlabel(\"training step\")\n",
|
| 453 |
+
" ax.set_ylabel(\"reward\")\n",
|
| 454 |
+
" ax.set_title(\"DebugZero OpenEnv reward during GRPO\")\n",
|
| 455 |
+
" plt.tight_layout()\n",
|
| 456 |
+
" plt.savefig(\"results/reward_curve.png\", dpi=160)\n",
|
| 457 |
+
" plt.show()\n",
|
| 458 |
+
"\n",
|
| 459 |
+
"if loss_cols:\n",
|
| 460 |
+
" ax = history.plot(x=\"step\", y=loss_cols, marker=\"o\", figsize=(8, 4))\n",
|
| 461 |
+
" ax.set_xlabel(\"training step\")\n",
|
| 462 |
+
" ax.set_ylabel(\"loss\")\n",
|
| 463 |
+
" ax.set_title(\"DebugZero GRPO loss\")\n",
|
| 464 |
+
" plt.tight_layout()\n",
|
| 465 |
+
" plt.savefig(\"results/loss_curve.png\", dpi=160)\n",
|
| 466 |
+
" plt.show()\n",
|
| 467 |
+
"\n",
|
| 468 |
+
"comparison = pd.DataFrame({\n",
|
| 469 |
+
" \"phase\": [\"baseline\", \"trained\"],\n",
|
| 470 |
+
" \"mean_reward\": [sum(baseline_rewards) / len(baseline_rewards), sum(trained_rewards) / len(trained_rewards)],\n",
|
| 471 |
+
"})\n",
|
| 472 |
+
"ax = comparison.plot.bar(x=\"phase\", y=\"mean_reward\", legend=False, figsize=(5, 4))\n",
|
| 473 |
+
"ax.set_xlabel(\"policy\")\n",
|
| 474 |
+
"ax.set_ylabel(\"mean live OpenEnv reward\")\n",
|
| 475 |
+
"ax.set_title(\"Before vs after training\")\n",
|
| 476 |
+
"plt.tight_layout()\n",
|
| 477 |
+
"plt.savefig(\"results/baseline_vs_trained_reward.png\", dpi=160)\n",
|
| 478 |
+
"plt.show()\n",
|
| 479 |
+
"\n",
|
| 480 |
+
"comparison"
|
| 481 |
+
]
|
| 482 |
+
},
|
| 483 |
+
{
|
| 484 |
+
"cell_type": "markdown",
|
| 485 |
+
"id": "readme-note",
|
| 486 |
+
"metadata": {},
|
| 487 |
+
"source": [
|
| 488 |
+
"## Submission note\n",
|
| 489 |
+
"\n",
|
| 490 |
+
"After running the notebook, commit `results/reward_curve.png`, `results/loss_curve.png`, and `results/baseline_vs_trained_reward.png` or upload them to the README/blog. Judges should see the GitHub install cell, the OpenEnv smoke test, and the before/after reward comparison."
|
| 491 |
+
]
|
| 492 |
+
}
|
| 493 |
+
],
|
| 494 |
+
"metadata": {
|
| 495 |
+
"accelerator": "GPU",
|
| 496 |
+
"colab": {
|
| 497 |
+
"gpuType": "T4"
|
| 498 |
+
},
|
| 499 |
+
"kernelspec": {
|
| 500 |
+
"display_name": "Python 3",
|
| 501 |
+
"language": "python",
|
| 502 |
+
"name": "python3"
|
| 503 |
+
},
|
| 504 |
+
"language_info": {
|
| 505 |
+
"name": "python",
|
| 506 |
+
"pygments_lexer": "ipython3"
|
| 507 |
+
}
|
| 508 |
+
},
|
| 509 |
+
"nbformat": 4,
|
| 510 |
+
"nbformat_minor": 5
|
| 511 |
+
}
|
openenv.yaml
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
spec_version: 1
|
| 2 |
+
name: debugZero
|
| 3 |
+
description: "Our environment extends the Absolute Zero paradigm (Zhao et al., NeurIPS 2025) to adversarial bug-fixing self-play. The Proposer's mutation operators are implemented from scratch using Python AST manipulation across 8 operator types. The verifier adapts Mutahunter's execution pipeline."
|
| 4 |
+
type: space
|
| 5 |
+
runtime: fastapi
|
| 6 |
+
app: server.app:app
|
| 7 |
+
port: 8000
|
| 8 |
+
|
openenv_debugZero.egg-info/PKG-INFO
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Metadata-Version: 2.4
|
| 2 |
+
Name: openenv-debugZero
|
| 3 |
+
Version: 0.1.0
|
| 4 |
+
Summary: Debugzero environment for OpenEnv
|
| 5 |
+
Requires-Python: >=3.10
|
| 6 |
+
Requires-Dist: datasets>=4.8.4
|
| 7 |
+
Requires-Dist: openenv-core[core]>=0.2.1
|
| 8 |
+
Requires-Dist: pytest>=9.0.3
|
| 9 |
+
Requires-Dist: thefuzz>=0.22.1
|
| 10 |
+
Requires-Dist: transformers>=5.6.2
|
| 11 |
+
Requires-Dist: trl>=1.2.0
|
| 12 |
+
Provides-Extra: dev
|
| 13 |
+
Requires-Dist: pytest>=8.0.0; extra == "dev"
|
| 14 |
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
openenv_debugZero.egg-info/SOURCES.txt
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
README.md
|
| 2 |
+
__init__.py
|
| 3 |
+
client.py
|
| 4 |
+
models.py
|
| 5 |
+
pyproject.toml
|
| 6 |
+
./__init__.py
|
| 7 |
+
./client.py
|
| 8 |
+
./models.py
|
| 9 |
+
openenv_debugZero.egg-info/PKG-INFO
|
| 10 |
+
openenv_debugZero.egg-info/SOURCES.txt
|
| 11 |
+
openenv_debugZero.egg-info/dependency_links.txt
|
| 12 |
+
openenv_debugZero.egg-info/entry_points.txt
|
| 13 |
+
openenv_debugZero.egg-info/requires.txt
|
| 14 |
+
openenv_debugZero.egg-info/top_level.txt
|
| 15 |
+
server/__init__.py
|
| 16 |
+
server/app.py
|
| 17 |
+
server/bug_injector.py
|
| 18 |
+
server/debugZero_environment.py
|
| 19 |
+
server/executor.py
|
| 20 |
+
server/plausibility.py
|
openenv_debugZero.egg-info/dependency_links.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
|
openenv_debugZero.egg-info/entry_points.txt
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[console_scripts]
|
| 2 |
+
server = debugZero.server.app:main
|
openenv_debugZero.egg-info/requires.txt
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
datasets>=4.8.4
|
| 2 |
+
openenv-core[core]>=0.2.1
|
| 3 |
+
pytest>=9.0.3
|
| 4 |
+
thefuzz>=0.22.1
|
| 5 |
+
transformers>=5.6.2
|
| 6 |
+
trl>=1.2.0
|
| 7 |
+
|
| 8 |
+
[dev]
|
| 9 |
+
pytest>=8.0.0
|
| 10 |
+
pytest-cov>=4.0.0
|
openenv_debugZero.egg-info/top_level.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
debugZero
|
pyproject.toml
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 2 |
+
# All rights reserved.
|
| 3 |
+
#
|
| 4 |
+
# This source code is licensed under the BSD-style license found in the
|
| 5 |
+
# LICENSE file in the root directory of this source tree.
|
| 6 |
+
|
| 7 |
+
[build-system]
|
| 8 |
+
requires = ["setuptools>=45", "wheel"]
|
| 9 |
+
build-backend = "setuptools.build_meta"
|
| 10 |
+
|
| 11 |
+
[project]
|
| 12 |
+
name = "openenv-debugZero"
|
| 13 |
+
version = "0.1.0"
|
| 14 |
+
description = "Debugzero environment for OpenEnv"
|
| 15 |
+
requires-python = ">=3.10"
|
| 16 |
+
dependencies = [
|
| 17 |
+
"datasets>=4.8.4",
|
| 18 |
+
# Core OpenEnv runtime (provides FastAPI server + HTTP client types)
|
| 19 |
+
# install from github
|
| 20 |
+
# "openenv-core[core] @ git+https://github.com/meta-pytorch/OpenEnv.git",
|
| 21 |
+
"openenv-core[core]>=0.2.1",
|
| 22 |
+
# Environment-specific dependencies
|
| 23 |
+
# Add all dependencies needed for your environment here
|
| 24 |
+
# Examples:
|
| 25 |
+
# "numpy>=1.19.0",
|
| 26 |
+
# "torch>=2.0.0",
|
| 27 |
+
# "gymnasium>=0.29.0",
|
| 28 |
+
# "openspiel>=1.0.0",
|
| 29 |
+
# "smolagents>=1.22.0,<2",
|
| 30 |
+
"pytest>=9.0.3",
|
| 31 |
+
"thefuzz>=0.22.1",
|
| 32 |
+
"transformers>=5.6.2",
|
| 33 |
+
"trl>=1.2.0",
|
| 34 |
+
]
|
| 35 |
+
|
| 36 |
+
[project.optional-dependencies]
|
| 37 |
+
dev = [
|
| 38 |
+
"pytest>=8.0.0",
|
| 39 |
+
"pytest-cov>=4.0.0",
|
| 40 |
+
]
|
| 41 |
+
|
| 42 |
+
[project.scripts]
|
| 43 |
+
# Server entry point - enables running via: uv run --project . server
|
| 44 |
+
# or: python -m debugZero.server.app
|
| 45 |
+
server = "debugZero.server.app:main"
|
| 46 |
+
|
| 47 |
+
[tool.setuptools]
|
| 48 |
+
include-package-data = true
|
| 49 |
+
packages = ["debugZero", "debugZero.server"]
|
| 50 |
+
package-dir = { "debugZero" = ".", "debugZero.server" = "server" }
|
run_episode.py
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import asyncio
|
| 2 |
+
from typing import cast
|
| 3 |
+
import subprocess
|
| 4 |
+
from server.debugZero_environment import DebugzeroEnvironment
|
| 5 |
+
from models import DebugzeroAction, DebugzeroObservation
|
| 6 |
+
|
| 7 |
+
def test_local_env():
|
| 8 |
+
print("Testing DebugzeroEnvironment directly...")
|
| 9 |
+
env = DebugzeroEnvironment()
|
| 10 |
+
obs = env.reset()
|
| 11 |
+
print(f"\nInitial state (role_next={obs.role_next})")
|
| 12 |
+
|
| 13 |
+
# Proposer turn: Send invalid code to test sandbox
|
| 14 |
+
print("\n--- Proposer turn (malicious code) ---")
|
| 15 |
+
action = DebugzeroAction(role="proposer", code="import os\nos.system('echo hacked')")
|
| 16 |
+
obs = env.step(action)
|
| 17 |
+
print(f"Status: done={obs.done}, reward={obs.reward}, syntax_error={obs.syntax_error}")
|
| 18 |
+
print(f"Execution Result:\n{obs.execution_result.strip()}")
|
| 19 |
+
|
| 20 |
+
obs = env.reset()
|
| 21 |
+
# Proposer turn: Inject valid bug
|
| 22 |
+
print("\n--- Proposer turn (valid bug) ---")
|
| 23 |
+
buggy_code = "def has_close_elements(numbers, threshold):\n pass"
|
| 24 |
+
action = DebugzeroAction(role="proposer", code=buggy_code)
|
| 25 |
+
obs = env.step(action)
|
| 26 |
+
print(f"Status: role_next={obs.role_next}, done={obs.done}, reward={obs.reward}, syntax_error={obs.syntax_error}")
|
| 27 |
+
|
| 28 |
+
# Solver turn: Fix the bug
|
| 29 |
+
print("\n--- Solver turn (fix bug) ---")
|
| 30 |
+
valid_code = obs.current_code.replace("pass", "return False")
|
| 31 |
+
action = DebugzeroAction(role="solver", code=valid_code)
|
| 32 |
+
obs = env.step(action)
|
| 33 |
+
print(f"Status: role_next={obs.role_next}, done={obs.done}, reward={obs.reward}, tests_passed={obs.tests_passed}")
|
| 34 |
+
|
| 35 |
+
if __name__ == "__main__":
|
| 36 |
+
test_local_env()
|
server/__init__.py
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 2 |
+
# All rights reserved.
|
| 3 |
+
#
|
| 4 |
+
# This source code is licensed under the BSD-style license found in the
|
| 5 |
+
# LICENSE file in the root directory of this source tree.
|
| 6 |
+
|
| 7 |
+
"""Debugzero environment server components."""
|
| 8 |
+
|
| 9 |
+
from .debugZero_environment import DebugzeroEnvironment
|
| 10 |
+
|
| 11 |
+
__all__ = ["DebugzeroEnvironment"]
|
server/app.py
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 2 |
+
# All rights reserved.
|
| 3 |
+
#
|
| 4 |
+
# This source code is licensed under the BSD-style license found in the
|
| 5 |
+
# LICENSE file in the root directory of this source tree.
|
| 6 |
+
|
| 7 |
+
"""
|
| 8 |
+
FastAPI application for the Debugzero Environment.
|
| 9 |
+
|
| 10 |
+
This module creates an HTTP server that exposes the DebugzeroEnvironment
|
| 11 |
+
over HTTP and WebSocket endpoints, compatible with EnvClient.
|
| 12 |
+
|
| 13 |
+
Endpoints:
|
| 14 |
+
- POST /reset: Reset the environment
|
| 15 |
+
- POST /step: Execute an action
|
| 16 |
+
- GET /state: Get current environment state
|
| 17 |
+
- GET /schema: Get action/observation schemas
|
| 18 |
+
- WS /ws: WebSocket endpoint for persistent sessions
|
| 19 |
+
|
| 20 |
+
Usage:
|
| 21 |
+
# Development (with auto-reload):
|
| 22 |
+
uvicorn server.app:app --reload --host 0.0.0.0 --port 8000
|
| 23 |
+
|
| 24 |
+
# Production:
|
| 25 |
+
uvicorn server.app:app --host 0.0.0.0 --port 8000 --workers 4
|
| 26 |
+
|
| 27 |
+
# Or run directly:
|
| 28 |
+
python -m server.app
|
| 29 |
+
"""
|
| 30 |
+
import os
|
| 31 |
+
|
| 32 |
+
# Definitively enable the web interface for this deployment
|
| 33 |
+
os.environ["ENABLE_WEB_INTERFACE"] = "true"
|
| 34 |
+
|
| 35 |
+
try:
|
| 36 |
+
from openenv.core.env_server.http_server import create_app
|
| 37 |
+
except Exception as e: # pragma: no cover
|
| 38 |
+
raise ImportError(
|
| 39 |
+
"openenv is required for the web interface. Install dependencies with '\n uv sync\n'"
|
| 40 |
+
) from e
|
| 41 |
+
|
| 42 |
+
try:
|
| 43 |
+
from ..models import DebugzeroAction, DebugzeroObservation
|
| 44 |
+
from .debugZero_environment import DebugzeroEnvironment
|
| 45 |
+
except ModuleNotFoundError:
|
| 46 |
+
from models import DebugzeroAction, DebugzeroObservation
|
| 47 |
+
from server.debugZero_environment import DebugzeroEnvironment
|
| 48 |
+
|
| 49 |
+
|
| 50 |
+
# Create the app with web interface and README integration
|
| 51 |
+
app = create_app(
|
| 52 |
+
DebugzeroEnvironment,
|
| 53 |
+
DebugzeroAction,
|
| 54 |
+
DebugzeroObservation,
|
| 55 |
+
env_name="debugZero",
|
| 56 |
+
max_concurrent_envs=1, # increase this number to allow more concurrent WebSocket sessions
|
| 57 |
+
)
|
| 58 |
+
|
| 59 |
+
|
| 60 |
+
def main():
|
| 61 |
+
"""
|
| 62 |
+
Entry point for direct execution via uv run or python -m.
|
| 63 |
+
|
| 64 |
+
This function enables running the server without Docker:
|
| 65 |
+
uv run --project . server
|
| 66 |
+
uv run --project . server --port 8001
|
| 67 |
+
python -m debugZero.server.app
|
| 68 |
+
"""
|
| 69 |
+
import uvicorn
|
| 70 |
+
import argparse
|
| 71 |
+
|
| 72 |
+
parser = argparse.ArgumentParser()
|
| 73 |
+
parser.add_argument("--host", type=str, default="0.0.0.0")
|
| 74 |
+
parser.add_argument("--port", type=int, default=8000)
|
| 75 |
+
args = parser.parse_args()
|
| 76 |
+
|
| 77 |
+
uvicorn.run(app, host=args.host, port=args.port)
|
| 78 |
+
|
| 79 |
+
|
| 80 |
+
if __name__ == '__main__':
|
| 81 |
+
main()
|
server/bug_injector.py
ADDED
|
@@ -0,0 +1,192 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import ast
|
| 2 |
+
import random
|
| 3 |
+
import copy
|
| 4 |
+
|
| 5 |
+
BUILTIN_PAIRS = {
|
| 6 |
+
"min": "max", "max": "min",
|
| 7 |
+
"any": "all", "all": "any",
|
| 8 |
+
"sum": "len", "len": "sum"
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
BLOCKED_IMPORTS = ["os", "sys", "subprocess", "shutil", "pathlib"]
|
| 12 |
+
|
| 13 |
+
def is_safe_injection(code: str) -> bool:
|
| 14 |
+
for blocked in BLOCKED_IMPORTS:
|
| 15 |
+
if f"import {blocked}" in code or f"from {blocked}" in code:
|
| 16 |
+
return False
|
| 17 |
+
return True
|
| 18 |
+
|
| 19 |
+
class BugInjectorVisitor(ast.NodeTransformer):
|
| 20 |
+
def __init__(self, target_operator: str):
|
| 21 |
+
super().__init__()
|
| 22 |
+
self.target_operator = target_operator
|
| 23 |
+
self.mutated = False
|
| 24 |
+
|
| 25 |
+
def visit_Constant(self, node):
|
| 26 |
+
self.generic_visit(node)
|
| 27 |
+
if self.mutated:
|
| 28 |
+
return node
|
| 29 |
+
|
| 30 |
+
if self.target_operator == "off_by_one" and isinstance(node.value, int) and not isinstance(node.value, bool):
|
| 31 |
+
shift = random.choice([-1, 1])
|
| 32 |
+
node.value += shift
|
| 33 |
+
self.mutated = True
|
| 34 |
+
return node
|
| 35 |
+
|
| 36 |
+
return node
|
| 37 |
+
|
| 38 |
+
def visit_Compare(self, node):
|
| 39 |
+
self.generic_visit(node)
|
| 40 |
+
if self.mutated:
|
| 41 |
+
return node
|
| 42 |
+
|
| 43 |
+
if self.target_operator == "wrong_operator":
|
| 44 |
+
if isinstance(node.ops[0], ast.Lt):
|
| 45 |
+
node.ops[0] = ast.GtE()
|
| 46 |
+
self.mutated = True
|
| 47 |
+
elif isinstance(node.ops[0], ast.LtE):
|
| 48 |
+
node.ops[0] = ast.Gt()
|
| 49 |
+
self.mutated = True
|
| 50 |
+
elif isinstance(node.ops[0], ast.Gt):
|
| 51 |
+
node.ops[0] = ast.LtE()
|
| 52 |
+
self.mutated = True
|
| 53 |
+
elif isinstance(node.ops[0], ast.GtE):
|
| 54 |
+
node.ops[0] = ast.Lt()
|
| 55 |
+
self.mutated = True
|
| 56 |
+
elif isinstance(node.ops[0], ast.Eq):
|
| 57 |
+
node.ops[0] = ast.NotEq()
|
| 58 |
+
self.mutated = True
|
| 59 |
+
elif isinstance(node.ops[0], ast.NotEq):
|
| 60 |
+
node.ops[0] = ast.Eq()
|
| 61 |
+
self.mutated = True
|
| 62 |
+
return node
|
| 63 |
+
|
| 64 |
+
def visit_BinOp(self, node):
|
| 65 |
+
self.generic_visit(node)
|
| 66 |
+
if self.mutated:
|
| 67 |
+
return node
|
| 68 |
+
|
| 69 |
+
if self.target_operator == "wrong_operator":
|
| 70 |
+
if isinstance(node.op, ast.Add):
|
| 71 |
+
node.op = ast.Sub()
|
| 72 |
+
self.mutated = True
|
| 73 |
+
elif isinstance(node.op, ast.Sub):
|
| 74 |
+
node.op = ast.Add()
|
| 75 |
+
self.mutated = True
|
| 76 |
+
elif isinstance(node.op, ast.Mult):
|
| 77 |
+
node.op = ast.FloorDiv()
|
| 78 |
+
self.mutated = True
|
| 79 |
+
elif isinstance(node.op, ast.Div):
|
| 80 |
+
node.op = ast.Mult()
|
| 81 |
+
self.mutated = True
|
| 82 |
+
return node
|
| 83 |
+
|
| 84 |
+
def visit_Call(self, node):
|
| 85 |
+
self.generic_visit(node)
|
| 86 |
+
if self.mutated:
|
| 87 |
+
return node
|
| 88 |
+
|
| 89 |
+
if isinstance(node.func, ast.Name):
|
| 90 |
+
# wrong built-in
|
| 91 |
+
if self.target_operator == "wrong_builtin" and node.func.id in BUILTIN_PAIRS:
|
| 92 |
+
node.func.id = BUILTIN_PAIRS[node.func.id]
|
| 93 |
+
self.mutated = True
|
| 94 |
+
|
| 95 |
+
# loop boundary shift
|
| 96 |
+
elif self.target_operator == "loop_boundary_shift" and node.func.id == "range":
|
| 97 |
+
if len(node.args) == 1:
|
| 98 |
+
# `range(n)` -> `range(n+1)`
|
| 99 |
+
node.args[0] = ast.BinOp(left=node.args[0], op=ast.Add(), right=ast.Constant(value=1))
|
| 100 |
+
self.mutated = True
|
| 101 |
+
elif len(node.args) == 2:
|
| 102 |
+
# `range(a, b)` -> `range(a-1, b)`
|
| 103 |
+
node.args[0] = ast.BinOp(left=node.args[0], op=ast.Sub(), right=ast.Constant(value=1))
|
| 104 |
+
self.mutated = True
|
| 105 |
+
|
| 106 |
+
return node
|
| 107 |
+
|
| 108 |
+
def visit_If(self, node):
|
| 109 |
+
self.generic_visit(node)
|
| 110 |
+
if self.mutated:
|
| 111 |
+
return node
|
| 112 |
+
|
| 113 |
+
if self.target_operator == "condition_negation":
|
| 114 |
+
# `if x > 0` -> `if not x > 0`
|
| 115 |
+
node.test = ast.UnaryOp(op=ast.Not(), operand=node.test)
|
| 116 |
+
self.mutated = True
|
| 117 |
+
|
| 118 |
+
if self.target_operator == "missing_base_case":
|
| 119 |
+
for idx, child in enumerate(node.body):
|
| 120 |
+
if isinstance(child, ast.Return):
|
| 121 |
+
node.body[idx] = ast.Pass()
|
| 122 |
+
self.mutated = True
|
| 123 |
+
break
|
| 124 |
+
|
| 125 |
+
return node
|
| 126 |
+
|
| 127 |
+
def visit_Slice(self, node):
|
| 128 |
+
self.generic_visit(node)
|
| 129 |
+
if self.mutated:
|
| 130 |
+
return node
|
| 131 |
+
|
| 132 |
+
if self.target_operator == "slice_boundary_corruption":
|
| 133 |
+
if node.lower is not None:
|
| 134 |
+
node.lower = ast.BinOp(left=node.lower, op=ast.Add(), right=ast.Constant(value=1))
|
| 135 |
+
self.mutated = True
|
| 136 |
+
elif node.upper is not None:
|
| 137 |
+
node.upper = ast.BinOp(left=node.upper, op=ast.Sub(), right=ast.Constant(value=1))
|
| 138 |
+
self.mutated = True
|
| 139 |
+
|
| 140 |
+
return node
|
| 141 |
+
|
| 142 |
+
def visit_Name(self, node):
|
| 143 |
+
self.generic_visit(node)
|
| 144 |
+
return node
|
| 145 |
+
|
| 146 |
+
def visit_Assign(self, node):
|
| 147 |
+
# variable swap strategy applied by exchanging two target assign variables when there are multiple targets
|
| 148 |
+
self.generic_visit(node)
|
| 149 |
+
if self.mutated:
|
| 150 |
+
return node
|
| 151 |
+
|
| 152 |
+
if self.target_operator == "variable_swap" and getattr(node, "targets", None):
|
| 153 |
+
if isinstance(node.targets[0], ast.Tuple) and len(node.targets[0].elts) >= 2:
|
| 154 |
+
# swap a, b = x, y -> b, a = x, y
|
| 155 |
+
node.targets[0].elts[0], node.targets[0].elts[1] = node.targets[0].elts[1], node.targets[0].elts[0]
|
| 156 |
+
self.mutated = True
|
| 157 |
+
return node
|
| 158 |
+
|
| 159 |
+
def inject_bug(original_code: str, proposed_operator: str) -> tuple[str, bool]:
|
| 160 |
+
"""
|
| 161 |
+
4 critical checks:
|
| 162 |
+
- parse succeeds
|
| 163 |
+
- mutation actually changed code
|
| 164 |
+
- blocked imports checked
|
| 165 |
+
- built pairs correctly swapped
|
| 166 |
+
"""
|
| 167 |
+
try:
|
| 168 |
+
tree = ast.parse(original_code)
|
| 169 |
+
except SyntaxError:
|
| 170 |
+
return original_code, False
|
| 171 |
+
|
| 172 |
+
injector = BugInjectorVisitor(proposed_operator)
|
| 173 |
+
mutated_tree = injector.visit(copy.deepcopy(tree))
|
| 174 |
+
ast.fix_missing_locations(mutated_tree)
|
| 175 |
+
|
| 176 |
+
mutated_code = ast.unparse(mutated_tree)
|
| 177 |
+
|
| 178 |
+
# 2. Check if mutation actually changed something
|
| 179 |
+
if mutated_code.strip() == original_code.strip():
|
| 180 |
+
return original_code, False
|
| 181 |
+
|
| 182 |
+
# 3. Blocked imports
|
| 183 |
+
if not is_safe_injection(mutated_code):
|
| 184 |
+
return original_code, False
|
| 185 |
+
|
| 186 |
+
# 4. AST parsing check
|
| 187 |
+
try:
|
| 188 |
+
ast.parse(mutated_code)
|
| 189 |
+
except SyntaxError:
|
| 190 |
+
return original_code, False
|
| 191 |
+
|
| 192 |
+
return mutated_code, True
|
server/debugZero_environment.py
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 2 |
+
# All rights reserved.
|
| 3 |
+
#
|
| 4 |
+
# This source code is licensed under the BSD-style license found in the
|
| 5 |
+
# LICENSE file in the root directory of this source tree.
|
| 6 |
+
|
| 7 |
+
"""
|
| 8 |
+
DebugZero Environment Implementation for Absolute Zero debugging self-play.
|
| 9 |
+
"""
|
| 10 |
+
|
| 11 |
+
from uuid import uuid4
|
| 12 |
+
|
| 13 |
+
from openenv.core.env_server.interfaces import Environment
|
| 14 |
+
from openenv.core.env_server.types import State
|
| 15 |
+
|
| 16 |
+
try:
|
| 17 |
+
from ..models import DebugzeroAction, DebugzeroObservation, DebugzeroState
|
| 18 |
+
except ImportError:
|
| 19 |
+
from models import DebugzeroAction, DebugzeroObservation, DebugzeroState
|
| 20 |
+
|
| 21 |
+
try:
|
| 22 |
+
from .executor import execute_code, ExecutionResult
|
| 23 |
+
from .bug_injector import inject_bug
|
| 24 |
+
from .plausibility import compute_ast_distance
|
| 25 |
+
except ImportError:
|
| 26 |
+
from executor import execute_code, ExecutionResult
|
| 27 |
+
from bug_injector import inject_bug
|
| 28 |
+
from plausibility import compute_ast_distance
|
| 29 |
+
|
| 30 |
+
# Stub for HumanEval dataset holding
|
| 31 |
+
HUMANEVAL_SEED = {
|
| 32 |
+
"seed_id": "HumanEval/0",
|
| 33 |
+
"prompt": "def has_close_elements(numbers: list[float], threshold: float) -> bool:",
|
| 34 |
+
"canonical_solution": " for idx, elem in enumerate(numbers):\n for idx2, elem2 in enumerate(numbers):\n if idx != idx2:\n distance = abs(elem - elem2)\n if distance < threshold:\n return True\n return False\n",
|
| 35 |
+
"test": "def check(candidate):\n assert candidate([1.0, 2.0, 3.0], 0.5) == False\n assert candidate([1.0, 2.8, 3.0, 4.0, 5.0, 2.0], 0.3) == True\n"
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
class DebugzeroEnvironment(Environment):
|
| 39 |
+
"""
|
| 40 |
+
Dual-role DebugZero Environment wrapping a Python sandbox execution
|
| 41 |
+
for Proposer bug injection and Solver bug fixing.
|
| 42 |
+
"""
|
| 43 |
+
SUPPORTS_CONCURRENT_SESSIONS: bool = True
|
| 44 |
+
|
| 45 |
+
def __init__(self):
|
| 46 |
+
self._state = DebugzeroState(
|
| 47 |
+
episode_id=str(uuid4()),
|
| 48 |
+
step_count=0,
|
| 49 |
+
seed_id=HUMANEVAL_SEED["seed_id"],
|
| 50 |
+
original_code=f'{HUMANEVAL_SEED["prompt"]}\n{HUMANEVAL_SEED["canonical_solution"]}',
|
| 51 |
+
current_code=f'{HUMANEVAL_SEED["prompt"]}\n{HUMANEVAL_SEED["canonical_solution"]}',
|
| 52 |
+
role_turn="proposer"
|
| 53 |
+
)
|
| 54 |
+
self._reset_count = 0
|
| 55 |
+
|
| 56 |
+
def reset(self) -> DebugzeroObservation:
|
| 57 |
+
self._state = DebugzeroState(
|
| 58 |
+
episode_id=str(uuid4()),
|
| 59 |
+
step_count=0,
|
| 60 |
+
seed_id=HUMANEVAL_SEED["seed_id"],
|
| 61 |
+
original_code=f'{HUMANEVAL_SEED["prompt"]}\n{HUMANEVAL_SEED["canonical_solution"]}',
|
| 62 |
+
current_code=f'{HUMANEVAL_SEED["prompt"]}\n{HUMANEVAL_SEED["canonical_solution"]}',
|
| 63 |
+
role_turn="proposer"
|
| 64 |
+
)
|
| 65 |
+
self._reset_count += 1
|
| 66 |
+
|
| 67 |
+
return DebugzeroObservation(
|
| 68 |
+
role_next="proposer",
|
| 69 |
+
current_code=self._state.current_code,
|
| 70 |
+
execution_result="",
|
| 71 |
+
tests_passed=True,
|
| 72 |
+
syntax_error=False,
|
| 73 |
+
done=False,
|
| 74 |
+
reward=0.0,
|
| 75 |
+
)
|
| 76 |
+
|
| 77 |
+
def step(self, action: DebugzeroAction) -> DebugzeroObservation: # type: ignore[override]
|
| 78 |
+
self._state.step_count += 1
|
| 79 |
+
|
| 80 |
+
tests = HUMANEVAL_SEED["test"]
|
| 81 |
+
|
| 82 |
+
if action.role == "proposer":
|
| 83 |
+
# The proposer injects buggy code here
|
| 84 |
+
# In our full implementation this string will be parsed and injected into the original code
|
| 85 |
+
# using AST operators from the bug injector
|
| 86 |
+
self._state.current_code = action.code
|
| 87 |
+
|
| 88 |
+
# evaluate
|
| 89 |
+
result = execute_code(self._state.current_code, tests)
|
| 90 |
+
|
| 91 |
+
self._state.role_turn = "solver"
|
| 92 |
+
|
| 93 |
+
# The actual reward will be calculated by the training loop using executor results
|
| 94 |
+
# including the `compute_ast_distance` plausibility score.
|
| 95 |
+
return DebugzeroObservation(
|
| 96 |
+
role_next="solver",
|
| 97 |
+
current_code=self._state.current_code,
|
| 98 |
+
execution_result=result.output[:500], # truncate avoiding overflow
|
| 99 |
+
tests_passed=result.passed,
|
| 100 |
+
syntax_error=result.syntax_error,
|
| 101 |
+
done=False,
|
| 102 |
+
reward=0.0
|
| 103 |
+
)
|
| 104 |
+
|
| 105 |
+
elif action.role == "solver":
|
| 106 |
+
# The solver fixes the bug
|
| 107 |
+
self._state.current_code = action.code
|
| 108 |
+
|
| 109 |
+
# evaluate
|
| 110 |
+
result = execute_code(self._state.current_code, tests)
|
| 111 |
+
|
| 112 |
+
self._state.role_turn = "end"
|
| 113 |
+
|
| 114 |
+
return DebugzeroObservation(
|
| 115 |
+
role_next="end",
|
| 116 |
+
current_code=self._state.current_code,
|
| 117 |
+
execution_result=result.output[:500],
|
| 118 |
+
tests_passed=result.passed,
|
| 119 |
+
syntax_error=result.syntax_error,
|
| 120 |
+
done=True,
|
| 121 |
+
reward=0.0
|
| 122 |
+
)
|
| 123 |
+
|
| 124 |
+
return DebugzeroObservation(role_next="end", done=True)
|
| 125 |
+
|
| 126 |
+
@property
|
| 127 |
+
def state(self) -> DebugzeroState:
|
| 128 |
+
return self._state
|
server/executor.py
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import subprocess
|
| 3 |
+
import tempfile
|
| 4 |
+
import ast
|
| 5 |
+
|
| 6 |
+
BLOCKED_IMPORTS = ["os", "sys", "subprocess", "shutil", "pathlib"]
|
| 7 |
+
BLOCKED_BUILTINS = ["__import__", "eval", "exec", "open"]
|
| 8 |
+
|
| 9 |
+
def is_safe(code: str) -> bool:
|
| 10 |
+
"""
|
| 11 |
+
Check if the code contains any blocked imports strings.
|
| 12 |
+
Also performs a quick AST parse check to see if it parses.
|
| 13 |
+
"""
|
| 14 |
+
# 1. Simple text matching for basic imports
|
| 15 |
+
for mod in BLOCKED_IMPORTS:
|
| 16 |
+
if f"import {mod}" in code or f"from {mod}" in code:
|
| 17 |
+
return False
|
| 18 |
+
|
| 19 |
+
# 2. Block built-in execution loopholes
|
| 20 |
+
for b in BLOCKED_BUILTINS:
|
| 21 |
+
if b in code:
|
| 22 |
+
return False
|
| 23 |
+
|
| 24 |
+
try:
|
| 25 |
+
tree = ast.parse(code)
|
| 26 |
+
except SyntaxError:
|
| 27 |
+
return False
|
| 28 |
+
|
| 29 |
+
# 3. Deep AST walk to find dynamic imports disguised in functions/aliases
|
| 30 |
+
for node in ast.walk(tree):
|
| 31 |
+
if isinstance(node, ast.Import):
|
| 32 |
+
for alias in node.names:
|
| 33 |
+
if alias.name.split('.')[0] in BLOCKED_IMPORTS:
|
| 34 |
+
return False
|
| 35 |
+
elif isinstance(node, ast.ImportFrom):
|
| 36 |
+
if node.module and node.module.split('.')[0] in BLOCKED_IMPORTS:
|
| 37 |
+
return False
|
| 38 |
+
elif isinstance(node, ast.Call):
|
| 39 |
+
if isinstance(node.func, ast.Name) and node.func.id in BLOCKED_BUILTINS:
|
| 40 |
+
return False
|
| 41 |
+
|
| 42 |
+
return True
|
| 43 |
+
|
| 44 |
+
class ExecutionResult:
|
| 45 |
+
def __init__(self, passed: bool, output: str, syntax_error: bool = False, timeout_error: bool = False):
|
| 46 |
+
self.passed = passed
|
| 47 |
+
self.output = output
|
| 48 |
+
self.syntax_error = syntax_error
|
| 49 |
+
self.timeout_error = timeout_error
|
| 50 |
+
|
| 51 |
+
def execute_code(code: str, tests: str, timeout: int = 5) -> ExecutionResult:
|
| 52 |
+
"""
|
| 53 |
+
Executes the provided python code alongside its tests in an isolated subprocess.
|
| 54 |
+
Returns the execution results.
|
| 55 |
+
"""
|
| 56 |
+
full_code = f"{code}\n\n{tests}"
|
| 57 |
+
|
| 58 |
+
if not is_safe(full_code):
|
| 59 |
+
# We need to distinguish between unsafe imports and actual syntax errors
|
| 60 |
+
try:
|
| 61 |
+
ast.parse(full_code)
|
| 62 |
+
return ExecutionResult(passed=False, output="Unsafe import detected.", syntax_error=False)
|
| 63 |
+
except SyntaxError as e:
|
| 64 |
+
return ExecutionResult(passed=False, output=f"SyntaxError: {e}", syntax_error=True)
|
| 65 |
+
|
| 66 |
+
with tempfile.TemporaryDirectory() as temp_dir:
|
| 67 |
+
temp_file = os.path.join(temp_dir, "exec_script.py")
|
| 68 |
+
with open(temp_file, "w") as f:
|
| 69 |
+
f.write(full_code)
|
| 70 |
+
|
| 71 |
+
try:
|
| 72 |
+
# We run the process completely isolated with no stdout buffers blocking us
|
| 73 |
+
result = subprocess.run(
|
| 74 |
+
["python", temp_file],
|
| 75 |
+
capture_output=True,
|
| 76 |
+
text=True,
|
| 77 |
+
timeout=timeout
|
| 78 |
+
)
|
| 79 |
+
|
| 80 |
+
if result.returncode == 0:
|
| 81 |
+
return ExecutionResult(passed=True, output=result.stdout)
|
| 82 |
+
else:
|
| 83 |
+
syntax_error = "SyntaxError" in result.stderr
|
| 84 |
+
return ExecutionResult(passed=False, output=result.stderr, syntax_error=syntax_error)
|
| 85 |
+
|
| 86 |
+
except subprocess.TimeoutExpired:
|
| 87 |
+
return ExecutionResult(passed=False, output="Execution timed out.", timeout_error=True)
|
| 88 |
+
except Exception as e:
|
| 89 |
+
return ExecutionResult(passed=False, output=str(e))
|
server/plausibility.py
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import ast
|
| 2 |
+
from thefuzz import fuzz
|
| 3 |
+
|
| 4 |
+
def compute_ast_distance(original_code: str, mutated_code: str) -> float:
|
| 5 |
+
"""
|
| 6 |
+
Computes the string similarity distance between the AST dumps of the original
|
| 7 |
+
and mutated code using thefuzz (Levenshtein based).
|
| 8 |
+
Zero edits = 0 score.
|
| 9 |
+
Targeted (small) edit = high plausibility (closer to 1.0).
|
| 10 |
+
Random / wide corruption = low score.
|
| 11 |
+
"""
|
| 12 |
+
try:
|
| 13 |
+
orig_ast = ast.dump(ast.parse(original_code))
|
| 14 |
+
mut_ast = ast.dump(ast.parse(mutated_code))
|
| 15 |
+
except SyntaxError:
|
| 16 |
+
return 0.0
|
| 17 |
+
|
| 18 |
+
ratio = fuzz.ratio(orig_ast, mut_ast)
|
| 19 |
+
|
| 20 |
+
if ratio == 100:
|
| 21 |
+
return 0.0
|
| 22 |
+
|
| 23 |
+
# Empirical calibration: simple AST mutations typically result in
|
| 24 |
+
# a fuzz ratio of 85-98%.
|
| 25 |
+
|
| 26 |
+
if 85 <= ratio < 100:
|
| 27 |
+
return 1.0 # Perfect sweet spot
|
| 28 |
+
elif 50 <= ratio < 85:
|
| 29 |
+
# Linearly decay from 1.0 at 85 down to 0.1 at 50
|
| 30 |
+
return max(0.1, (ratio - 50) / 35.0)
|
| 31 |
+
else:
|
| 32 |
+
return 0.0
|
server/requirements.txt
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
openenv[core]>=0.2.0
|
| 2 |
+
fastapi>=0.115.0
|
| 3 |
+
uvicorn>=0.24.0
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
|
training/dual_role_sampler.py
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
PROPOSER_PROMPT = \"\"\"You are the Proposer, an AI designed to challenge the debugging capabilities of other systems.
|
| 2 |
+
Given a clean Python function, inject an adversarial but highly plausible bug into it.
|
| 3 |
+
The bug should be syntax-preserving (the code must still run), realistic (a human developer could have made it), and effective (it should cause the function to fail test cases).
|
| 4 |
+
Return only the modified code, wrapped in triple backticks.
|
| 5 |
+
|
| 6 |
+
Here is the clean function:
|
| 7 |
+
```python
|
| 8 |
+
{code}
|
| 9 |
+
```
|
| 10 |
+
\"\"\"
|
| 11 |
+
|
| 12 |
+
SOLVER_PROMPT = \"\"\"You are the Solver, an AI designed to debug code and fix problems.
|
| 13 |
+
The following code has a bug injected into it resulting in failing execution tests.
|
| 14 |
+
Identify the issue and provide the corrected version.
|
| 15 |
+
Return only the repaired Python code, wrapped in triple backticks.
|
| 16 |
+
|
| 17 |
+
Here is the buggy function:
|
| 18 |
+
```python
|
| 19 |
+
{code}
|
| 20 |
+
```
|
| 21 |
+
\"\"\"
|
| 22 |
+
|
| 23 |
+
def sample_proposer_prompt(code: str) -> str:
|
| 24 |
+
return PROPOSER_PROMPT.format(code=code)
|
| 25 |
+
|
| 26 |
+
def sample_solver_prompt(code: str) -> str:
|
| 27 |
+
return SOLVER_PROMPT.format(code=code)
|
training/grpo_train.py
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import torch
|
| 3 |
+
from datasets import Dataset
|
| 4 |
+
|
| 5 |
+
try:
|
| 6 |
+
from unsloth import FastLanguageModel, is_bfloat16_supported
|
| 7 |
+
HAS_UNSLOTH = True
|
| 8 |
+
except ImportError:
|
| 9 |
+
HAS_UNSLOTH = False
|
| 10 |
+
is_bfloat16_supported = lambda: False # Fallback
|
| 11 |
+
|
| 12 |
+
try:
|
| 13 |
+
from unsloth import PatchFastRL
|
| 14 |
+
PatchFastRL("GRPO", FastLanguageModel)
|
| 15 |
+
except ImportError:
|
| 16 |
+
pass # Older unsloth or purely trl
|
| 17 |
+
|
| 18 |
+
from trl import GRPOConfig, GRPOTrainer
|
| 19 |
+
|
| 20 |
+
try:
|
| 21 |
+
from rewards import compute_proposer_reward, compute_solver_reward
|
| 22 |
+
except ImportError:
|
| 23 |
+
from training.rewards import compute_proposer_reward, compute_solver_reward
|
| 24 |
+
|
| 25 |
+
def reward_fn(completions, prompts, metadata):
|
| 26 |
+
rewards = []
|
| 27 |
+
# completions are strings (generation from the model)
|
| 28 |
+
for completion, meta in zip(completions, metadata):
|
| 29 |
+
# We simulate the environment loop evaluating the output by extracting and running
|
| 30 |
+
# the completion string against the sandbox. Here we just expect `meta` to contain
|
| 31 |
+
# the results produced externally from the sandbox to calculate the final scalar reward.
|
| 32 |
+
|
| 33 |
+
if meta["role"] == "proposer":
|
| 34 |
+
r = compute_proposer_reward(meta)
|
| 35 |
+
rewards.append(r)
|
| 36 |
+
elif meta["role"] == "solver":
|
| 37 |
+
r = compute_solver_reward(meta)
|
| 38 |
+
rewards.append(r)
|
| 39 |
+
else:
|
| 40 |
+
rewards.append(0.0)
|
| 41 |
+
|
| 42 |
+
return rewards
|
| 43 |
+
|
| 44 |
+
def create_dataset():
|
| 45 |
+
# Placeholder: this should fetch the dataset elements or construct the offline episodes
|
| 46 |
+
return Dataset.from_dict({
|
| 47 |
+
"prompt": [
|
| 48 |
+
"Inject a bug into this code...",
|
| 49 |
+
"Fix this buggy code..."
|
| 50 |
+
],
|
| 51 |
+
"metadata": [
|
| 52 |
+
{"role": "proposer", "seed_id": "0", "syntax_error": False, "tests_passed": False, "plausibility_score": 1.0},
|
| 53 |
+
{"role": "solver", "seed_id": "0", "syntax_error": False, "tests_passed": True}
|
| 54 |
+
]
|
| 55 |
+
})
|
| 56 |
+
|
| 57 |
+
def main():
|
| 58 |
+
import argparse
|
| 59 |
+
parser = argparse.ArgumentParser()
|
| 60 |
+
parser.add_argument("--dry_run", action="store_true", help="Run without actual GPU hardware")
|
| 61 |
+
args = parser.parse_args()
|
| 62 |
+
|
| 63 |
+
dataset = create_dataset()
|
| 64 |
+
model_id = "unsloth/Qwen2.5-Coder-3B-Instruct" if HAS_UNSLOTH else "Qwen/Qwen2.5-Coder-3B-Instruct"
|
| 65 |
+
|
| 66 |
+
# Base Configuration
|
| 67 |
+
use_bf16 = False if args.dry_run else HAS_UNSLOTH and is_bfloat16_supported()
|
| 68 |
+
use_fp16 = False if args.dry_run else not use_bf16
|
| 69 |
+
use_cpu = args.dry_run
|
| 70 |
+
|
| 71 |
+
training_args = GRPOConfig(
|
| 72 |
+
output_dir="debugzero_model",
|
| 73 |
+
per_device_train_batch_size=2,
|
| 74 |
+
gradient_accumulation_steps=4,
|
| 75 |
+
learning_rate=2e-5,
|
| 76 |
+
max_steps=250,
|
| 77 |
+
bf16=use_bf16,
|
| 78 |
+
fp16=use_fp16,
|
| 79 |
+
use_cpu=use_cpu,
|
| 80 |
+
logging_steps=10,
|
| 81 |
+
optim="adamw_8bit",
|
| 82 |
+
report_to="none" # Set to "wandb" on Colab if desired
|
| 83 |
+
)
|
| 84 |
+
|
| 85 |
+
if HAS_UNSLOTH and not args.dry_run:
|
| 86 |
+
print("🚀 Initializing Unsloth FastLanguageModel for A100 GPU...")
|
| 87 |
+
model, tokenizer = FastLanguageModel.from_pretrained(
|
| 88 |
+
model_name=model_id,
|
| 89 |
+
max_seq_length=2048,
|
| 90 |
+
load_in_4bit=True, # PEFT/LoRA memory reduction
|
| 91 |
+
fast_inference=True,
|
| 92 |
+
)
|
| 93 |
+
|
| 94 |
+
model = FastLanguageModel.get_peft_model(model,
|
| 95 |
+
r = 16,
|
| 96 |
+
target_modules = ["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"],
|
| 97 |
+
lora_alpha = 16,
|
| 98 |
+
lora_dropout = 0,
|
| 99 |
+
bias = "none",
|
| 100 |
+
use_gradient_checkpointing = "unsloth",
|
| 101 |
+
random_state = 3407,
|
| 102 |
+
use_rslora = False,
|
| 103 |
+
loftq_config = None,
|
| 104 |
+
)
|
| 105 |
+
print("✅ Unsloth LoRA adapters attached!")
|
| 106 |
+
else:
|
| 107 |
+
print(f"⚠️ Unsloth not detected or dry_run=True. Falling back to native TRL.")
|
| 108 |
+
model = model_id
|
| 109 |
+
tokenizer = None
|
| 110 |
+
|
| 111 |
+
trainer = GRPOTrainer(
|
| 112 |
+
model=model,
|
| 113 |
+
reward_funcs=[reward_fn],
|
| 114 |
+
args=training_args,
|
| 115 |
+
train_dataset=dataset
|
| 116 |
+
)
|
| 117 |
+
|
| 118 |
+
if not args.dry_run:
|
| 119 |
+
print("🚀 Starting GRPO training...")
|
| 120 |
+
# trainer.train()
|
| 121 |
+
print("✅ Training complete.")
|
| 122 |
+
else:
|
| 123 |
+
print("✅ GRPOTrainer configured successfully in DRY RUN mode.")
|
| 124 |
+
|
| 125 |
+
if __name__ == "__main__":
|
| 126 |
+
main()
|
training/rewards.py
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from collections import deque
|
| 2 |
+
import statistics
|
| 3 |
+
|
| 4 |
+
# Global solve rate history buffer: {seed_id: deque(maxlen=20)}
|
| 5 |
+
solve_rate_history = {}
|
| 6 |
+
|
| 7 |
+
def get_solve_rate(seed_id: str) -> float:
|
| 8 |
+
if seed_id not in solve_rate_history or len(solve_rate_history[seed_id]) == 0:
|
| 9 |
+
return 0.5 # default baseline if no history yet
|
| 10 |
+
|
| 11 |
+
return statistics.mean(solve_rate_history[seed_id])
|
| 12 |
+
|
| 13 |
+
def record_solve_result(seed_id: str, solved: bool):
|
| 14 |
+
if seed_id not in solve_rate_history:
|
| 15 |
+
solve_rate_history[seed_id] = deque(maxlen=20)
|
| 16 |
+
solve_rate_history[seed_id].append(1.0 if solved else 0.0)
|
| 17 |
+
|
| 18 |
+
def compute_proposer_reward(meta: dict) -> float:
|
| 19 |
+
# meta requires: tests_passed, syntax_error, plausibility_score, seed_id
|
| 20 |
+
validity = 0.0
|
| 21 |
+
if meta.get("syntax_error", False):
|
| 22 |
+
validity = -1.0
|
| 23 |
+
elif not meta.get("tests_passed", True):
|
| 24 |
+
validity = 1.0 # Successfully broke tests
|
| 25 |
+
else:
|
| 26 |
+
validity = 0.0 # Ran fine, didn't break tests
|
| 27 |
+
|
| 28 |
+
plausibility = meta.get("plausibility_score", 0.0)
|
| 29 |
+
|
| 30 |
+
solve_rate = get_solve_rate(meta["seed_id"])
|
| 31 |
+
learnability = 0.0
|
| 32 |
+
if 0.1 <= solve_rate <= 0.9:
|
| 33 |
+
learnability = 1.0
|
| 34 |
+
|
| 35 |
+
return validity + plausibility + learnability
|
| 36 |
+
|
| 37 |
+
def compute_solver_reward(meta: dict) -> float:
|
| 38 |
+
# meta requires: tests_passed, syntax_error, seed_id
|
| 39 |
+
solved = meta.get("tests_passed", False) and not meta.get("syntax_error", True)
|
| 40 |
+
|
| 41 |
+
record_solve_result(meta["seed_id"], solved)
|
| 42 |
+
|
| 43 |
+
if solved:
|
| 44 |
+
return 1.0
|
| 45 |
+
return 0.0
|
uv.lock
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|