{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/cursorcore-assist-programming-through","title":"CursorCore: Assist Programming through Aligning Anything","arxiv_id":"2410.07002","date":"2024-10-09","proceeding":null,"authors":["Hao Jiang","Qi Liu","Rui Li","Shengyu Ye","Shijin Wang"],"abstract":"Large language models have been successfully applied to programming assistance tasks, such as code completion, code insertion, and instructional code editing. However, these applications remain insufficiently automated and struggle to effectively integrate various types of information during the programming process, including coding history, current code, and user instructions. In this work, we propose a new conversational framework that comprehensively integrates these information sources, collect data to train our models and evaluate their performance. Firstly, to thoroughly evaluate how well models align with different types of information and the quality of their outputs, we introduce a new benchmark, APEval (Assist Programming Eval), to comprehensively assess the performance of models in programming assistance tasks. Then, for data collection, we develop a data generation pipeline, Programming-Instruct, which synthesizes training data from diverse sources, such as GitHub and online judge platforms. This pipeline can automatically generate various types of messages throughout the programming process. Finally, using this pipeline, we generate 219K samples, fine-tune multiple models, and develop the CursorCore series. We show that CursorCore outperforms other models of comparable size. This framework unifies applications such as inline chat and automated editing, contributes to the advancement of coding assistants. Code, models and data are freely available at https://github.com/TechxGenus/CursorCore.","url_abs":"https://arxiv.org/abs/2410.07002v3","url_pdf":"https://arxiv.org/pdf/2410.07002v3.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"cursorcore-assist-programming-through","repo_url":"https://github.com/TechxGenus/CursorCore","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"code-completion","task_name":"Code Completion"}],"methods":[{"method_slug":"align","method_name":"ALIGN"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2410.07002","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2410.07002"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/TechxGenus/CursorCore","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":13},"by_repo_kind":{"official":{"samples":13,"ran":13,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"21cc834ebb3bd7ef","entry":"blockwise_if_continuous_modify","repo":"TechxGenus/CursorCore","repo_kind":"official","path":"src/utils.py","file_url":"https://github.com/TechxGenus/CursorCore/blob/HEAD/src/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"21cc834ebb3bd7ef"}},{"code_sha256_prefix":"21907cbb784ea33c","entry":"generate_diff","repo":"TechxGenus/CursorCore","repo_kind":"official","path":"src/utils.py","file_url":"https://github.com/TechxGenus/CursorCore/blob/HEAD/src/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"21907cbb784ea33c"}},{"code_sha256_prefix":"e43ddd2a28d90d8e","entry":"get_changes","repo":"TechxGenus/CursorCore","repo_kind":"official","path":"src/post_collection.py","file_url":"https://github.com/TechxGenus/CursorCore/blob/HEAD/src/post_collection.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e43ddd2a28d90d8e"}},{"code_sha256_prefix":"57b8a8ace06f9a19","entry":"if_continuous_modify","repo":"TechxGenus/CursorCore","repo_kind":"official","path":"src/utils.py","file_url":"https://github.com/TechxGenus/CursorCore/blob/HEAD/src/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"57b8a8ace06f9a19"}},{"code_sha256_prefix":"916956e5856475da","entry":"line_cost","repo":"TechxGenus/CursorCore","repo_kind":"official","path":"eval/search_and_replace.py","file_url":"https://github.com/TechxGenus/CursorCore/blob/HEAD/eval/search_and_replace.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"916956e5856475da"}},{"code_sha256_prefix":"980c046abbc74a62","entry":"match_without_whitespace","repo":"TechxGenus/CursorCore","repo_kind":"official","path":"eval/search_and_replace.py","file_url":"https://github.com/TechxGenus/CursorCore/blob/HEAD/eval/search_and_replace.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"980c046abbc74a62"}},{"code_sha256_prefix":"b5c86200852e285c","entry":"postprocess_output_lc","repo":"TechxGenus/CursorCore","repo_kind":"official","path":"eval/utils.py","file_url":"https://github.com/TechxGenus/CursorCore/blob/HEAD/eval/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b5c86200852e285c"}},{"code_sha256_prefix":"66a98652392c56f7","entry":"postprocess_output_sr","repo":"TechxGenus/CursorCore","repo_kind":"official","path":"eval/utils.py","file_url":"https://github.com/TechxGenus/CursorCore/blob/HEAD/eval/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"66a98652392c56f7"}},{"code_sha256_prefix":"28bc4376d8a33de9","entry":"postprocess_output_wf","repo":"TechxGenus/CursorCore","repo_kind":"official","path":"eval/utils.py","file_url":"https://github.com/TechxGenus/CursorCore/blob/HEAD/eval/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"28bc4376d8a33de9"}},{"code_sha256_prefix":"2f5254e21188f550","entry":"ratio_str","repo":"TechxGenus/CursorCore","repo_kind":"official","path":"eval/extract_results.py","file_url":"https://github.com/TechxGenus/CursorCore/blob/HEAD/eval/extract_results.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2f5254e21188f550"}},{"code_sha256_prefix":"f8e59191046eada4","entry":"sample_from_boundaries","repo":"TechxGenus/CursorCore","repo_kind":"official","path":"src/post_collection.py","file_url":"https://github.com/TechxGenus/CursorCore/blob/HEAD/src/post_collection.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f8e59191046eada4"}},{"code_sha256_prefix":"a6ac45fd74c40523","entry":"sample_from_ranges","repo":"TechxGenus/CursorCore","repo_kind":"official","path":"src/post_collection.py","file_url":"https://github.com/TechxGenus/CursorCore/blob/HEAD/src/post_collection.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a6ac45fd74c40523"}},{"code_sha256_prefix":"9a30f2d2fabf7319","entry":"score_line","repo":"TechxGenus/CursorCore","repo_kind":"official","path":"eval/search_and_replace.py","file_url":"https://github.com/TechxGenus/CursorCore/blob/HEAD/eval/search_and_replace.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"9a30f2d2fabf7319"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}