2030 lines
65 KiB
JSON
2030 lines
65 KiB
JSON
{
|
||
"project_name": "llm-codegen",
|
||
"version": "0.0.1",
|
||
"description": "基于大语言模型的代码生成工具",
|
||
"files": [
|
||
{
|
||
"path": ".python-version",
|
||
"summary": "这是一个Python版本配置文件,指定了项目使用的Python版本为3.13。",
|
||
"dependencies": [],
|
||
"functions": [],
|
||
"classes": [],
|
||
"design_updates": {}
|
||
},
|
||
{
|
||
"path": "README.md",
|
||
"summary": "这是一个README.md文件,描述了LLM代码生成工具的项目概述、核心特性、安装方法、使用方式、设计层、工作流、配置和开发指南。它不是一个Python源码文件,而是一个项目文档文件,因此不包含Python代码定义。",
|
||
"dependencies": [],
|
||
"functions": [],
|
||
"classes": [],
|
||
"design_updates": {}
|
||
},
|
||
{
|
||
"path": "pyproject.toml",
|
||
"summary": "这是一个Python项目的配置文件(pyproject.toml),定义了项目的构建系统、元数据、依赖项、脚本入口和自定义工具配置。",
|
||
"dependencies": [],
|
||
"functions": [],
|
||
"classes": [],
|
||
"design_updates": {}
|
||
},
|
||
{
|
||
"path": ".gitignore",
|
||
"summary": "这是一个.gitignore文件,用于指定Git版本控制系统中应忽略的文件和目录,主要针对Python项目、虚拟环境、日志、缓存和配置文件等。",
|
||
"dependencies": [],
|
||
"functions": [],
|
||
"classes": [],
|
||
"design_updates": {}
|
||
},
|
||
{
|
||
"path": "tests/__init__.py",
|
||
"summary": "This file initializes the tests package for llm-codegen, allowing it to be recognized as a Python package.",
|
||
"dependencies": [],
|
||
"functions": [],
|
||
"classes": [],
|
||
"design_updates": {}
|
||
},
|
||
{
|
||
"path": "tests/test_cli.py",
|
||
"summary": "这是一个测试文件,用于测试基于LLM的自动化代码生成与维护工具的CLI命令,包括init、enhance、fix、check和help命令的成功与失败场景。",
|
||
"dependencies": [
|
||
"src/llm_codegen/cli.py"
|
||
],
|
||
"functions": [
|
||
{
|
||
"name": "test_cli_init_success",
|
||
"summary": "测试init命令成功执行,模拟CodeGenerator并验证输出。",
|
||
"inputs": [],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_cli_init_failure_no_readme",
|
||
"summary": "测试init命令当README文件不存在时失败。",
|
||
"inputs": [],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_cli_enhance_success",
|
||
"summary": "测试enhance命令成功执行,模拟CodeGenerator和Path.exists。",
|
||
"inputs": [],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_cli_fix_success",
|
||
"summary": "测试fix命令成功执行,模拟CodeGenerator和Path.exists。",
|
||
"inputs": [],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_cli_help",
|
||
"summary": "测试CLI帮助命令,验证帮助文本输出。",
|
||
"inputs": [],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_cli_enhance_no_design",
|
||
"summary": "测试enhance命令当design.json不存在时失败。",
|
||
"inputs": [],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_cli_fix_no_design",
|
||
"summary": "测试fix命令当design.json不存在时失败。",
|
||
"inputs": [],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_cli_check_success",
|
||
"summary": "测试check命令成功执行,模拟CodeGenerator和Checker。",
|
||
"inputs": [],
|
||
"outputs": []
|
||
}
|
||
],
|
||
"classes": [],
|
||
"design_updates": {}
|
||
},
|
||
{
|
||
"path": "tests/test_diff_applier.py",
|
||
"summary": "这是一个测试文件,用于测试diff_applier模块中的parse_diff和apply_diff函数,包含多个测试用例验证统一差异解析和应用功能。",
|
||
"dependencies": [
|
||
"src/llm_codegen/diff_applier.py"
|
||
],
|
||
"functions": [
|
||
{
|
||
"name": "test_parse_diff",
|
||
"summary": "测试解析统一差异字符串以提取文件路径的功能。",
|
||
"inputs": [],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_apply_diff_new_file",
|
||
"summary": "测试应用创建新文件的差异。",
|
||
"inputs": [],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_apply_diff_modify_existing_file",
|
||
"summary": "测试应用修改现有文件的差异。",
|
||
"inputs": [],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_apply_diff_conflict_handling",
|
||
"summary": "测试应用导致冲突的差异处理。",
|
||
"inputs": [],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_apply_diff_empty_diff",
|
||
"summary": "测试应用空差异字符串。",
|
||
"inputs": [],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_apply_diff_invalid_directory",
|
||
"summary": "测试应用差异到不存在的目录。",
|
||
"inputs": [],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_apply_diff_no_git_repo_initialization",
|
||
"summary": "测试应用差异到非git目录。",
|
||
"inputs": [],
|
||
"outputs": []
|
||
}
|
||
],
|
||
"classes": [],
|
||
"design_updates": {}
|
||
},
|
||
{
|
||
"path": "tests/test_checker.py",
|
||
"summary": "这是一个测试文件,用于测试Checker类的功能,包括检查工具的运行、错误收集和自动修复。它定义了FakeCodeGenerator类作为模拟对象,以及多个pytest fixture和测试类TestChecker,包含各种测试方法。",
|
||
"dependencies": [
|
||
"src/llm_codegen/checker.py",
|
||
"src/llm_codegen/core.py",
|
||
"src/llm_codegen/utils.py"
|
||
],
|
||
"functions": [
|
||
{
|
||
"name": "fake_code_generator",
|
||
"summary": "pytest fixture,返回一个假的CodeGenerator实例用于测试。",
|
||
"inputs": [],
|
||
"outputs": [
|
||
"FakeCodeGenerator实例"
|
||
]
|
||
},
|
||
{
|
||
"name": "checker",
|
||
"summary": "pytest fixture,创建Checker实例,使用临时目录和假的code_generator。",
|
||
"inputs": [
|
||
"fake_code_generator",
|
||
"tmp_path"
|
||
],
|
||
"outputs": [
|
||
"Checker实例"
|
||
]
|
||
}
|
||
],
|
||
"classes": [
|
||
{
|
||
"name": "FakeCodeGenerator",
|
||
"summary": "假的CodeGenerator类,用于替代真实的LLM调用,模拟_call_llm方法。",
|
||
"methods": [
|
||
{
|
||
"name": "__init__",
|
||
"summary": "初始化FakeCodeGenerator实例,设置_call_llm调用标志和参数。",
|
||
"inputs": [
|
||
"self",
|
||
"return_value"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "_call_llm",
|
||
"summary": "模拟_call_llm方法,记录调用参数并返回预设值。",
|
||
"inputs": [
|
||
"self",
|
||
"system_prompt",
|
||
"user_prompt",
|
||
"temperature"
|
||
],
|
||
"outputs": [
|
||
"return_value"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "TestChecker",
|
||
"summary": "测试类,包含多个测试方法,用于验证Checker类的各种功能。",
|
||
"methods": [
|
||
{
|
||
"name": "test_init",
|
||
"summary": "测试Checker的初始化方法,验证属性设置。",
|
||
"inputs": [
|
||
"self",
|
||
"checker",
|
||
"tmp_path"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_run_check_success",
|
||
"summary": "测试run_check方法成功运行检查工具的情况。",
|
||
"inputs": [
|
||
"self",
|
||
"checker",
|
||
"monkeypatch"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_run_check_timeout",
|
||
"summary": "测试run_check方法处理超时的情况。",
|
||
"inputs": [
|
||
"self",
|
||
"checker",
|
||
"monkeypatch"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_run_parallel_checks",
|
||
"summary": "测试并行运行检查工具的方法。",
|
||
"inputs": [
|
||
"self",
|
||
"checker",
|
||
"tmp_path",
|
||
"monkeypatch"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_save_results",
|
||
"summary": "测试保存检查结果到文件的方法。",
|
||
"inputs": [
|
||
"self",
|
||
"checker",
|
||
"tmp_path"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_collect_errors",
|
||
"summary": "测试从结果中收集错误的方法。",
|
||
"inputs": [
|
||
"self",
|
||
"checker",
|
||
"tmp_path"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_collect_errors_no_results",
|
||
"summary": "测试无结果文件时收集错误的方法。",
|
||
"inputs": [
|
||
"self",
|
||
"checker"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_auto_fix",
|
||
"summary": "测试自动修复错误的方法。",
|
||
"inputs": [
|
||
"self",
|
||
"checker",
|
||
"tmp_path"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_auto_fix_no_errors",
|
||
"summary": "测试无错误时自动修复的方法。",
|
||
"inputs": [
|
||
"self",
|
||
"checker"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_run_full_check_and_fix",
|
||
"summary": "测试完整检查与修复循环成功的情况。",
|
||
"inputs": [
|
||
"self",
|
||
"checker",
|
||
"monkeypatch"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_run_full_check_and_fix_failure",
|
||
"summary": "测试完整检查与修复循环失败的情况。",
|
||
"inputs": [
|
||
"self",
|
||
"checker",
|
||
"monkeypatch"
|
||
],
|
||
"outputs": []
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"design_updates": {}
|
||
},
|
||
{
|
||
"path": "src/llm_codegen/init_generator.py",
|
||
"summary": "处理 init 命令的生成器类,继承自 CodeGenerator,用于从 README 初始化项目。",
|
||
"dependencies": [
|
||
"src/llm_codegen/core.py",
|
||
"src/llm_codegen/design_generator.py",
|
||
"src/llm_codegen/design_manager.py"
|
||
],
|
||
"functions": [],
|
||
"classes": [
|
||
{
|
||
"name": "InitGenerator",
|
||
"summary": "处理 init 命令的生成器类,继承自 CodeGenerator,用于从 README 初始化项目。",
|
||
"methods": [
|
||
{
|
||
"name": "__init__",
|
||
"summary": "初始化 InitGenerator,设置 API 参数、输出目录等,并创建 DesignGenerator 实例。",
|
||
"inputs": [
|
||
"api_key: Optional[str]",
|
||
"base_url: str",
|
||
"model: str",
|
||
"output_dir: str",
|
||
"max_concurrency: int"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "run",
|
||
"summary": "处理 init 命令逻辑:根据 README.md 初始化项目,包括读取 README、生成设计文件、排序文件、生成代码、执行命令等步骤。",
|
||
"inputs": [
|
||
"readme_path: Path"
|
||
],
|
||
"outputs": []
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"design_updates": {}
|
||
},
|
||
{
|
||
"path": "src/llm_codegen/enhance_generator.py",
|
||
"summary": "定义了一个增强生成器类EnhanceGenerator,继承自CodeGenerator,专门处理enhance命令逻辑,用于根据需求工单对现有项目进行功能增强,包括读取工单、分析变更、生成或修改文件、更新设计等操作。",
|
||
"dependencies": [
|
||
"src/llm_codegen/core.py",
|
||
"src/llm_codegen/design_manager.py"
|
||
],
|
||
"functions": [],
|
||
"classes": [
|
||
{
|
||
"name": "EnhanceGenerator",
|
||
"summary": "增强生成器类,继承自CodeGenerator,专门处理enhance命令逻辑,用于根据需求工单对现有项目进行功能增强。",
|
||
"methods": [
|
||
{
|
||
"name": "__init__",
|
||
"summary": "初始化EnhanceGenerator,继承BaseGenerator的配置,设置API密钥、基础URL、模型、输出目录、日志文件和最大并发数。",
|
||
"inputs": [
|
||
"api_key",
|
||
"base_url",
|
||
"model",
|
||
"output_dir",
|
||
"log_file",
|
||
"max_concurrency"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "process_enhance",
|
||
"summary": "处理enhance命令的核心逻辑:读取工单,分析变更,生成或修改文件,更新设计。",
|
||
"inputs": [
|
||
"issue_file_path",
|
||
"output_format"
|
||
],
|
||
"outputs": [
|
||
"bool"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"design_updates": {}
|
||
},
|
||
{
|
||
"path": "tests/test_core.py",
|
||
"summary": "这是一个测试文件,用于测试CodeGenerator类及其相关功能,包括模拟OpenAI客户端、测试初始化、解析README、生成设计JSON、生成文件、执行命令、断点续写和拓扑排序等功能。",
|
||
"dependencies": [
|
||
"src/llm_codegen/core.py",
|
||
"src/llm_codegen/models.py"
|
||
],
|
||
"functions": [],
|
||
"classes": [
|
||
{
|
||
"name": "FakeChatCompletion",
|
||
"summary": "模拟OpenAI的chat.completions.create返回值,包含choices属性。",
|
||
"methods": [
|
||
{
|
||
"name": "__init__",
|
||
"summary": "初始化FakeChatCompletion实例,设置choices属性。",
|
||
"inputs": [
|
||
"self",
|
||
"content"
|
||
],
|
||
"outputs": []
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "FakeChoice",
|
||
"summary": "模拟OpenAI的choice对象,包含message属性。",
|
||
"methods": [
|
||
{
|
||
"name": "__init__",
|
||
"summary": "初始化FakeChoice实例,设置message属性。",
|
||
"inputs": [
|
||
"self",
|
||
"message"
|
||
],
|
||
"outputs": []
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "FakeMessage",
|
||
"summary": "模拟OpenAI的message对象,包含content和reasoning_content属性。",
|
||
"methods": [
|
||
{
|
||
"name": "__init__",
|
||
"summary": "初始化FakeMessage实例,设置content和reasoning_content属性。",
|
||
"inputs": [
|
||
"self",
|
||
"content"
|
||
],
|
||
"outputs": []
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "FakeOpenAIClient",
|
||
"summary": "假的OpenAI客户端,用于替换真实客户端,包含chat属性。",
|
||
"methods": [
|
||
{
|
||
"name": "__init__",
|
||
"summary": "初始化FakeOpenAIClient实例,设置chat属性为FakeChat实例。",
|
||
"inputs": [
|
||
"self"
|
||
],
|
||
"outputs": []
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "FakeChat",
|
||
"summary": "模拟OpenAI的chat对象,包含completions属性。",
|
||
"methods": [
|
||
{
|
||
"name": "__init__",
|
||
"summary": "初始化FakeChat实例,设置completions属性为FakeCompletions实例。",
|
||
"inputs": [
|
||
"self"
|
||
],
|
||
"outputs": []
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "FakeCompletions",
|
||
"summary": "模拟OpenAI的completions对象,包含create方法,用于记录调用和返回模拟值。",
|
||
"methods": [
|
||
{
|
||
"name": "__init__",
|
||
"summary": "初始化FakeCompletions实例,设置create_called、create_kwargs和create_return_value属性。",
|
||
"inputs": [
|
||
"self"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "create",
|
||
"summary": "模拟OpenAI的create方法,记录调用参数并返回FakeChatCompletion实例。",
|
||
"inputs": [
|
||
"self",
|
||
"*args",
|
||
"**kwargs"
|
||
],
|
||
"outputs": [
|
||
"FakeChatCompletion"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "TestCodeGenerator",
|
||
"summary": "测试CodeGenerator类的测试类,包含多个测试方法,覆盖初始化、文件解析、设计生成、命令执行、断点续写和拓扑排序等功能。",
|
||
"methods": [
|
||
{
|
||
"name": "test_init_success",
|
||
"summary": "测试CodeGenerator初始化成功,验证API密钥、模型、输出目录和客户端替换。",
|
||
"inputs": [
|
||
"self",
|
||
"code_generator",
|
||
"tmp_path",
|
||
"fake_openai_client"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_init_no_api_key",
|
||
"summary": "测试没有API密钥时CodeGenerator初始化抛出ValueError。",
|
||
"inputs": [
|
||
"self",
|
||
"monkeypatch"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_parse_readme_success",
|
||
"summary": "测试解析README文件成功,返回文件内容。",
|
||
"inputs": [
|
||
"self",
|
||
"code_generator",
|
||
"tmp_path"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_parse_readme_file_not_found",
|
||
"summary": "测试README文件不存在时解析抛出异常。",
|
||
"inputs": [
|
||
"self",
|
||
"code_generator"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_generate_design_json",
|
||
"summary": "测试生成design.json文件,模拟LLM调用并验证设计模型和文件写入。",
|
||
"inputs": [
|
||
"self",
|
||
"code_generator",
|
||
"monkeypatch"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_generate_file_with_dependencies",
|
||
"summary": "测试生成文件,包含依赖文件,模拟LLM调用并验证返回的代码、描述和命令。",
|
||
"inputs": [
|
||
"self",
|
||
"code_generator",
|
||
"monkeypatch",
|
||
"tmp_path"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_execute_command_success",
|
||
"summary": "测试执行命令成功,模拟subprocess.run返回成功。",
|
||
"inputs": [
|
||
"self",
|
||
"code_generator",
|
||
"monkeypatch"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_execute_command_dangerous",
|
||
"summary": "测试阻止危险命令执行,模拟is_dangerous_command返回危险。",
|
||
"inputs": [
|
||
"self",
|
||
"code_generator",
|
||
"monkeypatch"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_execute_command_failure",
|
||
"summary": "测试命令执行失败,模拟subprocess.run返回失败。",
|
||
"inputs": [
|
||
"self",
|
||
"code_generator",
|
||
"monkeypatch"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_run_with_state_resume",
|
||
"summary": "测试断点续写功能,模拟状态文件存在时的运行流程。",
|
||
"inputs": [
|
||
"self",
|
||
"code_generator",
|
||
"monkeypatch",
|
||
"tmp_path"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_run_without_state",
|
||
"summary": "测试没有状态文件时的首次运行,模拟完整流程。",
|
||
"inputs": [
|
||
"self",
|
||
"code_generator",
|
||
"monkeypatch",
|
||
"tmp_path"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_topological_sort_normal",
|
||
"summary": "测试拓扑排序正常依赖排序,验证排序顺序正确。",
|
||
"inputs": [
|
||
"self",
|
||
"code_generator"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_topological_sort_cycle_detection",
|
||
"summary": "测试拓扑排序循环依赖检测,验证抛出ValueError。",
|
||
"inputs": [
|
||
"self",
|
||
"code_generator"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_topological_sort_empty",
|
||
"summary": "测试拓扑排序空输入,验证返回空列表。",
|
||
"inputs": [
|
||
"self",
|
||
"code_generator"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_topological_sort_partial_deps",
|
||
"summary": "测试拓扑排序部分依赖不在列表中,验证忽略不在列表中的依赖。",
|
||
"inputs": [
|
||
"self",
|
||
"code_generator"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "test_topological_sort_complex",
|
||
"summary": "测试拓扑排序复杂依赖关系,验证排序满足所有依赖。",
|
||
"inputs": [
|
||
"self",
|
||
"code_generator"
|
||
],
|
||
"outputs": []
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"design_updates": {}
|
||
},
|
||
{
|
||
"path": "src/llm_codegen/design_generator.py",
|
||
"summary": "该文件是LLM代码生成工具的一部分,包含一个设计生成器类,用于处理设计文件的生成、增量更新和源代码分析,包括模拟git忽略文件的功能。",
|
||
"dependencies": [
|
||
"./core",
|
||
"./models"
|
||
],
|
||
"functions": [
|
||
{
|
||
"name": "get_non_ignored_files",
|
||
"summary": "模拟git行为,递归遍历目录并应用.gitignore规则,返回所有未被忽略的文件。",
|
||
"inputs": [
|
||
"root_path: Path"
|
||
],
|
||
"outputs": [
|
||
"result_files: List[Path]"
|
||
]
|
||
},
|
||
{
|
||
"name": "is_ignored",
|
||
"summary": "判断一个文件是否被.gitignore规则忽略,通过合并所有祖先目录的规则进行匹配。",
|
||
"inputs": [
|
||
"file_path: Path",
|
||
"root_path: Path",
|
||
"specs: dict"
|
||
],
|
||
"outputs": [
|
||
"bool"
|
||
]
|
||
}
|
||
],
|
||
"classes": [
|
||
{
|
||
"name": "DesignGenerator",
|
||
"summary": "设计生成器类,继承自CodeGenerator,专门处理设计文件的生成、增量更新和源代码分析。",
|
||
"methods": [
|
||
{
|
||
"name": "__init__",
|
||
"summary": "初始化设计生成器,设置API密钥、输出目录等参数。",
|
||
"inputs": [
|
||
"api_key: Optional[str]",
|
||
"base_url: str",
|
||
"model: str",
|
||
"output_dir: str",
|
||
"max_concurrency: int"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "process_design_command",
|
||
"summary": "处理设计命令,基于工单内容实现设计文件的生成和增量更新逻辑。",
|
||
"inputs": [
|
||
"issue_content: str",
|
||
"issue_type: str"
|
||
],
|
||
"outputs": [
|
||
"bool"
|
||
]
|
||
},
|
||
{
|
||
"name": "_analyze_single_file",
|
||
"summary": "分析单个文件并返回设计信息字典,包括摘要、依赖、函数和类。",
|
||
"inputs": [
|
||
"file_path: Path",
|
||
"root_dir: Path"
|
||
],
|
||
"outputs": [
|
||
"Dict[str, Any]"
|
||
]
|
||
},
|
||
{
|
||
"name": "analyze_source_files",
|
||
"summary": "分析源代码目录以提取设计信息,用于生成或刷新design.json。",
|
||
"inputs": [
|
||
"source_dir: Path"
|
||
],
|
||
"outputs": [
|
||
"Dict[str, Any]"
|
||
]
|
||
},
|
||
{
|
||
"name": "refresh_design_from_source",
|
||
"summary": "从源代码目录刷新design.json,基于分析结果。",
|
||
"inputs": [
|
||
"source_dir: Path"
|
||
],
|
||
"outputs": [
|
||
"bool"
|
||
]
|
||
},
|
||
{
|
||
"name": "update_single_file_design",
|
||
"summary": "更新design.json中单个文件的条目,基于文件内容。",
|
||
"inputs": [
|
||
"file_path: Path"
|
||
],
|
||
"outputs": [
|
||
"bool"
|
||
]
|
||
},
|
||
{
|
||
"name": "run",
|
||
"summary": "主执行流程,用于集成到命令行接口,支持从README生成、处理工单或更新单个文件。",
|
||
"inputs": [
|
||
"readme_path: Optional[Path]",
|
||
"issue_content: Optional[str]",
|
||
"update_file: Optional[Path]"
|
||
],
|
||
"outputs": []
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"design_updates": {}
|
||
},
|
||
{
|
||
"path": "src/llm_codegen/__init__.py",
|
||
"summary": "llm-codegen包的初始化文件,定义包版本和描述,并导出核心模块以便从包级别导入。",
|
||
"dependencies": [],
|
||
"functions": [],
|
||
"classes": [],
|
||
"design_updates": {}
|
||
},
|
||
{
|
||
"path": "src/llm_codegen/models.py",
|
||
"summary": "该文件定义了多个Pydantic模型,用于代码生成工具中的数据结构,包括设计模型、工单模型、状态模型和响应模型。",
|
||
"dependencies": [],
|
||
"functions": [],
|
||
"classes": [
|
||
{
|
||
"name": "FileStatus",
|
||
"summary": "文件生成状态枚举,定义pending、generating、success和failed四种状态。",
|
||
"methods": []
|
||
},
|
||
{
|
||
"name": "OutputFormat",
|
||
"summary": "输出格式枚举,定义full和diff两种格式。",
|
||
"methods": []
|
||
},
|
||
{
|
||
"name": "FunctionModel",
|
||
"summary": "函数模型,对应design.json中的functions字段,用于表示函数的结构。",
|
||
"methods": []
|
||
},
|
||
{
|
||
"name": "ClassModel",
|
||
"summary": "类模型,对应design.json中的classes字段,用于表示类的结构。",
|
||
"methods": []
|
||
},
|
||
{
|
||
"name": "FileModel",
|
||
"summary": "文件模型,对应design.json中的files字段,用于表示文件的结构,并包含合并设计更新的方法。",
|
||
"methods": [
|
||
{
|
||
"name": "merge_design_updates",
|
||
"summary": "合并设计更新到当前文件模型。",
|
||
"inputs": [
|
||
"updates"
|
||
],
|
||
"outputs": []
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DesignModel",
|
||
"summary": "设计模型,对应design.json的根结构,用于表示整个项目的设计信息。",
|
||
"methods": []
|
||
},
|
||
{
|
||
"name": "FeatureIssue",
|
||
"summary": "需求工单模型,基于README中的模板,用于表示需求工单的结构。",
|
||
"methods": []
|
||
},
|
||
{
|
||
"name": "BugIssue",
|
||
"summary": "Bug工单模型,基于README中的模板,用于表示Bug工单的结构。",
|
||
"methods": []
|
||
},
|
||
{
|
||
"name": "StateModel",
|
||
"summary": "状态模型,用于保存生成过程中的断点状态。",
|
||
"methods": []
|
||
},
|
||
{
|
||
"name": "LLMResponse",
|
||
"summary": "LLM响应模型,用于解析generate_file方法的返回,表示LLM生成的代码和相关信息。",
|
||
"methods": []
|
||
}
|
||
],
|
||
"design_updates": {}
|
||
},
|
||
{
|
||
"path": "src/llm_codegen/fix_generator.py",
|
||
"summary": "定义了一个处理Bug修复逻辑的生成器类FixGenerator,继承自CodeGenerator,用于读取Bug工单、分析变更、生成并应用修复代码。",
|
||
"dependencies": [
|
||
"src/llm_codegen/core.py",
|
||
"src/llm_codegen/models.py",
|
||
"src/llm_codegen/design_manager.py"
|
||
],
|
||
"functions": [],
|
||
"classes": [
|
||
{
|
||
"name": "FixGenerator",
|
||
"summary": "处理Bug修复逻辑的生成器类,继承自CodeGenerator,用于处理fix命令,包括读取Bug工单、分析变更、生成修复代码并应用。",
|
||
"methods": [
|
||
{
|
||
"name": "__init__",
|
||
"summary": "初始化FixGenerator,继承基类参数。",
|
||
"inputs": [
|
||
"**kwargs"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "process_fix",
|
||
"summary": "处理fix命令逻辑:读取Bug工单文件,分析变更,生成并应用修复代码,支持不同输出格式。",
|
||
"inputs": [
|
||
"bug_issue_path",
|
||
"output_format"
|
||
],
|
||
"outputs": [
|
||
"bool",
|
||
"List[Path]"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"design_updates": {}
|
||
},
|
||
{
|
||
"path": "src/llm_codegen/cli.py",
|
||
"summary": "LLM代码生成工具的命令行接口,使用typer构建CLI,支持init、enhance、fix、design四种操作模式,用于自动化代码生成与维护。",
|
||
"dependencies": [
|
||
"src/llm_codegen/init_generator.py",
|
||
"src/llm_codegen/enhance_generator.py",
|
||
"src/llm_codegen/fix_generator.py",
|
||
"src/llm_codegen/design_generator.py"
|
||
],
|
||
"functions": [
|
||
{
|
||
"name": "init_logging",
|
||
"summary": "初始化日志配置,将日志输出到logs/目录,支持控制台和文件记录。",
|
||
"inputs": [
|
||
"output_dir: Path",
|
||
"log_file: Optional[str] = None",
|
||
"command_name: str = \"cli\""
|
||
],
|
||
"outputs": [
|
||
"str"
|
||
]
|
||
}
|
||
],
|
||
"classes": [],
|
||
"design_updates": {}
|
||
},
|
||
{
|
||
"path": "src/llm_codegen/design_manager.py",
|
||
"summary": "设计管理类,用于处理 design.json 文件的加载、保存、README 哈希计算、校验和同步功能。",
|
||
"dependencies": [
|
||
"src/llm_codegen/models.py",
|
||
"src/llm_codegen/utils.py"
|
||
],
|
||
"functions": [],
|
||
"classes": [
|
||
{
|
||
"name": "DesignManager",
|
||
"summary": "设计管理类,用于处理 design.json 文件的加载、保存、README 哈希计算、校验和同步功能。",
|
||
"methods": [
|
||
{
|
||
"name": "__init__",
|
||
"summary": "初始化 DesignManager,设置可选的 design.json 文件路径。",
|
||
"inputs": [
|
||
"design_file_path: Optional[Path] = None"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "load_design",
|
||
"summary": "加载 design.json 文件并解析为 DesignModel 对象。",
|
||
"inputs": [
|
||
"file_path: Optional[Path] = None"
|
||
],
|
||
"outputs": [
|
||
"DesignModel"
|
||
]
|
||
},
|
||
{
|
||
"name": "save_design",
|
||
"summary": "将 DesignModel 对象保存为 design.json 文件。",
|
||
"inputs": [
|
||
"design: DesignModel",
|
||
"file_path: Optional[Path] = None"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "compute_readme_hash",
|
||
"summary": "计算 README 文件的 SHA256 哈希值。",
|
||
"inputs": [
|
||
"readme_path: Path"
|
||
],
|
||
"outputs": [
|
||
"str"
|
||
]
|
||
},
|
||
{
|
||
"name": "validate_readme_hash",
|
||
"summary": "校验 README 文件的哈希值与 design.json 中存储的哈希值是否一致。",
|
||
"inputs": [
|
||
"design: DesignModel",
|
||
"readme_path: Optional[Path] = None"
|
||
],
|
||
"outputs": [
|
||
"bool"
|
||
]
|
||
},
|
||
{
|
||
"name": "sync_with_readme",
|
||
"summary": "同步 design.json 与 README 文件,更新 readme_path 和 readme_hash。",
|
||
"inputs": [
|
||
"design: DesignModel",
|
||
"readme_path: Path"
|
||
],
|
||
"outputs": [
|
||
"DesignModel"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"design_updates": {}
|
||
},
|
||
{
|
||
"path": "src/llm_codegen/core.py",
|
||
"summary": "该文件定义了一个代码生成器基类CodeGenerator,用于基于LLM生成代码文件,支持设计层管理、断点续写、并发生成、依赖分析和命令执行等功能。",
|
||
"dependencies": [
|
||
".llm_client",
|
||
".utils",
|
||
".models",
|
||
".design_manager"
|
||
],
|
||
"functions": [],
|
||
"classes": [
|
||
{
|
||
"name": "CodeGenerator",
|
||
"summary": "代码生成器基类,封装公共逻辑,支持设计层、断点续写和命令执行",
|
||
"methods": [
|
||
{
|
||
"name": "__init__",
|
||
"summary": "初始化生成器,设置API客户端、输出目录和状态文件",
|
||
"inputs": [
|
||
"api_key: Optional[str]",
|
||
"base_url: str",
|
||
"model: str",
|
||
"output_dir: Path",
|
||
"max_concurrency: int"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "_call_llm",
|
||
"summary": "调用LLM客户端生成响应,支持系统提示和用户提示",
|
||
"inputs": [
|
||
"system_prompt: str",
|
||
"user_prompt: str",
|
||
"temperature: float",
|
||
"expect_json: bool"
|
||
],
|
||
"outputs": [
|
||
"result"
|
||
]
|
||
},
|
||
{
|
||
"name": "parse_readme",
|
||
"summary": "读取README文件内容并返回",
|
||
"inputs": [
|
||
"readme_path: Path"
|
||
],
|
||
"outputs": [
|
||
"content: str"
|
||
]
|
||
},
|
||
{
|
||
"name": "load_state",
|
||
"summary": "加载断点续写状态文件,返回状态模型",
|
||
"inputs": [],
|
||
"outputs": [
|
||
"state: Optional[StateModel]"
|
||
]
|
||
},
|
||
{
|
||
"name": "save_state",
|
||
"summary": "保存断点续写状态,适应并发生成(线程安全)",
|
||
"inputs": [
|
||
"generated_files: List[str]",
|
||
"dependencies_map: Dict[str, List[str]]"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "get_project_structure",
|
||
"summary": "从design.json获取文件列表和依赖关系",
|
||
"inputs": [],
|
||
"outputs": [
|
||
"files: List[str]",
|
||
"dependencies: Dict[str, List[str]]"
|
||
]
|
||
},
|
||
{
|
||
"name": "_add_implicit_dependencies",
|
||
"summary": "添加隐式依赖关系,基于文件路径和常见模式",
|
||
"inputs": [
|
||
"files: List[str]",
|
||
"dependencies: Dict[str, List[str]]"
|
||
],
|
||
"outputs": [
|
||
"enhanced: Dict[str, List[str]]"
|
||
]
|
||
},
|
||
{
|
||
"name": "generate_file",
|
||
"summary": "生成单个文件,返回代码、描述和命令列表",
|
||
"inputs": [
|
||
"file_path: str",
|
||
"prompt_instruction: str",
|
||
"dependency_files: List[str]",
|
||
"existing_content: Optional[str]",
|
||
"output_format: str"
|
||
],
|
||
"outputs": [
|
||
"code: str",
|
||
"description: str",
|
||
"commands: List[str]"
|
||
]
|
||
},
|
||
{
|
||
"name": "_generate_file_task",
|
||
"summary": "并发任务函数,用于生成单个文件",
|
||
"inputs": [
|
||
"file_path: str",
|
||
"dependencies: List[str]",
|
||
"generated_files: set"
|
||
],
|
||
"outputs": [
|
||
"success: bool",
|
||
"error_message: str"
|
||
]
|
||
},
|
||
{
|
||
"name": "_topological_sort",
|
||
"summary": "对文件列表进行拓扑排序,基于依赖关系",
|
||
"inputs": [
|
||
"files: List[str]",
|
||
"dependencies: Dict[str, List[str]]"
|
||
],
|
||
"outputs": [
|
||
"sorted_files: List[str]"
|
||
]
|
||
},
|
||
{
|
||
"name": "execute_command",
|
||
"summary": "执行单个命令,检查风险,失败仅记录错误不抛出异常",
|
||
"inputs": [
|
||
"cmd: str",
|
||
"cwd: Optional[Path]"
|
||
],
|
||
"outputs": [
|
||
"success: bool"
|
||
]
|
||
},
|
||
{
|
||
"name": "_analyze_issue",
|
||
"summary": "调用LLM分析工单,返回结构化变更计划",
|
||
"inputs": [
|
||
"issue_content: str",
|
||
"issue_type: str"
|
||
],
|
||
"outputs": [
|
||
"result: Dict[str, Any]"
|
||
]
|
||
},
|
||
{
|
||
"name": "sync_readme",
|
||
"summary": "同步README.md和design.json,利用哈希值判断一致性并更新",
|
||
"inputs": [],
|
||
"outputs": [
|
||
"success: bool"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"design_updates": {}
|
||
},
|
||
{
|
||
"path": "src/llm_codegen/llm_client.py",
|
||
"summary": "LLM客户端类,用于与LLM模型交互,管理API调用、重试逻辑和响应记录保存。",
|
||
"dependencies": [],
|
||
"functions": [],
|
||
"classes": [
|
||
{
|
||
"name": "LLMClient",
|
||
"summary": "LLM客户端,负责与模型交互并管理响应记录。",
|
||
"methods": [
|
||
{
|
||
"name": "__init__",
|
||
"summary": "初始化LLM客户端,设置API参数、输出目录和重试配置。",
|
||
"inputs": [
|
||
"api_key",
|
||
"base_url",
|
||
"model",
|
||
"output_dir",
|
||
"max_retries",
|
||
"retry_delay"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "call",
|
||
"summary": "调用LLM并返回解析后的结果,支持JSON输出和重试机制。",
|
||
"inputs": [
|
||
"messages",
|
||
"temperature",
|
||
"expect_json"
|
||
],
|
||
"outputs": [
|
||
"Dict[str, Any]"
|
||
]
|
||
},
|
||
{
|
||
"name": "_save_response",
|
||
"summary": "将LLM响应保存到文件中,包括消息、内容和元数据。",
|
||
"inputs": [
|
||
"messages",
|
||
"content",
|
||
"reasoning_content",
|
||
"temperature",
|
||
"expect_json"
|
||
],
|
||
"outputs": []
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"design_updates": {}
|
||
},
|
||
{
|
||
"path": "src/llm_codegen/utils.py",
|
||
"summary": "该文件是LLM代码生成项目中的一个工具模块,提供了一系列实用函数和类,包括命令安全检查、文件操作、路径处理、错误日志记录、依赖图构建和拓扑排序、并发队列管理以及进度条创建等功能。",
|
||
"dependencies": [],
|
||
"functions": [
|
||
{
|
||
"name": "is_dangerous_command",
|
||
"summary": "判断命令字符串是否包含危险关键词,返回布尔值和原因。",
|
||
"inputs": [
|
||
"cmd"
|
||
],
|
||
"outputs": [
|
||
"bool",
|
||
"str"
|
||
]
|
||
},
|
||
{
|
||
"name": "read_file",
|
||
"summary": "读取指定文件路径的内容,返回文件内容字符串,失败时抛出IOError。",
|
||
"inputs": [
|
||
"file_path"
|
||
],
|
||
"outputs": [
|
||
"str"
|
||
]
|
||
},
|
||
{
|
||
"name": "write_file",
|
||
"summary": "将内容写入指定文件路径,确保目录存在,失败时抛出IOError。",
|
||
"inputs": [
|
||
"file_path",
|
||
"content"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "ensure_dir",
|
||
"summary": "确保指定目录存在,如果不存在则创建。",
|
||
"inputs": [
|
||
"directory"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "safe_join",
|
||
"summary": "安全地拼接基础路径和多个部分,防止目录遍历攻击,返回绝对路径。",
|
||
"inputs": [
|
||
"base_path",
|
||
"*paths"
|
||
],
|
||
"outputs": [
|
||
"str"
|
||
]
|
||
},
|
||
{
|
||
"name": "log_error",
|
||
"summary": "记录和显示错误信息,根据是否致命使用不同日志级别。",
|
||
"inputs": [
|
||
"error",
|
||
"message",
|
||
"is_fatal"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "is_fatal_error",
|
||
"summary": "判断异常对象是否为致命错误类型(如SystemExit、KeyboardInterrupt等)。",
|
||
"inputs": [
|
||
"error"
|
||
],
|
||
"outputs": [
|
||
"bool"
|
||
]
|
||
},
|
||
{
|
||
"name": "build_dependency_graph",
|
||
"summary": "基于文件列表构建依赖图,返回邻接表表示的字典。",
|
||
"inputs": [
|
||
"files"
|
||
],
|
||
"outputs": [
|
||
"Dict[str, List[str]]"
|
||
]
|
||
},
|
||
{
|
||
"name": "compute_in_degrees",
|
||
"summary": "计算依赖图中每个节点的入度值,返回字典。",
|
||
"inputs": [
|
||
"graph"
|
||
],
|
||
"outputs": [
|
||
"Dict[str, int]"
|
||
]
|
||
},
|
||
{
|
||
"name": "add_implicit_dependency",
|
||
"summary": "根据文件内容检查并添加隐式依赖到依赖列表,返回更新后的列表。",
|
||
"inputs": [
|
||
"file_content",
|
||
"current_deps",
|
||
"implicit_dep_file"
|
||
],
|
||
"outputs": [
|
||
"List[str]"
|
||
]
|
||
},
|
||
{
|
||
"name": "create_progress_bar",
|
||
"summary": "创建并配置一个标准的rich进度条实例,用于任务进度显示。",
|
||
"inputs": [
|
||
"total",
|
||
"description",
|
||
"columns",
|
||
"auto_refresh"
|
||
],
|
||
"outputs": [
|
||
"Progress"
|
||
]
|
||
},
|
||
{
|
||
"name": "topological_sort",
|
||
"summary": "基于依赖图进行拓扑排序,检测循环依赖并报错,返回排序后的节点列表。",
|
||
"inputs": [
|
||
"graph"
|
||
],
|
||
"outputs": [
|
||
"List[str]"
|
||
]
|
||
}
|
||
],
|
||
"classes": [
|
||
{
|
||
"name": "ConcurrentQueueManager",
|
||
"summary": "管理并发队列的简单类,用于并行任务如代码生成或检查,提供队列操作功能。",
|
||
"methods": [
|
||
{
|
||
"name": "__init__",
|
||
"summary": "初始化队列,设置最大大小。",
|
||
"inputs": [
|
||
"maxsize"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "enqueue",
|
||
"summary": "将项目加入队列。",
|
||
"inputs": [
|
||
"item"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "dequeue",
|
||
"summary": "从队列中取出项目,可设置阻塞和超时。",
|
||
"inputs": [
|
||
"block",
|
||
"timeout"
|
||
],
|
||
"outputs": [
|
||
"Any"
|
||
]
|
||
},
|
||
{
|
||
"name": "is_empty",
|
||
"summary": "检查队列是否为空。",
|
||
"inputs": [],
|
||
"outputs": [
|
||
"bool"
|
||
]
|
||
},
|
||
{
|
||
"name": "size",
|
||
"summary": "获取队列中项目数量。",
|
||
"inputs": [],
|
||
"outputs": [
|
||
"int"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"design_updates": {}
|
||
},
|
||
{
|
||
"path": "design.json",
|
||
"summary": "这是一个名为 llm-codegen 的基于大语言模型的代码生成工具的设计文件,描述了项目的整体结构、文件依赖关系、函数和类定义,用于自动化代码生成与维护。",
|
||
"dependencies": [
|
||
"src/llm_codegen/init_generator.py",
|
||
"src/llm_codegen/design_generator.py",
|
||
"src/llm_codegen/enhance_generator.py",
|
||
"src/llm_codegen/models.py",
|
||
"src/llm_codegen/__init__.py",
|
||
"src/llm_codegen/fix_generator.py",
|
||
"src/llm_codegen/core.py",
|
||
"src/llm_codegen/cli.py",
|
||
"src/llm_codegen/utils.py"
|
||
],
|
||
"functions": [
|
||
{
|
||
"name": "is_dangerous_command",
|
||
"summary": "检查命令是否危险,从utils模块导入,用于execute_command方法中验证命令安全性。",
|
||
"inputs": [
|
||
"cmd: str"
|
||
],
|
||
"outputs": [
|
||
"bool",
|
||
"str"
|
||
]
|
||
},
|
||
{
|
||
"name": "init_logging",
|
||
"summary": "初始化日志配置到logs/目录,设置控制台和文件日志处理器。",
|
||
"inputs": [
|
||
"output_dir: Path",
|
||
"log_file: Optional[str]",
|
||
"command_name: str"
|
||
],
|
||
"outputs": [
|
||
"str"
|
||
]
|
||
},
|
||
{
|
||
"name": "is_dangerous_command",
|
||
"summary": "判断命令字符串是否包含危险关键词。",
|
||
"inputs": [
|
||
"cmd"
|
||
],
|
||
"outputs": [
|
||
"Tuple[bool, str]"
|
||
]
|
||
},
|
||
{
|
||
"name": "read_file",
|
||
"summary": "读取指定文件路径的内容。",
|
||
"inputs": [
|
||
"file_path"
|
||
],
|
||
"outputs": [
|
||
"str"
|
||
]
|
||
},
|
||
{
|
||
"name": "write_file",
|
||
"summary": "将内容写入指定文件路径,自动创建父目录。",
|
||
"inputs": [
|
||
"file_path",
|
||
"content"
|
||
],
|
||
"outputs": [
|
||
"None"
|
||
]
|
||
},
|
||
{
|
||
"name": "ensure_dir",
|
||
"summary": "确保指定目录存在,如果不存在则创建。",
|
||
"inputs": [
|
||
"directory"
|
||
],
|
||
"outputs": [
|
||
"None"
|
||
]
|
||
},
|
||
{
|
||
"name": "safe_join",
|
||
"summary": "安全地拼接路径,防止目录遍历攻击。",
|
||
"inputs": [
|
||
"base_path",
|
||
"*paths"
|
||
],
|
||
"outputs": [
|
||
"str"
|
||
]
|
||
},
|
||
{
|
||
"name": "log_error",
|
||
"summary": "记录和显示错误信息,支持自定义消息和致命错误标记。",
|
||
"inputs": [
|
||
"error",
|
||
"message",
|
||
"is_fatal"
|
||
],
|
||
"outputs": [
|
||
"None"
|
||
]
|
||
},
|
||
{
|
||
"name": "is_fatal_error",
|
||
"summary": "判断异常是否为致命错误类型。",
|
||
"inputs": [
|
||
"error"
|
||
],
|
||
"outputs": [
|
||
"bool"
|
||
]
|
||
},
|
||
{
|
||
"name": "build_dependency_graph",
|
||
"summary": "基于文件列表构建依赖图。",
|
||
"inputs": [
|
||
"files"
|
||
],
|
||
"outputs": [
|
||
"Dict[str, List[str]]"
|
||
]
|
||
},
|
||
{
|
||
"name": "compute_in_degrees",
|
||
"summary": "计算依赖图中每个节点的入度。",
|
||
"inputs": [
|
||
"graph"
|
||
],
|
||
"outputs": [
|
||
"Dict[str, int]"
|
||
]
|
||
},
|
||
{
|
||
"name": "add_implicit_dependency",
|
||
"summary": "根据文件内容添加隐式依赖。",
|
||
"inputs": [
|
||
"file_content",
|
||
"current_deps",
|
||
"implicit_dep_file"
|
||
],
|
||
"outputs": [
|
||
"List[str]"
|
||
]
|
||
},
|
||
{
|
||
"name": "create_progress_bar",
|
||
"summary": "创建并配置一个标准的rich进度条。",
|
||
"inputs": [
|
||
"total",
|
||
"description",
|
||
"columns",
|
||
"auto_refresh"
|
||
],
|
||
"outputs": [
|
||
"Progress"
|
||
]
|
||
},
|
||
{
|
||
"name": "topological_sort",
|
||
"summary": "基于依赖图进行拓扑排序,检测循环依赖。",
|
||
"inputs": [
|
||
"graph"
|
||
],
|
||
"outputs": [
|
||
"List[str]"
|
||
]
|
||
}
|
||
],
|
||
"classes": [
|
||
{
|
||
"name": "InitGenerator",
|
||
"summary": "处理 init 命令的生成器类,继承自 CodeGenerator,用于从 README 初始化项目。",
|
||
"methods": [
|
||
{
|
||
"name": "__init__",
|
||
"summary": "初始化 InitGenerator,设置 API 密钥、基础 URL、模型、输出目录、日志文件和最大并发数。",
|
||
"inputs": [
|
||
"api_key: Optional[str]",
|
||
"base_url: str",
|
||
"model: str",
|
||
"output_dir: str",
|
||
"log_file: Optional[str]",
|
||
"max_concurrency: int"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "run",
|
||
"summary": "处理 init 命令逻辑:根据 README.md 初始化项目,包括读取 README、生成设计文件、获取项目结构、拓扑排序、生成文件、执行命令和保存状态。",
|
||
"inputs": [
|
||
"readme_path: Path"
|
||
],
|
||
"outputs": []
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DesignGenerator",
|
||
"summary": "设计生成器类,负责处理设计文件的生成、更新和源代码分析。",
|
||
"methods": [
|
||
{
|
||
"name": "__init__",
|
||
"summary": "初始化设计生成器,设置API密钥、输出目录等参数,并继承父类初始化。",
|
||
"inputs": [
|
||
"api_key: Optional[str]",
|
||
"base_url: str",
|
||
"model: str",
|
||
"output_dir: str",
|
||
"log_file: Optional[str]",
|
||
"max_concurrency: int"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "process_design_command",
|
||
"summary": "处理设计命令,基于工单内容实现设计文件的生成和增量更新,包括源文件分析、LLM调用和合并/覆盖处理。",
|
||
"inputs": [
|
||
"issue_content: str",
|
||
"issue_type: str"
|
||
],
|
||
"outputs": [
|
||
"bool"
|
||
]
|
||
},
|
||
{
|
||
"name": "analyze_source_files",
|
||
"summary": "分析源代码目录以提取设计信息,用于生成或刷新design.json,通过调用LLM分析每个Python文件。",
|
||
"inputs": [
|
||
"source_dir: Path"
|
||
],
|
||
"outputs": [
|
||
"Dict[str, Any]"
|
||
]
|
||
},
|
||
{
|
||
"name": "refresh_design_from_source",
|
||
"summary": "从源代码目录刷新design.json,基于analyze_source_files的分析结果构建并保存DesignModel。",
|
||
"inputs": [
|
||
"source_dir: Path"
|
||
],
|
||
"outputs": [
|
||
"bool"
|
||
]
|
||
},
|
||
{
|
||
"name": "run",
|
||
"summary": "主执行流程,用于集成到命令行接口,支持从README生成design.json或处理工单内容。",
|
||
"inputs": [
|
||
"readme_path: Optional[Path]",
|
||
"issue_content: Optional[str]"
|
||
],
|
||
"outputs": []
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "EnhanceGenerator",
|
||
"summary": "增强生成器类,继承自BaseGenerator,专门处理enhance命令逻辑,用于根据需求工单(feature.issue)对现有项目进行功能增强。",
|
||
"methods": [
|
||
{
|
||
"name": "__init__",
|
||
"summary": "初始化EnhanceGenerator,继承BaseGenerator的配置。",
|
||
"inputs": [
|
||
"api_key: Optional[str]",
|
||
"base_url: str",
|
||
"model: str",
|
||
"output_dir: str",
|
||
"log_file: Optional[str]",
|
||
"max_concurrency: int"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "process_enhance",
|
||
"summary": "处理enhance命令的核心逻辑:读取工单,分析变更,生成或修改文件,更新设计。",
|
||
"inputs": [
|
||
"issue_file_path: Path",
|
||
"output_format: str"
|
||
],
|
||
"outputs": [
|
||
"bool"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "FileStatus",
|
||
"summary": "文件生成状态枚举,定义了pending、generating、success和failed四种状态。",
|
||
"methods": []
|
||
},
|
||
{
|
||
"name": "OutputFormat",
|
||
"summary": "输出格式枚举,定义了full和diff两种格式。",
|
||
"methods": []
|
||
},
|
||
{
|
||
"name": "FunctionModel",
|
||
"summary": "函数模型,对应design.json中的functions字段,用于表示函数信息。",
|
||
"methods": []
|
||
},
|
||
{
|
||
"name": "ClassModel",
|
||
"summary": "类模型,对应design.json中的classes字段,用于表示类信息。",
|
||
"methods": []
|
||
},
|
||
{
|
||
"name": "FileModel",
|
||
"summary": "文件模型,对应design.json中的files字段,用于表示文件信息,并包含合并设计更新的方法。",
|
||
"methods": [
|
||
{
|
||
"name": "merge_design_updates",
|
||
"summary": "合并设计更新到当前文件模型。",
|
||
"inputs": [
|
||
"updates"
|
||
],
|
||
"outputs": []
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "DesignModel",
|
||
"summary": "设计模型,对应design.json的根结构,用于表示整个项目的设计信息。",
|
||
"methods": []
|
||
},
|
||
{
|
||
"name": "FeatureIssue",
|
||
"summary": "需求工单模型,基于README中的模板,用于表示功能需求工单。",
|
||
"methods": []
|
||
},
|
||
{
|
||
"name": "BugIssue",
|
||
"summary": "Bug工单模型,基于README中的模板,用于表示Bug报告工单。",
|
||
"methods": []
|
||
},
|
||
{
|
||
"name": "StateModel",
|
||
"summary": "状态模型,用于保存生成过程中的断点状态,如文件索引和状态。",
|
||
"methods": []
|
||
},
|
||
{
|
||
"name": "LLMResponse",
|
||
"summary": "LLM响应模型,用于解析generate_file方法的返回,包含代码、描述和输出格式等信息。",
|
||
"methods": []
|
||
},
|
||
{
|
||
"name": "FixGenerator",
|
||
"summary": "处理Bug修复逻辑的生成器类,继承自CodeGenerator,用于处理fix命令,包括读取Bug工单、分析变更、生成并应用修复代码。",
|
||
"methods": [
|
||
{
|
||
"name": "__init__",
|
||
"summary": "初始化FixGenerator,继承基类参数。",
|
||
"inputs": [
|
||
"**kwargs"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "process_fix",
|
||
"summary": "处理fix命令逻辑:读取Bug工单,分析变更,生成并应用修复代码。",
|
||
"inputs": [
|
||
"bug_issue_path: Path",
|
||
"output_format: OutputFormat = OutputFormat.FULL"
|
||
],
|
||
"outputs": [
|
||
"bool"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "CodeGenerator",
|
||
"summary": "代码生成器基类,封装公共逻辑,支持设计层、断点续写和命令执行。",
|
||
"methods": [
|
||
{
|
||
"name": "__init__",
|
||
"summary": "初始化生成器,设置API客户端、输出目录、日志和状态。",
|
||
"inputs": [
|
||
"api_key: Optional[str]",
|
||
"base_url: str",
|
||
"model: str",
|
||
"output_dir: str",
|
||
"log_file: Optional[str]",
|
||
"max_concurrency: int"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "_call_llm",
|
||
"summary": "调用LLM并返回解析后的JSON,保存响应到文件。",
|
||
"inputs": [
|
||
"system_prompt: str",
|
||
"user_prompt: str",
|
||
"temperature: float",
|
||
"expect_json: bool"
|
||
],
|
||
"outputs": [
|
||
"Dict[str, Any]"
|
||
]
|
||
},
|
||
{
|
||
"name": "parse_readme",
|
||
"summary": "读取README文件内容。",
|
||
"inputs": [
|
||
"readme_path: Path"
|
||
],
|
||
"outputs": [
|
||
"str"
|
||
]
|
||
},
|
||
{
|
||
"name": "generate_design_json",
|
||
"summary": "调用LLM生成design.json内容,并解析为DesignModel。",
|
||
"inputs": [],
|
||
"outputs": [
|
||
"DesignModel"
|
||
]
|
||
},
|
||
{
|
||
"name": "load_state",
|
||
"summary": "加载断点续写状态。",
|
||
"inputs": [],
|
||
"outputs": [
|
||
"Optional[StateModel]"
|
||
]
|
||
},
|
||
{
|
||
"name": "save_state",
|
||
"summary": "保存断点续写状态,适应并发生成(线程安全)。",
|
||
"inputs": [
|
||
"generated_files: List[str]",
|
||
"dependencies_map: Dict[str, List[str]]"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "get_project_structure",
|
||
"summary": "从design.json获取文件列表和依赖关系。",
|
||
"inputs": [],
|
||
"outputs": [
|
||
"Tuple[List[str], Dict[str, List[str]]]"
|
||
]
|
||
},
|
||
{
|
||
"name": "_add_implicit_dependencies",
|
||
"summary": "添加隐式依赖关系,基于文件路径和常见模式。",
|
||
"inputs": [
|
||
"files: List[str]",
|
||
"dependencies: Dict[str, List[str]]"
|
||
],
|
||
"outputs": [
|
||
"Dict[str, List[str]]"
|
||
]
|
||
},
|
||
{
|
||
"name": "generate_file",
|
||
"summary": "生成单个文件,返回代码、描述和命令列表。",
|
||
"inputs": [
|
||
"file_path: str",
|
||
"prompt_instruction: str",
|
||
"dependency_files: List[str]",
|
||
"existing_content: Optional[str]",
|
||
"output_format: str"
|
||
],
|
||
"outputs": [
|
||
"Tuple[str, str, List[str]]"
|
||
]
|
||
},
|
||
{
|
||
"name": "_generate_file_task",
|
||
"summary": "并发任务函数,用于生成单个文件。",
|
||
"inputs": [
|
||
"file_path: str",
|
||
"dependencies: List[str]",
|
||
"generated_files: set"
|
||
],
|
||
"outputs": [
|
||
"Tuple[bool, str]"
|
||
]
|
||
},
|
||
{
|
||
"name": "_topological_sort",
|
||
"summary": "对文件列表进行拓扑排序,基于依赖关系。",
|
||
"inputs": [
|
||
"files: List[str]",
|
||
"dependencies: Dict[str, List[str]]"
|
||
],
|
||
"outputs": [
|
||
"List[str]"
|
||
]
|
||
},
|
||
{
|
||
"name": "execute_command",
|
||
"summary": "执行单个命令,检查风险,失败仅记录错误不抛出异常。",
|
||
"inputs": [
|
||
"cmd: str",
|
||
"cwd: Optional[Path]"
|
||
],
|
||
"outputs": [
|
||
"bool"
|
||
]
|
||
},
|
||
{
|
||
"name": "_analyze_issue",
|
||
"summary": "调用LLM分析工单,返回结构化变更计划。",
|
||
"inputs": [
|
||
"issue_content: str",
|
||
"issue_type: str"
|
||
],
|
||
"outputs": [
|
||
"Dict[str, Any]"
|
||
]
|
||
},
|
||
{
|
||
"name": "_update_design",
|
||
"summary": "根据生成的变更更新design.json。",
|
||
"inputs": [
|
||
"generated_files: List[str]",
|
||
"design_updates: Dict[str, Any]"
|
||
],
|
||
"outputs": []
|
||
},
|
||
{
|
||
"name": "refresh_design",
|
||
"summary": "重新生成design.json,基于当前README内容或加载的design.json。",
|
||
"inputs": [],
|
||
"outputs": [
|
||
"bool"
|
||
]
|
||
},
|
||
{
|
||
"name": "update_file_entry",
|
||
"summary": "更新design.json中单个文件的条目,基于提供的文件内容。",
|
||
"inputs": [
|
||
"file_path: str",
|
||
"file_content: str"
|
||
],
|
||
"outputs": [
|
||
"bool"
|
||
]
|
||
},
|
||
{
|
||
"name": "sync_readme",
|
||
"summary": "同步README.md和design.json,确保内容一致性。",
|
||
"inputs": [],
|
||
"outputs": [
|
||
"bool"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "ConcurrentQueueManager",
|
||
"summary": "管理并发队列的简单类,用于并行任务如代码生成或检查。",
|
||
"methods": [
|
||
{
|
||
"name": "__init__",
|
||
"summary": "初始化队列。",
|
||
"inputs": [
|
||
"maxsize"
|
||
],
|
||
"outputs": [
|
||
"None"
|
||
]
|
||
},
|
||
{
|
||
"name": "enqueue",
|
||
"summary": "将项目加入队列。",
|
||
"inputs": [
|
||
"item"
|
||
],
|
||
"outputs": [
|
||
"None"
|
||
]
|
||
},
|
||
{
|
||
"name": "dequeue",
|
||
"summary": "从队列中取出项目。",
|
||
"inputs": [
|
||
"block",
|
||
"timeout"
|
||
],
|
||
"outputs": [
|
||
"Any"
|
||
]
|
||
},
|
||
{
|
||
"name": "is_empty",
|
||
"summary": "检查队列是否为空。",
|
||
"inputs": [],
|
||
"outputs": [
|
||
"bool"
|
||
]
|
||
},
|
||
{
|
||
"name": "size",
|
||
"summary": "获取队列中项目数量。",
|
||
"inputs": [],
|
||
"outputs": [
|
||
"int"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"design_updates": {}
|
||
}
|
||
],
|
||
"commands": [],
|
||
"check_tools": [],
|
||
"readme_path": "README.md",
|
||
"readme_hash": "5d0832d556d6aaf64718fc8d29516653fe61f550fb52e3cd924e91ec1979c84a"
|
||
} |