diff --git a/.idea/.gitignore b/.idea/.gitignore index 35410ca..26d3352 100644 --- a/.idea/.gitignore +++ b/.idea/.gitignore @@ -1,8 +1,3 @@ -# 默认忽略的文件 +# Default ignored files /shelf/ /workspace.xml -# 基于编辑器的 HTTP 客户端请求 -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/.idea/AIDeveloper.iml b/.idea/AIDeveloper.iml index f77e96c..68b3de4 100644 --- a/.idea/AIDeveloper.iml +++ b/.idea/AIDeveloper.iml @@ -1,13 +1,13 @@ - - + + + + + + + - - - - \ No newline at end of file diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml deleted file mode 100644 index 01d8a79..0000000 --- a/.idea/jsLibraryMappings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index b4e51a5..f8b4d26 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,7 @@ - + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 94a25f7..35eb1dd 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/MCPServers/requirement.py b/MCPServers/requirement.py deleted file mode 100644 index afd778f..0000000 --- a/MCPServers/requirement.py +++ /dev/null @@ -1,16 +0,0 @@ -from mcp.server.fastmcp import FastMCP -from mcp.server.transport_security import TransportSecuritySettings - -mcp = FastMCP("requirements", - transport_security=TransportSecuritySettings(enable_dns_rebinding_protection=False)) - - -@mcp.tool() -def generate_requirement_document(project: str, requirements: list, standard: str = "GJB438C"): - print(project, requirements, standard) - -if __name__ == "__main__": - mcp.settings.host = "0.0.0.0" - mcp.settings.port = 7999 - - mcp.run(transport="streamable-http") \ No newline at end of file diff --git a/ai_test_generator/core/llm_client.py b/ai_test_generator/core/llm_client.py index a74f090..312ec59 100644 --- a/ai_test_generator/core/llm_client.py +++ b/ai_test_generator/core/llm_client.py @@ -2,7 +2,7 @@ import json import re import logging from openai import OpenAI -from config import config +from gui_ai_developer.config import config logger = logging.getLogger(__name__) diff --git a/ai_test_generator/core/test_generator.py b/ai_test_generator/core/test_generator.py index ebe4365..be432d1 100644 --- a/ai_test_generator/core/test_generator.py +++ b/ai_test_generator/core/test_generator.py @@ -11,7 +11,7 @@ import json import re import logging from pathlib import Path -from config import config +from gui_ai_developer.config import config logger = logging.getLogger(__name__) diff --git a/ai_test_generator/core/test_runner.py b/ai_test_generator/core/test_runner.py index 90a3e7f..5bd8f7c 100644 --- a/ai_test_generator/core/test_runner.py +++ b/ai_test_generator/core/test_runner.py @@ -6,7 +6,7 @@ import time import logging from pathlib import Path from dataclasses import dataclass, field -from config import config +from gui_ai_developer.config import config logger = logging.getLogger(__name__) diff --git a/services/__init__.py b/gui_ai_developer/__init__.py similarity index 100% rename from services/__init__.py rename to gui_ai_developer/__init__.py diff --git a/auto-test.txt b/gui_ai_developer/auto-test.txt similarity index 100% rename from auto-test.txt rename to gui_ai_developer/auto-test.txt diff --git a/config/__init__.py b/gui_ai_developer/config/__init__.py similarity index 100% rename from config/__init__.py rename to gui_ai_developer/config/__init__.py diff --git a/config/styles.py b/gui_ai_developer/config/styles.py similarity index 100% rename from config/styles.py rename to gui_ai_developer/config/styles.py diff --git a/dialogs/__init__.py b/gui_ai_developer/dialogs/__init__.py similarity index 100% rename from dialogs/__init__.py rename to gui_ai_developer/dialogs/__init__.py diff --git a/dialogs/code_view_dialog.py b/gui_ai_developer/dialogs/code_view_dialog.py similarity index 100% rename from dialogs/code_view_dialog.py rename to gui_ai_developer/dialogs/code_view_dialog.py diff --git a/dialogs/module_detail_dialog.py b/gui_ai_developer/dialogs/module_detail_dialog.py similarity index 100% rename from dialogs/module_detail_dialog.py rename to gui_ai_developer/dialogs/module_detail_dialog.py diff --git a/dialogs/new_project_dialog.py b/gui_ai_developer/dialogs/new_project_dialog.py similarity index 98% rename from dialogs/new_project_dialog.py rename to gui_ai_developer/dialogs/new_project_dialog.py index 8b5e994..551aaa5 100644 --- a/dialogs/new_project_dialog.py +++ b/gui_ai_developer/dialogs/new_project_dialog.py @@ -6,7 +6,7 @@ from PyQt5.QtWidgets import ( QLineEdit, QTextEdit, QPushButton, QMessageBox ) from PyQt5.QtCore import Qt -from models import Project, Requirement, Module, Document +from gui_ai_developer.models import Project, Requirement, Module, Document class NewProjectDialog(QDialog): diff --git a/dialogs/pipeline_dialog.py b/gui_ai_developer/dialogs/pipeline_dialog.py similarity index 100% rename from dialogs/pipeline_dialog.py rename to gui_ai_developer/dialogs/pipeline_dialog.py diff --git a/init_request.json b/gui_ai_developer/init_request.json similarity index 100% rename from init_request.json rename to gui_ai_developer/init_request.json diff --git a/main.py b/gui_ai_developer/main.py similarity index 91% rename from main.py rename to gui_ai_developer/main.py index 8ec220b..cd8452c 100644 --- a/main.py +++ b/gui_ai_developer/main.py @@ -13,8 +13,8 @@ from PyQt5.QtWidgets import QApplication from PyQt5.QtGui import QFont from PyQt5.QtCore import Qt -from config import DARK_THEME -from windows import MainWindow +from gui_ai_developer.config import DARK_THEME +from gui_ai_developer.windows import MainWindow def main(): diff --git a/mcp-client.py b/gui_ai_developer/mcp-client.py similarity index 100% rename from mcp-client.py rename to gui_ai_developer/mcp-client.py diff --git a/models/__init__.py b/gui_ai_developer/models/__init__.py similarity index 100% rename from models/__init__.py rename to gui_ai_developer/models/__init__.py diff --git a/models/document.py b/gui_ai_developer/models/document.py similarity index 100% rename from models/document.py rename to gui_ai_developer/models/document.py diff --git a/models/module.py b/gui_ai_developer/models/module.py similarity index 100% rename from models/module.py rename to gui_ai_developer/models/module.py diff --git a/models/project.py b/gui_ai_developer/models/project.py similarity index 100% rename from models/project.py rename to gui_ai_developer/models/project.py diff --git a/models/requirement.py b/gui_ai_developer/models/requirement.py similarity index 100% rename from models/requirement.py rename to gui_ai_developer/models/requirement.py diff --git a/prototype/index-3.html b/gui_ai_developer/prototype/index-3.html similarity index 100% rename from prototype/index-3.html rename to gui_ai_developer/prototype/index-3.html diff --git a/prototype/index-4.html b/gui_ai_developer/prototype/index-4.html similarity index 100% rename from prototype/index-4.html rename to gui_ai_developer/prototype/index-4.html diff --git a/prototype/index-v2.html b/gui_ai_developer/prototype/index-v2.html similarity index 100% rename from prototype/index-v2.html rename to gui_ai_developer/prototype/index-v2.html diff --git a/prototype/index.html b/gui_ai_developer/prototype/index.html similarity index 100% rename from prototype/index.html rename to gui_ai_developer/prototype/index.html diff --git a/requirements.txt b/gui_ai_developer/requirements.txt similarity index 100% rename from requirements.txt rename to gui_ai_developer/requirements.txt diff --git a/services/requirement_service.py b/gui_ai_developer/services/__init__.py similarity index 100% rename from services/requirement_service.py rename to gui_ai_developer/services/__init__.py diff --git a/widgets.py b/gui_ai_developer/services/requirement_service.py similarity index 100% rename from widgets.py rename to gui_ai_developer/services/requirement_service.py diff --git a/gui_ai_developer/widgets.py b/gui_ai_developer/widgets.py new file mode 100644 index 0000000..e69de29 diff --git a/widgets/__init__.py b/gui_ai_developer/widgets/__init__.py similarity index 100% rename from widgets/__init__.py rename to gui_ai_developer/widgets/__init__.py diff --git a/widgets/module_item.py b/gui_ai_developer/widgets/module_item.py similarity index 100% rename from widgets/module_item.py rename to gui_ai_developer/widgets/module_item.py diff --git a/widgets/panel_widget.py b/gui_ai_developer/widgets/panel_widget.py similarity index 100% rename from widgets/panel_widget.py rename to gui_ai_developer/widgets/panel_widget.py diff --git a/widgets/project_item.py b/gui_ai_developer/widgets/project_item.py similarity index 100% rename from widgets/project_item.py rename to gui_ai_developer/widgets/project_item.py diff --git a/widgets/requirement_item.py b/gui_ai_developer/widgets/requirement_item.py similarity index 100% rename from widgets/requirement_item.py rename to gui_ai_developer/widgets/requirement_item.py diff --git a/windows/__init__.py b/gui_ai_developer/windows/__init__.py similarity index 100% rename from windows/__init__.py rename to gui_ai_developer/windows/__init__.py diff --git a/windows/main_window.py b/gui_ai_developer/windows/main_window.py similarity index 98% rename from windows/main_window.py rename to gui_ai_developer/windows/main_window.py index 842d248..72f8e9a 100644 --- a/windows/main_window.py +++ b/gui_ai_developer/windows/main_window.py @@ -10,9 +10,9 @@ from PyQt5.QtWidgets import ( from PyQt5.QtCore import Qt, QTimer, QSize from PyQt5.QtGui import QFont -from models import Project, Requirement, Module, Document -from widgets import PanelWidget, ProjectItemWidget, RequirementItemWidget, ModuleItemWidget -from dialogs import NewProjectDialog, CodeViewDialog, ModuleDetailDialog, PipelineDialog +from gui_ai_developer.models import Project, Requirement, Module, Document +from gui_ai_developer.widgets import PanelWidget, ProjectItemWidget, RequirementItemWidget, ModuleItemWidget +from gui_ai_developer.dialogs import NewProjectDialog, CodeViewDialog, ModuleDetailDialog, PipelineDialog class MainWindow(QMainWindow): diff --git a/requirements_generator/core/code_generator.py b/requirements_generator/core/code_generator.py index 4199bce..260619e 100644 --- a/requirements_generator/core/code_generator.py +++ b/requirements_generator/core/code_generator.py @@ -4,7 +4,7 @@ import json from pathlib import Path from typing import List, Optional, Callable -import config +from gui_ai_developer import config from core.llm_client import LLMClient from database.models import FunctionalRequirement, CodeFile diff --git a/requirements_generator/core/llm_client.py b/requirements_generator/core/llm_client.py index ce2aa10..d9a27fc 100644 --- a/requirements_generator/core/llm_client.py +++ b/requirements_generator/core/llm_client.py @@ -1,11 +1,10 @@ # core/llm_client.py - LLM API 调用封装 import time import json -from typing import Optional from openai import OpenAI, APIError, APITimeoutError, RateLimitError -import config +from gui_ai_developer import config class LLMClient: @@ -17,10 +16,10 @@ class LLMClient: api_base: str = None, model: str = None, ): - self.model = model or config.LLM_MODEL + self.model = model or config.LLM_MODEL self.client = OpenAI( - api_key = api_key or config.LLM_API_KEY, - base_url = api_base or config.LLM_API_BASE, + api_key =api_key or config.LLM_API_KEY, + base_url =api_base or config.LLM_API_BASE, timeout = config.LLM_TIMEOUT, ) diff --git a/requirements_generator/core/requirement_analyzer.py b/requirements_generator/core/requirement_analyzer.py index 10110a0..785f426 100644 --- a/requirements_generator/core/requirement_analyzer.py +++ b/requirements_generator/core/requirement_analyzer.py @@ -2,7 +2,7 @@ import json from typing import List, Optional, Callable -import config +from gui_ai_developer import config from core.llm_client import LLMClient from database.models import FunctionalRequirement, ChangeHistory from database.db_manager import DBManager diff --git a/requirements_generator/database/db_manager.py b/requirements_generator/database/db_manager.py index 8a139f9..985ccb9 100644 --- a/requirements_generator/database/db_manager.py +++ b/requirements_generator/database/db_manager.py @@ -5,7 +5,7 @@ from typing import List, Optional from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker, Session -import config +from gui_ai_developer import config from database.models import Base, Project, RawRequirement, FunctionalRequirement, CodeFile, ChangeHistory diff --git a/requirements_generator/utils/output_writer.py b/requirements_generator/utils/output_writer.py index ecca0dc..1bad4ad 100644 --- a/requirements_generator/utils/output_writer.py +++ b/requirements_generator/utils/output_writer.py @@ -4,7 +4,7 @@ import json from pathlib import Path from typing import Dict, List -import config +from gui_ai_developer import config VALID_TYPES = { "integer", "string", "boolean", "float",