diff --git a/README.md b/README.md index 4574715..fcd1d2c 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,11 @@ # InfCode -[![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) +[![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![arXiv:2511.16004](https://img.shields.io/badge/TechReport-arXiv%3A2511.16004-b31a1b)](https://arxiv.org/abs/2511.16004) -**InfCode** is an intelligent Code Agent System developed by [Tokfinity](https://www.tokfinity.com)'s Code Research team, which uses LLMs to automatically analyze and fix Code Repo issues. +InfCode is an adversarial multi-agent Code Agent System developed by [Tokfinity](https://www.tokfinity.com)'s Code Research team & Beihang University, which uses LLMs to automatically analyze and fix Code Repo issues. + +InfCode introduces a dual-agent adversarial refinement framework that iteratively improves both test patches and code patches, producing highly reliable fixes verified under strengthened test suites. **Project Status:** InfCode has achieved **79.4%** solution rate on the SWE-Bench Verified split, demonstrating the **latest SOTA** performance. @@ -15,9 +17,13 @@ ### Core Modules -The InfCode adopts a generate-select architectural pattern. Its core modules include the **Patch Generator** and the **Patch Selector**, which are responsible for generating candidate patches and selecting the optimal patch, respectively. +The InfCode adopts a generate-select architectural pattern. Its core modules include the **Patch Generation** and the **Patch Selection**, which are responsible for generating candidate patches and selecting the optimal patch, respectively. - **Patch Generator**: Register multiple groups of generators, where each generator is configured with a separate container to generate and repair multiple candidate patches in parallel. Can interact with `File Editor`, `File Search`, `Bash Executor`, `Result Submitter` tools. The Patch Generator runs up to $5$ attempts and gathers all produced patches. + + - The Generator internally contains two agents: a **Test Patch Generator** and a **Code Patch Generator**, that iteratively improve tests and code in an adversarial loop. The Test Generator strengthens tests to better expose faults, and the Code Generator refines patches to satisfy the newly enhanced tests. + + - **Patch Selector**: Select the best patch from all the candidate patches. Can interact with `File Editor`, `File Search`, `Bash Executor` tools. diff --git a/figures/framework.svg b/figures/framework.svg index f99e123..feae206 100644 --- a/figures/framework.svg +++ b/figures/framework.svg @@ -4,9 +4,9 @@ @@ -16,8 +16,7 @@ clipPathUnits="userSpaceOnUse" id="clipPath2"> @@ -25,8 +24,7 @@ clipPathUnits="userSpaceOnUse" id="clipPath4"> @@ -34,176 +32,176 @@ clipPathUnits="userSpaceOnUse" id="clipPath6"> + id="clipPath8"> + id="path8" /> + id="clipPath10"> + id="path10" /> - - - + + + - - - - - - - - - + id="mask15"> + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHIAAAByCAAAAACqttqhAAAAAXNCSVQI5gpbmQAAA2FJREFUaIHtmV9IU1EYwL+bQ3Sbyp72YlqYLSOJDKQnk558iEitXkIUiSgIgoxKwpR0/YUgM+pFSHuIMJAsiJJpkTIz56zQWeCwP6RYzXTzv2w93Ht3vdvdvff8cRCc38v9POc7+31n3PPdiwNgMBgMBoPBYDAYOuBwFhXYhWUv7DRrUeNsSKAHZ/UG2uUwJVNqECJSGnAWOR4JlXYTueOHRvfJaUjgg4+Xsm4I4aea/GphWVcj/YoqxD7zHQ6J4UScug+nGCqRnU5JqRvD49HyOCtP7zI9uKb6RdBWWmoA4PyTxDgqj6cBAJRciaOygr+c2Rc7RaP7uAaFw+iEYZeQ2w/v3UKljsj8zdv4K9eS+xehUBKOiic2VBczR2mXqU1GPpg6lSV2H7c987qQO9SQd0Hc5b09VcLd+awFACA3/CHHLgcRSt0dLjWtXOo+pVL3qZK6z0Ux7AQAgIfhpaF8lF1Kp4rjpDGlENaOAgAkSTOl6ZkWw9yEZ3BJh5IAvxSeE67zzxt7ZTmUD4k3esh4pKfVvI5Kp+JoWe7avygr3/5RGvX0raNyuVlptFb2sqR0+4z3JPPBr8BQv3AuXTAqhm4YHBBu1G5wiWEXf7l5MiXq8562odWNhLXiTSiKgVR5knyXGWUWfF/Kxu2ZCsOvD86qLLJNR9dIyGKt+slvpi30NSrsW1ZDho6vTyffvPNTX5y9KwpTMuUqPWVl1KM0jOxcLlAzemIb5coZasq7KnMy5W9axtlWvcoJWso7fpVJmfIrJaP/ltqsTPmZkrLJpzYre5U3+JNi5aEQ2KT4CBOR7XLVTcMIdarGiOflOxrGD7fV5+XKvhhZKARPIDUxywp5K7+PWGInsXHErOWIePdpRywxCn9xAHGFdYlsj8Fi9CoJn9JX0Y2QEyQxtmO9o3YQGB14zWvHMrax06jLkBA5MGXYi1UqQNvhRcyVicNYWwzWY/0YwbNzBsPoO4AvBIDCRWTjS61/3GlRsoomnCwjFAJAwU8Eoa/aRG4EsDr0Cqfr02gIAYDb36tHOFCZTEkIAAAFHQvqvhF7HtZu1CaNhUVF2cpT407nK8wXQs3za7XZttq2WMwmDgAgNBf44R0b83om8XS6lOFEkzlpITBP9qsMg8FgMBgMBoPx3/IP1I3TsoZoD84AAAAASUVORK5CYII=" + id="image15" /> + + + + + + + + + + id="clipPath23"> + id="path23" /> + id="clipPath26"> + id="path26" /> + + + + id="clipPath31"> + id="path31" /> @@ -211,8 +209,7 @@ clipPathUnits="userSpaceOnUse" id="clipPath34"> @@ -220,167 +217,188 @@ clipPathUnits="userSpaceOnUse" id="clipPath35"> - - - + id="clipPath37"> + id="path37" /> - - - - - - - - - + + + + id="clipPath44"> + id="path44" /> + + + + id="clipPath46"> + id="path46" /> + + + + id="clipPath48"> + id="path48" /> + + + + + + + + + @@ -388,107 +406,152 @@ clipPathUnits="userSpaceOnUse" id="clipPath56"> + id="clipPath58"> + id="path58" /> + id="clipPath60"> - - - + id="path60" /> + + + + + + + + + + + + + + + + id="clipPath71"> + id="path71" /> + id="clipPath73"> + id="path73" /> + + + @@ -496,8 +559,8 @@ clipPathUnits="userSpaceOnUse" id="clipPath77"> @@ -505,56 +568,50 @@ clipPathUnits="userSpaceOnUse" id="clipPath78"> - - - + + + + id="mask80"> @@ -570,48 +627,57 @@ height="1" style="image-rendering:optimizeSpeed" preserveAspectRatio="none" - xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAAAAADH8yjkAAAAAXNCSVQI5gpbmQAAAONJREFUaIFjYBgFo2AUjIJRMApGwYgAjKhcZlaKTfz1D59swn+KgQmqiUwUu5gAGLVgBFjAgl044S+CXWjEwMDAwHC5C79JSo3E2AfLB8j2boAI7SCg1WQ0H4xaMGrBqAUj2AIcxTUWYHsDvzwnpRZwqROtFBkM/TgYtYAgID4VPVyDxMngZmBgYGA4fgwhJBFNjCnEtiqeQMQakIRGWxWjFoxaMGrBSLYAR3G9DGlEwxRCGaxAkheGUCEaCCEhouwbHQwZtYAMgJZMXxyk2MTPFJswCkbBKBgFo2AUjIJRgAUAAA+xye2M5S/vAAAAAElFTkSuQmCC" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFsAAABbCAAAAAA5XaZFAAAAAXNCSVQI5gpbmQAABXZJREFUaIHtmG1sU1UYx//d1tK9gesWszs2sg5xCwTZkJfJiwHmMCGLiZMgZASzCLIY4wxiSAiRSKKJMWqIL4iERdD5wWXZFkcw+IYGg4hhxGjCy7JugzEwbcegA9q79e+H+9J1Pbe97bovZv8vu+ec5/nds3NPn+c5B5jWpJQ60zJF5CWdD3i7qWgq0JtlkqRncfLR8x5QkcuedPZH1LTNrEuKWcNVgqdksdMFT8liX9afLpl1Ma1abbnlkqSz0aqy9yQfDdtRkmTjFKCBVSTJOHa36W+ZgKbZkUqLNphaKGWn6q0FAIBqWe8YvT1wkwm9tXz/eT9j6e6PjcXxgksP9sbkarq4Py8Ocv5nsmkySQ7vNRu/7G/54iKT5PV6ASgyuRa0Lx3XCsoRBrqrdbxz8/YHMWe9dECbS/+husdmRjNNyVu2s3lIMz9XEAv93D3FMti2xly9YNv0uwofWBTdcoWacX8tNwVWVNOtLroUzaroJknS/1p8NU7Gp+qyRAmSGV0kSY/pbKvrRWXTfmVsodQJ7oVxo4GNCtywvpgXIMn7yxNAAztIkn0zDIZbSJI7EkIDR0iSu8WDy0mSJxJEI8tFkp6HhIOtJBmYO77L7izNtxmw0gvLisIitFJlvBHqCG02uzsTwOc79Y7F29aXWQD4vF7v0IgckAPyqNVqs9qs2Q6Hw2EHIHedON6rO1yoAHB2hWAeNSTJ+VpzwSlzUWrs6MOayzaSHMsXsI+Q5Hnt32kMmEOTdD+tOmWOkORLAvYgSe5T0e+bJpMc26oiOkjy20h0IUlytdLYHQ+aHF2nuL1OkoOR7HUkSSWmVsSXdshBZedVkSSzNaReQ0gA4L0DAPggavYXKH8vAMAVIoWxZwGAW5n2GpF/W/Z6Y3hDJgB4AAB6PtHZVgBQEthGkfc3z/u+bzVkZ1cDgB/AuJJHZ4+L2CsFzs11MnDAkA3RL0ZUszkju754YTRlEf5qM2QXC/qUfyBvT+2cUJ8SJ+/V9kuSJBVIkpR9pCGY2vTko/KBZzUbn9vtGejv6x+o+gQAkBFyP33py4/9emv+DXUv/Q0AUBLbLyHrrBSkfU3WA+0kycbZoTBtGSFJdgKAXduT5/VoOOMqBWy5odyhfwRrC8nuNCwmyVA4sxc/8R4FbLZqa7LlEdEKph0CRq5du+V2u92+VzcAmFt37EJnDXYdRl51viRJkpQjcgSA2gX/KA/HKJq3QFfSsIT7AMfFiKEJ8+bLUPbJLKO3T9S8zfiz9m3MPBmjygGQg3jPDftS0cbMzmWRIxNrfIsBWxDJVJVuAuztq036iNjGvxC8mW5reUo0IPIRsT+8asgu6+6uEfV3fGeSfXftz4bwAuF9VdMW0ZlKGKkHqsornSXOEnGtEaZbPa6entMu4Zg4C7CrCwBynM6SotzcXEdu+DYNDnm8Ho+7r8fVOxLlvVEzzNDQBfUpxWqzzbDZrAF/IBAIyOZOlSazV9Dvj200UVN9nvdNAXdYZZ+ZAvZv6t+s6+FxMGGF4uApva9yKMnsy+NObMXHh5PIvvFu+JHXsseY7TzpvR2uf5uyjNlrtaa2v2m8fy0dkQe3+uB2Q/v72oOJ/V0gOhNuiO1nhu0VxYy+5LDvN45F9N3ZZYKtx5Og8ZuO/lQxYUA+4xEZKlZ6INPZXgCYkzYq8nGJ43OElBvm4fBXQb3VzjTziYy1GQD8PRH9qR6SvBL1oieGynwk+YNg5CBJ8lxxwuiVym3UVr0jVNIXXs4AgEDHuWh5ylCOdVUAgEsLRZ/sFaMyMB6Nig4dAA5PHh00uiGxvBOcJHqkznjRVv8xqUm3hxfyEy/UKp95fHa8J1cAgL/3bKtxrTetaf3v9B8V9Wi3H0FHnQAAAABJRU5ErkJggg==" id="image82" /> + + + + + + + id="mask85"> + xlink:href="data:image/png;base64,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" + id="image85" /> - - - @@ -619,32 +685,17 @@ clipPathUnits="userSpaceOnUse" id="clipPath87"> - - - @@ -652,8 +703,7 @@ clipPathUnits="userSpaceOnUse" id="clipPath90"> @@ -661,8 +711,7 @@ clipPathUnits="userSpaceOnUse" id="clipPath92"> @@ -670,62 +719,99 @@ clipPathUnits="userSpaceOnUse" id="clipPath93"> + + + + + + + id="clipPath97"> - - - + id="path97" /> + + + + + + @@ -733,41 +819,24 @@ clipPathUnits="userSpaceOnUse" id="clipPath104"> - - - + id="clipPath106"> + id="path106" /> @@ -775,8 +844,8 @@ clipPathUnits="userSpaceOnUse" id="clipPath108"> @@ -784,95 +853,101 @@ clipPathUnits="userSpaceOnUse" id="clipPath109"> - - - - - - - - - - - - - - - - - - - - - + id="mask109"> + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEcAAABHCAAAAABw2wXDAAAAAXNCSVQI5gpbmQAAA2hJREFUWIXt139o1HUcx/HXbXbe3MTNDfYd/dL8wSqiWJgOy1KpvzRxKBTabAhFFBFLpYhoRCaikn8E1VYI5h+iBpP+0vLGVBBXIHjb2lTIiryaInd2u23F3bM/7tfn+73b9/u1/pN7/ff+vD/3+H6+Xz53389J5ZRz56Zmy9cDg/37V1U4G03HfnjBt3LXOzEyiTznYEYgda9PpqGfQroCDgYe98fUj2LmswKUYU4W3WzJzAgDjHauXvr83nGAN+1MeJa/5bwFpHaGJEnzTwFTC0zmlE8mNAbsy1VVl4ADBnN6vmVZVmOlp9MGXK3Ol08DySpJ9SPmQxvvfdTD+RToMupBYKWkHdgzta3U4y6MLZIUMToRSQslJR2fCO7pdnVCkiaMzoSkKklf9UlS6lY8Ho/HxyVpa5ubc11Sk9FpkjQmaWJtn6TKa821tbW1NfMOSeqeW2JFubwLHCqUVTFgsSSpOgzwU+YiFeeAV12ch4D0sny5GxjO7mgb9DbwpYujE8BQQ7Z4JgW8kmtloMGgJHUAx9ycR/4Gxl6skDT7kzRwYUa+l4GWSdLLXo46ALgBTAJcf8DoVYch0eDP0ba0sd/+XGLrzfroYKt8Olp3M88M3D/NnNKOfY8fX7QzKkn6sb31F49reqTiCrDdZYKf9UhKD0qK3v7lb/sTZafs3EFOcKWktvr/6dR9HG2XFPjjyMNeU3uBzdP0lkfzv0//dAammVTkbDp/uNHW2jBlvqA/d4fyzrwUDJtQ6yTApfP8eiYN8J4/ZynYoNm/AbGtAUl6IgKwwst5SZIqw3bofeCv3DskeBYYcLuzHmCHJKmm34QqrwFv5Kc1TwFLSgHZtANDM4uhFuB34zjWA3zg4tRcBfqfvceyLGvBuQLUAXxjzHPWRVlhvg0BGK6T1Al8YUxbC/TlqxL7+XSXc+TBDkkJSXOMwTmSbrk5+nD9DcdIUtKwpBZjrEXSSMkbKsTaczGWSCQSifEUQDgkaWYMWF+YchNY5eHkkj3IZ07D+4FoXbYTOApc9j5NFzOy4sDoU5Kku48DbPwvjLQRgG+3b3m9Jw5wwOMbn01oyM44j+TfBf0t50knI22eLDDdPhk1Jp2M1Nyb3aSRdfaG2y0uf+3nXc5/BbpvzWNzk6PfD+BzNeWU4yP/Ash6hxJINpaBAAAAAElFTkSuQmCC" + id="image109" /> + + + + + + + + + + + + + + + + + + + + + + + + @@ -888,60 +963,81 @@ height="1" style="image-rendering:optimizeSpeed" preserveAspectRatio="none" - xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAAAAADH8yjkAAAAAXNCSVQI5gpbmQAAAPxJREFUaIHtlz0KAjEQRkd3G20E8acTBEEbj7CynYWFjb2wtWewFAsvYWXjAbaz3AuIIFY21oKlwlhE2ESCGxhBFr/XhPmSzCsSAiECAAAAAPgGBbOMFuKOwckofXO23BQLPLMsihtmAMHvBb415blWTDtERHTYfO7Ujlx8M2Zm5oeexSrbZmwN1TLumXH+zwACCCCAwAH7c20jiD/PV6WCxtB5qU7+zwCCTNxv0SXRirHatz+mUX0gFCQTrbhWiIhovUqjcGfdlv8zgAACCCBwwP6aekut6Kqhr2clNYxqadRy8r0+gRLwCfw/wds1vZ3FHe/iDgAAAAAAFp43G21xs7BscQAAAABJRU5ErkJggg==" - id="image122" /> + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGwAAAC4CAAAAAAjolYoAAAAAXNCSVQI5gpbmQAAAodJREFUeJztm9tywyAMRHGm///L9KFJmtggdNkVHmw9tQ7oZIUgHhClJNqWAalP1E8C5W08WD0+4sAaIBasgyLAuiQ8TEJhYTIJChuiSnkkslDKNCgQTIfChFHLAihTowDKDKyoMgsqqszGisGMrBDMygqMmRkVUOZguWEelhfmYjlhPpYP5mS5YF6WB+ZmOV6/jayt8zeadfBthWlZTb9GmI7Vc2qDaViCRxNMwRL9WWBD1sgZ8PV7/L0NymRhGkd6WJylh4kspRctTGKpvzDg9Vs/EsqWfWGWuaNri2FFw2hb7VSte8KsPxma9iiWpgOMFRgzx37euEtbmGvr0KnMt0057NUU5twSHXVDslxhdG/1Djq2hPm3leWeWJY9jJHtcrFvQ1hoa96oLHYMIPU+CgseOcA2NzUmfFe4MJOy8LlN38FBWPyMSK8McB7VdbEXhjj7OkU2MoRplWEOEDteqqqV1U4wZhxhKmWwE98mzL8V5oB9G+4ou+WpDls4LTUbhzBkPUDDVx187rfJk5on7EwJAq4WOcBYq0cT9mnoMhgJBi+52cOYUZSU4WuJdjCqMEEZoUhq4nJVex9g7BTLFaWs7QvGzcWuMk693rRsrM2nQDtFNubBWOWcHzB24reV0epUZ48ZrwD3H8YfstlhJJYxz1kb6/4BwWanfh6MWuX+giXMsrlh5N4VmDHP6td/LLvOPMuDse+t/MFSpvTEMNJv/1wiG/l3qB6lpCXjJcYs4drbFcKYYFt5Zn7GTcV1wzgFlnK5dP0wZsGyfmDeylLyY+0xWxqWkx/Lh3FZWFJ+LB3GvEV/6TAmw7Iyf/Ew3rAbdg5Y5tv3wmG8YTfshi0Guw1iv4wyTlqLHQ7ZAAAAAElFTkSuQmCC" + id="image121" /> + id="clipPath122"> + id="path122" /> + + + + + + + id="clipPath127"> - - - + id="path127" /> + + + @@ -949,44 +1045,73 @@ clipPathUnits="userSpaceOnUse" id="clipPath132"> + + + + id="clipPath133"> + id="path133" /> + + + + id="clipPath136"> + id="path136" /> @@ -1002,843 +1127,530 @@ height="1" style="image-rendering:optimizeSpeed" preserveAspectRatio="none" - xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEcAAABHCAAAAABw2wXDAAAAAXNCSVQI5gpbmQAAAzBJREFUWIXtlktIVFEcxr+rYwOj4CBFUzmFFiSVFfaSaFEU5YuIECrcVBK4KyJBF0GrSm3pVkjd6KKIiOyxKLMCNz3ooYuKxhiTUjEwJ5mxr8Xce+fce+5z3IXfas6Z//nd/2/OmcMFluKUXNeK/N2Vwam/i31OXvM0yU8nlMVhoi+YTnf+YjC1U9TycUvWlLw2Cpk7k6Wb7qSlpyAbjOCkZcS/W167RCE5d9anW/SlFca3W53slIWbtZNvt7Ump5mRRDZuJqeBCgU5NW/9upmcEo1pibwOo1uji5vJabTcrs1eRzenYtMjRsptKabmE6bmbZTdnCweWOvFrW7avcj01x21cDtmbNrmsBmvEiY2SBVNHn/EmkmxcKcjx3FTDW5OHDsn3e26J46Dk+xmz3E+qGqKn7tw3Jy0BK45cjw4aametOd4ctJSPGTD8XuJB65achwuJ6W6fpnVfNVPmbPZweky2WP5xZpVltNHbNqJkxPSbGGlzVNDXV+FUfRm7zr14zaSDwHsvXNDeOuIJC9a/p5l7yhwSmLkI/VzC8kLQGCKHMzYR8i7RTJm3ywFTmmM5Gt18IzkRiCUogiKkIytljhNFDilMZLJqvQgnCK/KGpfGVDE/hzGNMwYyeRxdVRPshMAcEUEuXPWGzDoIlkLCeTKMWGUOPknBAnkxokYMfquC6AnAYmTIwHPRQGcuq2PawAMZDhtAPYflFbJnDgAHM28n1cDuK+PwgcA4Lu0yuA1BgC5/STZo4HCKfKzfnDDwyR5CZKXzEHAAMrsuo5phieOESTsugHjgSOClPHMrhswXjgqqAXAdmHXb4kYJ843fRToJ/kKQCvJ8+m5YErEuJ4fAECqoQ94jPSuq6dnfhBo7rCut+sHUKpqc4ACcddDJ3cJBcZ+AnZcPgCAgALcozo112ffho2XlpnW38NtziUWHIv7tr2gctx6pbFY5/wCsDJkLnZICQDMSNNbSbLTRVNI4VOSs0GpO+X9JgCxD7RcJSVYUQSg+7T8zZ4F+s2PFfrqzD0TT8q3k3PmG95Yzh8a89XNcJmw1rB7ocM7lnt8d1mYGBpa8Nn/Uv6//AOJ/iz/jTmjhQAAAABJRU5ErkJggg==" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAAAAAAfl4auAAAAAXNCSVQI5gpbmQAAARtJREFUSInV18sSgzAIBVDw//85XWhiIDwudLqoi7bGnGFQEyjRXx7cY4OIW3isqEU85g9eH0W4GIiHPGXxVYAbSvAJdxNgEwriYA9KYeAAKqBwDPV8cZJSFetK5/u2hvUNquDj5u4DScrng8EjGw8VxtbbhGLzTdwGo5TttxiL7KwACHtLD8Husn0vuCn7Sz6PHGwXKY72qQyHe9y6aKcc749x5GRvDXG2qUc4LQhzgpFyXkz8yEAhcjFSAT0MVc9nkk4Zq7x2ZLBqmxhtFywMtxr3xHEO9SIXWpwDV3orjUt9GRPtKdd6Ohm52A8KXG1Ed1xuYplWyvUG+I3caJ4X7nTtE7c6fr5T7v1buPpxH9y0REjT+Bv7zfEB2dsYdcq4KZYAAAAASUVORK5CYII=" id="image138" /> - - - - - - - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + id="mask153"> + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEcAAABHCAAAAABw2wXDAAAAAXNCSVQI5gpbmQAAA31JREFUWIXtl21olWUYx//PMz0stnGwqS01m6Am0QRLcwq6oWyUrjUTAiGL8pMVWstKUiQhP4jgMRHBXuiDmSAjG1qRy7A3pBfEaRAThyXJlE7pss2d085+fTjPc879nJfHm30R5Pw/3df1v54f932f++1IJZV061WWn3LGVSdTBUrLq4bsuc6jh+IwcvatKblOaz87rTH3fY+noa1jAs7jSaDWEtN8jaw+j5q9SQKpGjvMoiQAiX/SoBORjPNYEmC9HWbyn8DInlmuKpf/ArA3iHnZDqOPgL76dDuyHWC+NcbJNqf1OlJbp2981SgdfkKSWj4eK+ngMUlKXfgxeZPuvA4czYYzgWSVpPokpuJrnKIISdInwLNG3A00SoqRo86J+R+72eY9knoNq9fLncr9prUjfxcEF5s5XZn2hw+tl/Tfib8lKVI3XVrUvqPoqKTDwHNGfAZokCRnF8C1eWn6WiAxOYTzKvBZNpwFJCqVB9KnwAshnHtTwEo/cr8FOvwhmqDXzBVaSPuBK4vT7fIYwFzfSoPilZL0IvBeGGfSFYB9dWWKrugB2J310qD7rThamAisk+NjDc+Jwc9ldhwtvWpgjlQFPGfJqgpZcjT9a59yY3OBI9eaI2fpAQC2FD+yrDiSvgRaQvyCHLdQ5ShU4pQ4txOngML3l9twA6AtUrTCitN81jtXLq252VAMTnXO9eZuM865jgpLjnuIvvmm43wQOHdP3mHHaQT6TdBGgIHY6jeeefMywMHQF0OGM5cgqG4Y+GKaJGncOwCrwjhdQJsk76XR/7BvdACnMjO2HzgXNtfvApskZa5RD1Q9DCMPZsrGx4HFIZyVQN8kE5S+j1cA3xl1e4CtfpDzw0pS58kFqjn9/vmUpO6uJina1fSTpJmSuo26bi9XjDP89OkKTdhoZKJdcy5I5ZIGjeyg0jlJhffX+aeu52SirZL+kmTeajVeLkS13xBUg6SFwO/GJXsEeN4PiqyksqbmKa4k3V3vSmqPSRrzx13SS2/7JUuOS9ReDO+Qr5YEZF7gm4GBBzxnQq/xzrLDtHtR5W9AYlNEkrM6DgzOGA1GmjMAcPXYgaOXAHjSDjN1COAVI/PIdWPuR9bZYbQsFyPNPpfBxJdbYhS9CBtycuXregC4vK06kA89QcYv6/khL+nMmH3nv7+eKfRPuKSSRqn/AT0Bh2ul8HOoAAAAAElFTkSuQmCC" + id="image153" /> + id="clipPath154"> + id="path154" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Image Builder - + transform="matrix(1.3333333,0,0,1.3333333,-182.34269,-240.36082)" + clip-path="url(#clipPath13)" /> Patch Generator + dx="0 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999" + y="0">Stage 1: Patch Generation Patch Selector - - - Issue - Information + dx="0 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999 0.061999999" + y="0">Stage 2: Patch Selection + + - - Code Patch - - + dx="0 0.037450001 0.037450001 0.037450001 0.037450001 0.037450001 0.037450001 0.037450001" + y="0">Tool Box Test Patch + dx="0 0.0089999996 0.0089999996 0.0089999996 0.0089999996 0.0089999996 0.0089999996 0.0089999996 0.0089999996 0.0089999996 0.0089999996 0.0089999996 0.0089999996" + y="0">Function Call + Function Call + id="path24" + d="M 168.84,361.32 H 165 v 11.04 h -7.56 v -11.04 h -3.84 l 7.56,-7.56 7.68,7.56" + style="fill:#91ace0;fill-opacity:1;fill-rule:evenodd;stroke:none" + transform="matrix(1.3333333,0,0,1.3333333,-182.34269,-240.36082)" + clip-path="url(#clipPath25)" /> + Config Env + + Container + + Bash Tool Validation - - - - - Parallel Generation - - - - Patches - - - - Patches - - - Tests - - - - - - - - Chosen - Patch - - - - - LLM - LLM - - - - Tool Box - - Function Calling - - Function Calling - - Config Env - - - - diff --git a/astropy/.../core.py - b/astropy/.../core.py - ...... - - Selection - - - - Container - - - - Bash Tool - - Editor + transform="matrix(1.3333333,0,0,1.3333333,-182.34269,-240.36082)" + clip-path="url(#clipPath37)" /> Searcher + transform="matrix(1.3333333,0,0,1.3333333,-182.34269,-240.36082)" + clip-path="url(#clipPath40)" /> Submit - ter + + Executor + mask="url(#mask45)" + id="image46" + transform="matrix(31.333333,0,0,31.333333,347.33864,271.85385)" + clip-path="url(#clipPath46)" /> + + + + + + + + Code Repository + dx="0 0.037450001 0.037450001 0.037450001 0.037450001 0.037450001 0.037450001 0.037450001 0.037450001" + y="0">Code Repo + /testbed/ + astropy/ + __init__.py + tests/ + examples/ + setup.py + ... + + + Issue + <Problem Statement> + Modeling's + `separability_matrix` + does not compute ... + + + Test + Generator + + Code + Generator + + + Test Patch + git diff ... + + + + Code Patch + git diff ... + + + + Code Patch + es + git diff ... + + Write/Improve + Test Patch + + Write/Improve + Code Patch + + Adversarial Iterative Process + + + + + + + Test Patch + es + git diff ... + + + Selector + + + - - - - diff --git + a/astropy/modeling/separable.py + b/astropy/modeling/separable.py + old mode 100644 + new mode 100755 + ... + + + Chosen Code + Patch + + + + + + + + Run in + the + Container + Evaluation + and + Selection + +