fix
This commit is contained in:
parent
feab540ba3
commit
1d53447527
Binary file not shown.
@ -1,142 +0,0 @@
|
||||
2025-08-01 10:09:53:152 [main] INFO c.a.c.a.e.manus.OpenManusSpringBootApplication(StartupInfoLogger.java 53) -Starting OpenManusSpringBootApplication using Java 17.0.2 with PID 23344 (C:\Users\lsdyf\Desktop\spring-ai-alibaba\spring-ai-alibaba-jmanus\target\classes started by lsdyf in C:\Users\lsdyf\Desktop\spring-ai-alibaba\spring-ai-alibaba-jmanus)
|
||||
2025-08-01 10:09:53:156 [main] INFO c.a.c.a.e.manus.OpenManusSpringBootApplication(SpringApplication.java 658) -The following 1 profile is active: "h2"
|
||||
2025-08-01 10:09:54:050 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate(RepositoryConfigurationDelegate.java 143) -Bootstrapping Spring Data JPA repositories in DEFAULT mode.
|
||||
2025-08-01 10:09:54:288 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate(RepositoryConfigurationDelegate.java 211) -Finished Spring Data repository scanning in 229 ms. Found 10 JPA repository interfaces.
|
||||
2025-08-01 10:09:54:868 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer(TomcatWebServer.java 111) -Tomcat initialized with port 18080 (http)
|
||||
2025-08-01 10:09:54:882 [main] INFO org.apache.coyote.http11.Http11NioProtocol(DirectJDKLog.java 168) -Initializing ProtocolHandler ["http-nio-18080"]
|
||||
2025-08-01 10:09:54:884 [main] INFO org.apache.catalina.core.StandardService(DirectJDKLog.java 168) -Starting service [Tomcat]
|
||||
2025-08-01 10:09:54:884 [main] INFO org.apache.catalina.core.StandardEngine(DirectJDKLog.java 168) -Starting Servlet engine: [Apache Tomcat/10.1.40]
|
||||
2025-08-01 10:09:54:958 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/](DirectJDKLog.java 168) -Initializing Spring embedded WebApplicationContext
|
||||
2025-08-01 10:09:54:959 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext(ServletWebServerApplicationContext.java 301) -Root WebApplicationContext: initialization completed in 1747 ms
|
||||
2025-08-01 10:09:55:130 [main] INFO org.hibernate.jpa.internal.util.LogHelper(LogHelper.java 31) -HHH000204: Processing PersistenceUnitInfo [name: default]
|
||||
2025-08-01 10:09:55:212 [main] INFO org.hibernate.Version(Version.java 44) -HHH000412: Hibernate ORM core version 6.6.13.Final
|
||||
2025-08-01 10:09:55:264 [main] INFO o.hibernate.cache.internal.RegionFactoryInitiator(RegionFactoryInitiator.java 50) -HHH000026: Second-level cache disabled
|
||||
2025-08-01 10:09:55:596 [main] INFO o.s.o.j.persistenceunit.SpringPersistenceUnitInfo(SpringPersistenceUnitInfo.java 87) -No LoadTimeWeaver setup: ignoring JPA class transformer
|
||||
2025-08-01 10:09:55:631 [main] INFO com.zaxxer.hikari.HikariDataSource(HikariDataSource.java 109) -Spring-AI-Alibaba-JManus-h2-Pool - Starting...
|
||||
2025-08-01 10:09:55:898 [main] INFO com.zaxxer.hikari.pool.HikariPool(HikariPool.java 554) -Spring-AI-Alibaba-JManus-h2-Pool - Added connection conn0: url=jdbc:h2:file:./h2-data/openmanus_db user=SA
|
||||
2025-08-01 10:09:55:901 [main] INFO com.zaxxer.hikari.HikariDataSource(HikariDataSource.java 122) -Spring-AI-Alibaba-JManus-h2-Pool - Start completed.
|
||||
2025-08-01 10:09:55:959 [main] INFO org.hibernate.orm.connections.pooling(JdbcEnvironmentInitiator.java 157) -HHH10001005: Database info:
|
||||
Database JDBC URL [Connecting through datasource 'HikariDataSource (Spring-AI-Alibaba-JManus-h2-Pool)']
|
||||
Database driver: undefined/unknown
|
||||
Database version: 2.3.232
|
||||
Autocommit mode: undefined/unknown
|
||||
Isolation level: undefined/unknown
|
||||
Minimum pool size: undefined/unknown
|
||||
Maximum pool size: undefined/unknown
|
||||
2025-08-01 10:09:56:235 [main] INFO c.a.cloud.ai.example.manus.config.JacksonConfig(JacksonConfig.java 65) -Successfully registered JavaTimeModule to org.springframework.ai.model.ModelOptionsUtils.OBJECT_MAPPER
|
||||
2025-08-01 10:09:56:236 [main] INFO c.a.cloud.ai.example.manus.config.JacksonConfig(JacksonConfig.java 65) -Successfully registered JavaTimeModule to org.springframework.ai.util.json.JsonParser.OBJECT_MAPPER
|
||||
2025-08-01 10:09:56:237 [main] INFO c.a.cloud.ai.example.manus.config.JacksonConfig(JacksonConfig.java 38) -Created ObjectMapper with JavaTimeModule registered
|
||||
2025-08-01 10:09:57:147 [main] INFO o.h.e.t.jta.platform.internal.JtaPlatformInitiator(JtaPlatformInitiator.java 59) -HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
|
||||
2025-08-01 10:09:57:228 [main] INFO o.s.orm.jpa.LocalContainerEntityManagerFactoryBean(AbstractEntityManagerFactoryBean.java 447) -Initialized JPA EntityManagerFactory for persistence unit 'default'
|
||||
2025-08-01 10:09:57:666 [main] INFO o.s.data.jpa.repository.query.QueryEnhancerFactory(QueryEnhancerFactory.java 49) -Hibernate is in classpath; If applicable, HQL parser will be used.
|
||||
2025-08-01 10:09:58:590 [main] INFO c.a.c.a.e.m.dynamic.mcp.service.McpCacheManager(McpCacheManager.java 274) -MCP service loader configuration changed, updating thread pool
|
||||
2025-08-01 10:09:58:593 [main] INFO c.a.c.a.e.m.dynamic.mcp.service.McpCacheManager(McpCacheManager.java 288) -Updated MCP service loader thread pool with max 10 concurrent connections
|
||||
2025-08-01 10:09:58:594 [main] INFO c.a.c.a.e.m.dynamic.mcp.service.McpCacheManager(McpCacheManager.java 203) -Initializing MCP cache manager with double buffer mechanism
|
||||
2025-08-01 10:09:58:598 [main] INFO c.a.c.a.e.m.dynamic.mcp.service.McpCacheManager(McpCacheManager.java 344) -No MCP server configurations found
|
||||
2025-08-01 10:09:58:598 [main] INFO c.a.c.a.e.m.dynamic.mcp.service.McpCacheManager(McpCacheManager.java 214) -Initial cache loaded successfully with 0 services
|
||||
2025-08-01 10:09:58:599 [main] INFO c.a.c.a.e.m.dynamic.mcp.service.McpCacheManager(McpCacheManager.java 236) -Scheduled cache update task started, interval: 10 minutes
|
||||
2025-08-01 10:09:58:851 [main] INFO com.alibaba.cloud.ai.example.manus.llm.LlmService(LlmService.java 99) -Checking and init ChatClient instance...
|
||||
2025-08-01 10:09:58:891 [main] INFO c.a.cloud.ai.example.manus.config.PlaywrightConfig(PlaywrightConfig.java 60) -PLAYWRIGHT_BROWSERS_PATH not set, using default browser path
|
||||
2025-08-01 10:09:59:729 [main] INFO org.apache.coyote.http11.Http11NioProtocol(DirectJDKLog.java 168) -Starting ProtocolHandler ["http-nio-18080"]
|
||||
2025-08-01 10:09:59:748 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer(TomcatWebServer.java 243) -Tomcat started on port 18080 (http) with context path '/'
|
||||
2025-08-01 10:09:59:762 [main] INFO c.a.cloud.ai.example.manus.config.ConfigService(ConfigService.java 70) -Found 29 configuration beans
|
||||
2025-08-01 10:09:59:764 [main] INFO c.a.cloud.ai.example.manus.config.ConfigService(ConfigService.java 85) -Cleaning up obsolete configurations not defined in ManusProperties...
|
||||
2025-08-01 10:09:59:769 [main] INFO c.a.cloud.ai.example.manus.config.ConfigService(ConfigService.java 102) -✅ No obsolete configurations found
|
||||
2025-08-01 10:09:59:945 [main] INFO c.a.c.a.e.manus.OpenManusSpringBootApplication(StartupInfoLogger.java 59) -Started OpenManusSpringBootApplication in 7.527 seconds (process running for 8.344)
|
||||
2025-08-01 10:09:59:957 [main] INFO c.a.c.a.e.m.c.startUp.ConfigAppStartupListener(ConfigAppStartupListener.java 60) -Configuration system initialized with 17 total configs
|
||||
2025-08-01 10:09:59:958 [main] INFO c.a.c.a.e.m.c.startUp.ConfigAppStartupListener(ConfigAppStartupListener.java 61) -Group 'manus': 17 configs
|
||||
2025-08-01 10:09:59:958 [main] INFO c.a.c.a.e.m.c.startUp.ConfigAppStartupListener(ConfigAppStartupListener.java 68) -0 configs are using custom values
|
||||
2025-08-01 10:09:59:959 [main] INFO c.a.c.a.e.m.c.startUp.ConfigAppStartupListener(ConfigAppStartupListener.java 78) -Starting to initialize dynamic agents...
|
||||
2025-08-01 10:09:59:964 [main] INFO c.a.c.a.e.m.d.agent.service.DynamicAgentScanner(DynamicAgentScanner.java 93) -Checking for deprecated @DynamicAgentDefinition annotation usage...
|
||||
2025-08-01 10:10:00:053 [main] INFO c.a.c.a.e.m.d.agent.service.DynamicAgentScanner(DynamicAgentScanner.java 174) -✅ No deprecated @DynamicAgentDefinition annotations found. System can start normally.
|
||||
2025-08-01 10:10:00:054 [main] INFO c.a.c.a.e.m.d.agent.service.DynamicAgentScanner(DynamicAgentScanner.java 75) -✅ Force override from YAML enabled - Starting to scan and override agents from YAML configuration files...
|
||||
2025-08-01 10:10:00:054 [main] INFO c.a.c.a.e.m.d.agent.service.DynamicAgentScanner(DynamicAgentScanner.java 181) -🔍 Starting to scan YAML agent configuration files...
|
||||
2025-08-01 10:10:00:061 [main] INFO c.a.c.a.e.m.d.a.s.StartupAgentConfigLoader(StartupAgentConfigLoader.java 199) -Scanned 0 startup agents: []
|
||||
2025-08-01 10:10:00:061 [main] INFO c.a.c.a.e.m.d.agent.service.DynamicAgentScanner(DynamicAgentScanner.java 212) -✅ YAML agent configuration scanning completed - Total: 0, Created: 0, Overridden: 0
|
||||
2025-08-01 10:10:00:062 [main] INFO c.a.c.a.e.m.d.agent.service.DynamicAgentScanner(DynamicAgentScanner.java 81) -✅ Dynamic agent override from YAML files completed
|
||||
2025-08-01 10:10:00:062 [main] INFO c.a.c.a.e.m.c.startUp.ConfigAppStartupListener(ConfigAppStartupListener.java 80) -Dynamic agents initialization completed
|
||||
2025-08-01 10:10:00:062 [main] INFO c.a.c.a.e.m.t.database.DatabaseUseStartupListener(DatabaseUseStartupListener.java 48) -Starting to initialize database configurations...
|
||||
2025-08-01 10:10:00:064 [main] INFO c.a.c.a.e.manus.tool.database.DataSourceService(DataSourceService.java 62) -Added datasource 'amanus' with url: jdbc:mysql://127.0.0.1:3306/amanus?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8 and type: mysql
|
||||
2025-08-01 10:10:00:065 [main] INFO c.a.c.a.e.m.t.database.DatabaseUseStartupListener(DatabaseUseStartupListener.java 100) -Initialized datasource 'amanus' (type: mysql)
|
||||
2025-08-01 10:10:00:065 [main] INFO c.a.c.a.e.manus.tool.database.DataSourceService(DataSourceService.java 62) -Added datasource 'testdb' with url: jdbc:h2:file:./h2-data/testdb;MODE=MYSQL;DATABASE_TO_LOWER=TRUE and type: h2
|
||||
2025-08-01 10:10:00:065 [main] INFO c.a.c.a.e.m.t.database.DatabaseUseStartupListener(DatabaseUseStartupListener.java 100) -Initialized datasource 'testdb' (type: h2)
|
||||
2025-08-01 10:10:00:065 [main] INFO c.a.c.a.e.m.t.database.DatabaseUseStartupListener(DatabaseUseStartupListener.java 68) -Database configurations initialized with 2 datasources
|
||||
2025-08-01 10:10:00:066 [main] INFO c.a.c.a.e.m.t.database.DatabaseUseStartupListener(DatabaseUseStartupListener.java 150) -
|
||||
====================================================================================================
|
||||
DATABASE DATASOURCE SUMMARY
|
||||
====================================================================================================
|
||||
│ Datasource: amanus │ Type: mysql │ Status: ✓ INSTANTIATED │ URL: jdbc:mysql://127.0.0.1:3306/amanus?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8 │
|
||||
│ Datasource: testdb │ Type: h2 │ Status: ✓ INSTANTIATED │ URL: jdbc:h2:file:./h2-data/testdb;MODE=MYSQL;DATABASE_TO_LOWER=TRUE │
|
||||
----------------------------------------------------------------------------------------------------
|
||||
│ SUMMARY: Total=2, Instantiated=2, Disabled=0, Failed=0 │
|
||||
====================================================================================================
|
||||
|
||||
|
||||
2025-08-01 10:10:00:072 [main] INFO c.a.c.a.e.m.d.cron.scheduler.DynamicCronTaskLoader(DynamicCronTaskLoader.java 92) -Loaded 0 enabled scheduled tasks
|
||||
2025-08-01 10:10:00:072 [main] INFO c.a.c.a.e.m.d.cron.scheduler.DynamicCronTaskLoader(DynamicCronTaskLoader.java 51) -Scheduled task loading completed
|
||||
2025-08-01 10:10:00:073 [main] INFO c.a.c.a.e.manus.tool.textOperator.TextFileService(TextFileService.java 76) -TextFileService initialized
|
||||
2025-08-01 10:10:00:083 [main] INFO c.a.c.a.e.m.d.p.s.PromptInitializationService(PromptInitializationService.java 103) -Created prompt: PLANNING_PLAN_CREATION for namespace: default with language: en
|
||||
2025-08-01 10:10:00:088 [main] INFO c.a.c.a.e.m.d.p.s.PromptInitializationService(PromptInitializationService.java 103) -Created prompt: AGENT_CURRENT_STEP_ENV for namespace: default with language: en
|
||||
2025-08-01 10:10:00:092 [main] INFO c.a.c.a.e.m.d.p.s.PromptInitializationService(PromptInitializationService.java 103) -Created prompt: AGENT_STEP_EXECUTION for namespace: default with language: en
|
||||
2025-08-01 10:10:00:096 [main] INFO c.a.c.a.e.m.d.p.s.PromptInitializationService(PromptInitializationService.java 103) -Created prompt: PLANNING_PLAN_FINALIZER for namespace: default with language: en
|
||||
2025-08-01 10:10:00:101 [main] INFO c.a.c.a.e.m.d.p.s.PromptInitializationService(PromptInitializationService.java 103) -Created prompt: DIRECT_RESPONSE for namespace: default with language: en
|
||||
2025-08-01 10:10:00:104 [main] INFO c.a.c.a.e.m.d.p.s.PromptInitializationService(PromptInitializationService.java 103) -Created prompt: AGENT_STUCK_ERROR for namespace: default with language: en
|
||||
2025-08-01 10:10:00:109 [main] INFO c.a.c.a.e.m.d.p.s.PromptInitializationService(PromptInitializationService.java 103) -Created prompt: SUMMARY_PLAN_TEMPLATE for namespace: default with language: en
|
||||
2025-08-01 10:10:00:112 [main] INFO c.a.c.a.e.m.d.p.s.PromptInitializationService(PromptInitializationService.java 103) -Created prompt: MAPREDUCE_TOOL_DESCRIPTION for namespace: default with language: en
|
||||
2025-08-01 10:10:00:117 [main] INFO c.a.c.a.e.m.d.p.s.PromptInitializationService(PromptInitializationService.java 103) -Created prompt: MAPREDUCE_TOOL_PARAMETERS for namespace: default with language: en
|
||||
2025-08-01 10:10:00:121 [main] INFO c.a.c.a.e.m.d.p.s.PromptInitializationService(PromptInitializationService.java 103) -Created prompt: AGENT_DEBUG_DETAIL_OUTPUT for namespace: default with language: en
|
||||
2025-08-01 10:10:00:126 [main] INFO c.a.c.a.e.m.d.p.s.PromptInitializationService(PromptInitializationService.java 103) -Created prompt: AGENT_NORMAL_OUTPUT for namespace: default with language: en
|
||||
2025-08-01 10:10:00:129 [main] INFO c.a.c.a.e.m.d.p.s.PromptInitializationService(PromptInitializationService.java 103) -Created prompt: AGENT_PARALLEL_TOOL_CALLS_RESPONSE for namespace: default with language: en
|
||||
2025-08-01 10:10:00:133 [main] INFO c.a.c.a.e.m.d.p.s.PromptInitializationService(PromptInitializationService.java 103) -Created prompt: FORM_INPUT_TOOL_DESCRIPTION for namespace: default with language: en
|
||||
2025-08-01 10:10:00:137 [main] INFO c.a.c.a.e.m.d.p.s.PromptInitializationService(PromptInitializationService.java 103) -Created prompt: FORM_INPUT_TOOL_PARAMETERS for namespace: default with language: en
|
||||
2025-08-01 10:10:00:159 [main] INFO c.a.c.a.e.m.d.n.s.NamespaceDataInitialization(NamespaceDataInitialization.java 48) -Default namespace initialized successfully
|
||||
2025-08-01 10:10:00:164 [main] INFO c.a.c.a.e.manus.config.startUp.AppStartupListener(AppStartupListener.java 54) -Application started, attempting to open browser to access: http://localhost:18080/ui/index.html
|
||||
2025-08-01 10:10:00:246 [main] INFO c.a.c.a.e.manus.config.startUp.AppStartupListener(AppStartupListener.java 80) -Successfully opened browser via Windows command
|
||||
2025-08-01 10:10:01:200 [http-nio-18080-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/](DirectJDKLog.java 168) -Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-08-01 10:10:01:201 [http-nio-18080-exec-1] INFO org.springframework.web.servlet.DispatcherServlet(FrameworkServlet.java 532) -Initializing Servlet 'dispatcherServlet'
|
||||
2025-08-01 10:10:01:203 [http-nio-18080-exec-1] INFO org.springframework.web.servlet.DispatcherServlet(FrameworkServlet.java 554) -Completed initialization in 2 ms
|
||||
2025-08-01 10:10:05:466 [http-nio-18080-exec-6] INFO c.a.c.a.e.m.d.a.c.AgentManagementController(AgentManagementController.java 129) -Initializing agents with language: zh for namespace: default
|
||||
2025-08-01 10:10:05:504 [http-nio-18080-exec-6] INFO c.a.c.a.e.m.d.a.service.AgentInitializationService(AgentInitializationService.java 119) -Created agent: DEFAULT_AGENT for namespace: default with language: zh
|
||||
2025-08-01 10:10:05:513 [http-nio-18080-exec-6] INFO c.a.c.a.e.m.d.a.service.AgentInitializationService(AgentInitializationService.java 119) -Created agent: BROWSER_AGENT for namespace: default with language: zh
|
||||
2025-08-01 10:10:05:520 [http-nio-18080-exec-6] INFO c.a.c.a.e.m.d.a.service.AgentInitializationService(AgentInitializationService.java 119) -Created agent: DATABASE_AGENT for namespace: default with language: zh
|
||||
2025-08-01 10:10:05:527 [http-nio-18080-exec-6] INFO c.a.c.a.e.m.d.a.service.AgentInitializationService(AgentInitializationService.java 119) -Created agent: TEXT_FILE_AGENT for namespace: default with language: zh
|
||||
2025-08-01 10:10:05:534 [http-nio-18080-exec-6] INFO c.a.c.a.e.m.d.a.service.AgentInitializationService(AgentInitializationService.java 119) -Created agent: CRON_AGENT for namespace: default with language: zh
|
||||
2025-08-01 10:10:05:540 [http-nio-18080-exec-6] INFO c.a.c.a.e.m.d.a.service.AgentInitializationService(AgentInitializationService.java 119) -Created agent: MAPREDUCE_DATA_PREPARE_AGENT for namespace: default with language: zh
|
||||
2025-08-01 10:10:05:548 [http-nio-18080-exec-6] INFO c.a.c.a.e.m.d.a.service.AgentInitializationService(AgentInitializationService.java 119) -Created agent: MAPREDUCE_FIN_AGENT for namespace: default with language: zh
|
||||
2025-08-01 10:10:05:555 [http-nio-18080-exec-6] INFO c.a.c.a.e.m.d.a.service.AgentInitializationService(AgentInitializationService.java 119) -Created agent: MAPREDUCE_MAP_TASK_AGENT for namespace: default with language: zh
|
||||
2025-08-01 10:10:05:560 [http-nio-18080-exec-6] INFO c.a.c.a.e.m.d.a.service.AgentInitializationService(AgentInitializationService.java 119) -Created agent: MAPREDUCE_REDUCE_TASK_AGENT for namespace: default with language: zh
|
||||
2025-08-01 10:10:42:883 [http-nio-18080-exec-1] INFO com.alibaba.cloud.ai.example.manus.llm.LlmService(LlmService.java 234) -Build or update dynamic chat client for model: qwen-plus
|
||||
2025-08-01 10:10:42:883 [http-nio-18080-exec-1] INFO com.alibaba.cloud.ai.example.manus.llm.LlmService(LlmService.java 305) -Model updated
|
||||
2025-08-01 10:10:42:898 [http-nio-18080-exec-1] INFO com.alibaba.cloud.ai.example.manus.llm.LlmService(LlmService.java 234) -Build or update dynamic chat client for model: qwen-plus
|
||||
2025-08-01 10:10:42:898 [http-nio-18080-exec-1] INFO c.a.c.a.e.m.dynamic.model.service.ModelServiceImpl(ModelServiceImpl.java 101) -Successfully created new Model: qwen-plus
|
||||
2025-08-01 10:10:42:899 [http-nio-18080-exec-1] INFO c.a.c.a.e.m.dynamic.model.service.ModelServiceImpl(ModelServiceImpl.java 353) -Set model: 1 as default
|
||||
2025-08-01 10:10:42:906 [http-nio-18080-exec-1] INFO c.a.c.a.e.m.dynamic.model.service.ModelServiceImpl(ModelServiceImpl.java 360) -Cancel 1 model as default
|
||||
2025-08-01 10:10:42:916 [http-nio-18080-exec-1] INFO c.a.c.a.e.m.dynamic.model.service.ModelServiceImpl(ModelServiceImpl.java 369) -Set 1 as default
|
||||
2025-08-01 10:10:42:923 [http-nio-18080-exec-1] INFO com.alibaba.cloud.ai.example.manus.llm.LlmService(LlmService.java 234) -Build or update dynamic chat client for model: qwen-plus
|
||||
2025-08-01 10:10:42:924 [http-nio-18080-exec-1] INFO com.alibaba.cloud.ai.example.manus.llm.LlmService(LlmService.java 305) -Model updated
|
||||
2025-08-01 10:10:42:937 [http-nio-18080-exec-1] INFO com.alibaba.cloud.ai.example.manus.llm.LlmService(LlmService.java 234) -Build or update dynamic chat client for model: qwen-plus
|
||||
2025-08-01 10:10:52:241 [ForkJoinPool.commonPool-worker-10] INFO c.a.c.a.e.m.p.coordinator.PlanningCoordinator(PlanningCoordinator.java 74) -Executing complete plan process for planId: plan-1754014252216
|
||||
2025-08-01 10:10:52:324 [ForkJoinPool.commonPool-worker-10] INFO c.a.c.a.example.manus.planning.creator.PlanCreator(PlanCreator.java 100) -Attempting to create plan, attempt: 1/3
|
||||
2025-08-01 10:10:54:681 [boundedElastic-2] INFO c.a.c.a.example.manus.llm.StreamingResponseHandler(StreamingResponseHandler.java 247) -✅ Plan creation - Completed[2313ms]: 1 responses processed, 505 characters, 0 tool calls, 0 prompt tokens, 0 completion tokens, 0 total tokens. Preview: '{"output":"Plan created: null\n- User Original Requirements (This requirement is the user's initial input, information can be referenced, but in the current interaction round only the current step req...'
|
||||
2025-08-01 10:10:54:681 [ForkJoinPool.commonPool-worker-10] INFO c.a.c.a.example.manus.planning.creator.PlanCreator(PlanCreator.java 128) -Plan created successfully on attempt 1: AbstractExecutionPlan{rootPlanId='null', currentPlanId='null', title='Search Beijing's today weather', planningThinking='null', executionParams='', userRequest='用浏览器,基于百度,查询北京今天的天气'}
|
||||
2025-08-01 10:10:54:683 [ForkJoinPool.commonPool-worker-10] INFO c.a.c.a.e.m.p.executor.factory.PlanExecutorFactory(PlanExecutorFactory.java 93) -Creating executor for plan type: simple (planId: plan-1754014252216)
|
||||
2025-08-01 10:10:54:691 [ForkJoinPool.commonPool-worker-10] INFO c.a.c.a.e.m.p.coordinator.PlanningCoordinator(PlanningCoordinator.java 102) -Selected executor: PlanExecutor for plan type: simple (planId: plan-1754014252216)
|
||||
2025-08-01 10:10:54:695 [ForkJoinPool.commonPool-worker-10] INFO c.a.c.a.e.m.r.RepositoryPlanExecutionRecorder(RepositoryPlanExecutionRecorder.java 491) -Creating root plan with ID: plan-1754014252216
|
||||
2025-08-01 10:10:54:741 [ForkJoinPool.commonPool-worker-10] INFO c.a.c.a.e.m.dynamic.agent.service.AgentServiceImpl(AgentServiceImpl.java 305) -Create new BaseAgent: BROWSER_AGENT, planId: plan-1754014252216
|
||||
2025-08-01 10:10:54:772 [ForkJoinPool.commonPool-worker-10] INFO c.a.c.ai.example.manus.planning.PlanningFactory(PlanningFactory.java 260) -Registering tool: browser_use
|
||||
2025-08-01 10:10:54:774 [ForkJoinPool.commonPool-worker-10] INFO c.a.c.ai.example.manus.planning.PlanningFactory(PlanningFactory.java 260) -Registering tool: database_use
|
||||
2025-08-01 10:10:54:774 [ForkJoinPool.commonPool-worker-10] INFO c.a.c.ai.example.manus.planning.PlanningFactory(PlanningFactory.java 260) -Registering tool: terminate
|
||||
2025-08-01 10:10:54:775 [ForkJoinPool.commonPool-worker-10] INFO c.a.c.ai.example.manus.planning.PlanningFactory(PlanningFactory.java 260) -Registering tool: bash
|
||||
2025-08-01 10:10:54:776 [ForkJoinPool.commonPool-worker-10] INFO c.a.c.ai.example.manus.planning.PlanningFactory(PlanningFactory.java 260) -Registering tool: doc_loader
|
||||
2025-08-01 10:10:54:777 [ForkJoinPool.commonPool-worker-10] INFO c.a.c.ai.example.manus.planning.PlanningFactory(PlanningFactory.java 260) -Registering tool: text_file_operator
|
||||
2025-08-01 10:10:54:778 [ForkJoinPool.commonPool-worker-10] INFO c.a.c.ai.example.manus.planning.PlanningFactory(PlanningFactory.java 260) -Registering tool: inner_storage_content_tool
|
||||
2025-08-01 10:10:54:779 [ForkJoinPool.commonPool-worker-10] INFO c.a.c.ai.example.manus.planning.PlanningFactory(PlanningFactory.java 260) -Registering tool: file_merge_tool
|
||||
2025-08-01 10:10:54:786 [ForkJoinPool.commonPool-worker-10] INFO c.a.c.ai.example.manus.planning.PlanningFactory(PlanningFactory.java 260) -Registering tool: form_input
|
||||
2025-08-01 10:10:54:788 [ForkJoinPool.commonPool-worker-10] INFO c.a.c.ai.example.manus.planning.PlanningFactory(PlanningFactory.java 260) -Registering tool: data_split_tool
|
||||
2025-08-01 10:10:54:789 [ForkJoinPool.commonPool-worker-10] INFO c.a.c.ai.example.manus.planning.PlanningFactory(PlanningFactory.java 260) -Registering tool: map_output_tool
|
||||
2025-08-01 10:10:54:791 [ForkJoinPool.commonPool-worker-10] INFO c.a.c.ai.example.manus.planning.PlanningFactory(PlanningFactory.java 260) -Registering tool: reduce_operation_tool
|
||||
2025-08-01 10:10:54:792 [ForkJoinPool.commonPool-worker-10] INFO c.a.c.ai.example.manus.planning.PlanningFactory(PlanningFactory.java 260) -Registering tool: mapreduce_finalize_tool
|
||||
2025-08-01 10:10:54:794 [ForkJoinPool.commonPool-worker-10] INFO c.a.c.ai.example.manus.planning.PlanningFactory(PlanningFactory.java 260) -Registering tool: cron_tool
|
||||
2025-08-01 10:10:54:796 [ForkJoinPool.commonPool-worker-10] INFO c.a.c.a.e.m.dynamic.agent.service.AgentServiceImpl(AgentServiceImpl.java 326) -Successfully loaded BaseAgent: BROWSER_AGENT, available tools count: 5
|
||||
2025-08-01 10:10:54:813 [ForkJoinPool.commonPool-worker-10] INFO c.alibaba.cloud.ai.example.manus.agent.BaseAgent(BaseAgent.java 215) -Executing round 1/20
|
||||
2025-08-01 10:10:54:814 [ForkJoinPool.commonPool-worker-10] INFO c.a.c.a.e.manus.tool.browser.ChromeDriverService(ChromeDriverService.java 161) -Creating new Playwright Browser instance for planId: plan-1754014252216
|
||||
@ -1,7 +0,0 @@
|
||||
2025-08-01 10:09:54:599 [main] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker(PostProcessorRegistrationDelegate.java 437) -Bean 'jmanusEventPublisher' of type [com.alibaba.cloud.ai.example.manus.event.JmanusEventPublisher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [jmanusListenerRegister]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE.
|
||||
2025-08-01 10:09:55:934 [main] WARN org.hibernate.orm.deprecation(DialectFactoryImpl.java 153) -HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)
|
||||
2025-08-01 10:09:58:879 [main] WARN com.alibaba.cloud.ai.example.manus.llm.LlmService(LlmService.java 118) -Cannot find any model,ChatClient will be initialize after model being configured
|
||||
2025-08-01 10:09:59:282 [main] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration(JpaBaseConfiguration.java 258) -spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
|
||||
2025-08-01 10:09:59:369 [main] WARN o.s.w.s.m.m.a.RequestMappingHandlerMapping(RequestMappingHandlerMapping.java 358) -Multiple @RequestMapping annotations found on public org.springframework.http.ResponseEntity com.alibaba.cloud.ai.example.manus.dynamic.prompt.controller.PromptAdminController.reinitializePrompts(), but only the first will be used: [@org.springframework.web.bind.annotation.PostMapping(consumes={}, headers={}, name="", params={}, path={"/reinitialize"}, produces={}, value={"/reinitialize"}), @org.springframework.web.bind.annotation.GetMapping(consumes={}, headers={}, name="", params={}, path={}, produces={}, value={})]
|
||||
2025-08-01 10:10:00:250 [main] WARN c.a.c.a.e.manus.config.ApiKeyConfigurationListener(ApiKeyConfigurationListener.java 48) -⚠️ No DashScope API key found. Please configure it through the web interface at /ui/index.html
|
||||
2025-08-01 10:10:00:250 [main] WARN c.a.c.a.e.manus.config.ApiKeyConfigurationListener(ApiKeyConfigurationListener.java 50) - The system will not be able to use AI features until an API key is configured.
|
||||
4
pom.xml
4
pom.xml
@ -371,8 +371,8 @@
|
||||
</dependencies>
|
||||
<configuration>
|
||||
<consoleOutput>true</consoleOutput>
|
||||
<configLocation>../tools/src/checkstyle/checkstyle.xml</configLocation>
|
||||
<headerLocation>../tools/src/checkstyle/checkstyle-header.txt</headerLocation>
|
||||
<configLocation>./tools/src/checkstyle/checkstyle.xml</configLocation>
|
||||
<headerLocation>./tools/src/checkstyle/checkstyle-header.txt</headerLocation>
|
||||
<includeTestSourceDirectory>true</includeTestSourceDirectory>
|
||||
</configuration>
|
||||
<executions>
|
||||
|
||||
86
tools/ci-config/labeler.yml
Normal file
86
tools/ci-config/labeler.yml
Normal file
@ -0,0 +1,86 @@
|
||||
#
|
||||
# Copyright 2024-2025 the original author or authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
"area/infra":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- ".github/**/*"
|
||||
- "tools/**/*"
|
||||
- ".asf.yaml"
|
||||
- ".gitignore"
|
||||
- ".licenserc.yaml"
|
||||
- "SECURITY.md"
|
||||
- "CODE_OF_CONDUCT.md"
|
||||
- "CONTRIBUTING.md"
|
||||
- "CONTRIBUTING-zh.md"
|
||||
- "GOVERNANCE.md"
|
||||
"area/docs":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- "**/README.md"
|
||||
- "**/README-zh.md"
|
||||
- "**/README-ja.md"
|
||||
- "SECURITY.md"
|
||||
"area/jmanus":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- "spring-ai-alibaba-jmanus/**/*"
|
||||
"area/graph":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- "spring-ai-alibaba-graph/**/*"
|
||||
"area/core":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- "spring-ai-alibaba-core/**/*"
|
||||
- "spring-ai-alibaba-bom/**/*"
|
||||
- "auto-configurations/**/*"
|
||||
- "spring-ai-alibaba-spring-boot-starter/**/*"
|
||||
"area/studio":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- "spring-ai-alibaba-studio/**/*"
|
||||
"area/mcp":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- "spring-ai-alibaba-mcp/**/*"
|
||||
"area/deepresearch":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- "spring-ai-alibaba-deepresearch/**/*"
|
||||
"area/nl2sql":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- "spring-ai-alibaba-nl2sql/**/*"
|
||||
"area/community":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- "community/**/*"
|
||||
"area/tools":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- "community/tool-calls/**/*"
|
||||
"area/document-reader":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- "community/document-readers/**/*"
|
||||
"area/document-parser":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- "community/document-parser/**/*"
|
||||
"area/memory":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- "community/memories/**/*"
|
||||
37
tools/github-actions/setup-deps/action.yml
Normal file
37
tools/github-actions/setup-deps/action.yml
Normal file
@ -0,0 +1,37 @@
|
||||
#
|
||||
# Copyright 2024-2026 the original author or authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
name: setup-deps
|
||||
description: Install host system dependencies
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- uses: actions/setup-java@v4
|
||||
with:
|
||||
java-version: '17'
|
||||
distribution: 'temurin'
|
||||
cache: 'maven'
|
||||
- uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.0.1
|
||||
with:
|
||||
go-version: '1.23'
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.13'
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '22'
|
||||
- name: Pull python:3.10 docker image
|
||||
shell: bash
|
||||
run: docker pull python:3.10
|
||||
98
tools/linter/codespell/.codespell.ignorewords
Normal file
98
tools/linter/codespell/.codespell.ignorewords
Normal file
@ -0,0 +1,98 @@
|
||||
AfterAll
|
||||
varius
|
||||
Nam
|
||||
varius
|
||||
ot
|
||||
OT
|
||||
bu
|
||||
hda
|
||||
ue
|
||||
tRU
|
||||
tE
|
||||
Te
|
||||
te
|
||||
ND
|
||||
uE
|
||||
fo
|
||||
Bu
|
||||
oNS
|
||||
iif
|
||||
OLL
|
||||
IST
|
||||
olY
|
||||
URE
|
||||
SMLL
|
||||
thq
|
||||
afe
|
||||
Ue
|
||||
wOh
|
||||
cNa
|
||||
hVE
|
||||
fO
|
||||
nAx
|
||||
woUl
|
||||
HdA
|
||||
JOO
|
||||
MYBE
|
||||
MYU
|
||||
SEh
|
||||
udO
|
||||
aBl
|
||||
abd
|
||||
Yuo
|
||||
OCe
|
||||
FoT
|
||||
acI
|
||||
OCE
|
||||
Ans
|
||||
gud
|
||||
Tje
|
||||
wHN
|
||||
mey
|
||||
eyT
|
||||
ist
|
||||
alle
|
||||
vEw
|
||||
ans
|
||||
ser
|
||||
NIN
|
||||
NaX
|
||||
containg
|
||||
consition
|
||||
ois
|
||||
nd
|
||||
nD
|
||||
Nd
|
||||
joo
|
||||
oNW
|
||||
CPPP
|
||||
NwO
|
||||
Sie
|
||||
Whe
|
||||
heL
|
||||
2Rd
|
||||
bui
|
||||
Dum
|
||||
DuM
|
||||
GeS
|
||||
ptd
|
||||
lKe
|
||||
ANe
|
||||
ESY
|
||||
mye
|
||||
fwe
|
||||
ONS
|
||||
hAX
|
||||
InE
|
||||
mIs
|
||||
wel
|
||||
als
|
||||
vAI
|
||||
hEl
|
||||
htE
|
||||
dne
|
||||
oEN
|
||||
MoT
|
||||
planText
|
||||
addresss
|
||||
notIn
|
||||
13
tools/linter/codespell/.codespell.skip
Normal file
13
tools/linter/codespell/.codespell.skip
Normal file
@ -0,0 +1,13 @@
|
||||
.git
|
||||
.idea
|
||||
./spring-ai-alibaba-jmanus/src/main/resources/static
|
||||
./spring-ai-alibaba-jmanus/src/main/resources/static_legacy
|
||||
**/node_modules/**
|
||||
**/target/**
|
||||
**/build/**
|
||||
**/dist/**
|
||||
**/ui-vue3/ui/assets/**
|
||||
**/ui/assets/**
|
||||
**/src/test/resources/*.pdf
|
||||
**/src/main/resources/static/**
|
||||
**/pnpm-lock.yaml
|
||||
91
tools/linter/license/.licenserc.yaml
Normal file
91
tools/linter/license/.licenserc.yaml
Normal file
@ -0,0 +1,91 @@
|
||||
# Copyright 2024-2026 the original author or authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
header:
|
||||
license:
|
||||
copyright-owner: Spring AI Alibaba Community
|
||||
software-name: Spring AI Alibaba
|
||||
copyright-year: '2024-2026'
|
||||
content: |
|
||||
Copyright 2024-2026 the original author or authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
https://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
pattern: |
|
||||
Licensed under the Apache License, Version 2.0 \(the "License"\);
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http[s]?://www\.apache\.org/licenses/LICENSE-2\.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
paths:
|
||||
- "**"
|
||||
paths-ignore:
|
||||
- '.github/ISSUE_TEMPLATE'
|
||||
- '.github/PULL_REQUEST_TEMPLATE'
|
||||
- '**/.gitignore'
|
||||
- '**/.dockerignore'
|
||||
- '.mvn'
|
||||
- 'docker/.env'
|
||||
- 'licenses'
|
||||
- '**/*.md'
|
||||
- '**/*.json'
|
||||
- '**/*.ftl'
|
||||
- '**/target/**'
|
||||
- '**/*.iml'
|
||||
- '**/*.key'
|
||||
- '**/*.txt'
|
||||
- 'LICENSE'
|
||||
- '**/*.imports'
|
||||
- '**/*.bib'
|
||||
- '**/*.st'
|
||||
- '**/*.eml'
|
||||
- '**/*.mbox'
|
||||
- '**/resources/**'
|
||||
- '**/resource/**'
|
||||
- '**/pom.xml'
|
||||
- '**/*.less'
|
||||
- '**/*.browserslistrc'
|
||||
- '**/*.prettierrc'
|
||||
- '**/*.lintstagedrc'
|
||||
- '**/*.npmrc'
|
||||
- '**/*.mts'
|
||||
- 'tools/linter/codespell/.codespell.ignorewords'
|
||||
- 'tools/linter/codespell/.codespell.skip'
|
||||
- 'community/openmanus/src/main/java/com/alibaba/cloud/ai/example/manus/tool/FileSaver.java'
|
||||
- 'community/openmanus/src/main/java/com/alibaba/cloud/ai/example/manus/tool/GoogleSearch.java'
|
||||
- 'community/openmanus/src/main/java/com/alibaba/cloud/ai/example/manus/tool/PlanningTool.java'
|
||||
- 'community/openmanus/src/main/java/com/alibaba/cloud/ai/example/manus/tool/support/CodeUtils.java'
|
||||
- 'community/openmanus/src/main/java/com/alibaba/cloud/ai/example/manus/tool/support/IpUtils.java'
|
||||
- 'community/openmanus/src/main/java/com/alibaba/cloud/ai/example/manus/tool/support/LogIdGenerator.java'
|
||||
- 'community/openmanus/src/main/java/com/alibaba/cloud/ai/example/manus/tool/support/llmbash/BashProcess.java'
|
||||
- '**/spring-ai-alibaba-graph/spring-ai-alibaba-graph-example/**'
|
||||
- 'spring-ai-alibaba-graph/spring-ai-alibaba-graph-example/.mvn/wrapper/maven-wrapper.properties'
|
||||
- '**/spring-ai-alibaba-deepresearch/ui-vue3/**'
|
||||
- '**/spring-ai-alibaba-jmanus/ui-vue3/**'
|
||||
- '.cursorindexingignore'
|
||||
comment: never
|
||||
43
tools/linter/markdownlint/markdown_lint_config.yaml
Normal file
43
tools/linter/markdownlint/markdown_lint_config.yaml
Normal file
@ -0,0 +1,43 @@
|
||||
#
|
||||
# Copyright 2024-2025 the original author or authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
# MD009/no-trailing-spaces Trailing spaces
|
||||
MD009: false
|
||||
# MD013 Line length
|
||||
MD013: false
|
||||
# MD014 Dollar signs used before commands without showing output
|
||||
MD014: false
|
||||
# MD024 Multiple headings with the same content
|
||||
MD024: false
|
||||
# MD026/no-trailing-punctuation Trailing punctuation in heading
|
||||
MD026: false
|
||||
# MD029/ol-prefix Ordered list item prefix
|
||||
MD029: false
|
||||
# MD033/no-inline-html
|
||||
MD033: false
|
||||
# MD034/no-bare-urls
|
||||
MD034: false
|
||||
# MD040/fenced-code-language
|
||||
MD040: false
|
||||
# MD041/first-line-heading/first-line-h1 First line in file should be a top level heading
|
||||
MD041: false
|
||||
# MD036/emphasis used instead of a header
|
||||
MD036: false
|
||||
# MD051/first-heading-h1-first
|
||||
MD051: false
|
||||
# MD056/table-column-count Table
|
||||
MD056: false
|
||||
# MD055/table-pipe-style
|
||||
MD055: false
|
||||
76
tools/linter/yamllint/.yamllint
Normal file
76
tools/linter/yamllint/.yamllint
Normal file
@ -0,0 +1,76 @@
|
||||
#
|
||||
# Copyright 2024-2026 the original author or authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
---
|
||||
|
||||
ignore: |
|
||||
# This directory fails checks since many files
|
||||
# are templated. Instead, we run the linter
|
||||
# after running `make generate-manifests` which creates
|
||||
# the Install YAML in bin/
|
||||
**/node_modules/**
|
||||
**/target/**
|
||||
**/build/**
|
||||
**/dist/**
|
||||
|
||||
rules:
|
||||
braces:
|
||||
min-spaces-inside: 0
|
||||
max-spaces-inside: 0
|
||||
min-spaces-inside-empty: -1
|
||||
max-spaces-inside-empty: -1
|
||||
brackets:
|
||||
min-spaces-inside: 0
|
||||
max-spaces-inside: 1
|
||||
min-spaces-inside-empty: -1
|
||||
max-spaces-inside-empty: -1
|
||||
colons:
|
||||
max-spaces-before: 0
|
||||
max-spaces-after: 1
|
||||
commas:
|
||||
max-spaces-before: 1
|
||||
min-spaces-after: 1
|
||||
max-spaces-after: 1
|
||||
comments:
|
||||
level: warning
|
||||
require-starting-space: true
|
||||
min-spaces-from-content: 1
|
||||
comments-indentation:
|
||||
level: warning
|
||||
document-end: disable
|
||||
document-start: disable
|
||||
empty-lines:
|
||||
max: 2
|
||||
max-start: 0
|
||||
max-end: 1
|
||||
empty-values:
|
||||
forbid-in-block-mappings: false
|
||||
forbid-in-flow-mappings: true
|
||||
hyphens:
|
||||
max-spaces-after: 1
|
||||
indentation:
|
||||
spaces: 2
|
||||
indent-sequences: consistent # be consistent: don't mix indentation styles in one file.
|
||||
check-multi-line-strings: false
|
||||
key-duplicates: enable
|
||||
key-ordering: disable
|
||||
new-line-at-end-of-file: enable
|
||||
new-lines:
|
||||
type: unix
|
||||
trailing-spaces: enable
|
||||
truthy:
|
||||
check-keys: false # GitHub Actions uses "on:" as a key
|
||||
level: warning
|
||||
34
tools/make/common.mk
Normal file
34
tools/make/common.mk
Normal file
@ -0,0 +1,34 @@
|
||||
# Copyright 2024-2025 the original author or authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
SHELL:=/bin/bash
|
||||
|
||||
DATETIME = $(shell date +"%Y%m%d%H%M%S")
|
||||
|
||||
# Log the running target
|
||||
LOG_TARGET = echo -e "\033[0;32m==================> Running $@ ============> ... \033[0m"
|
||||
# Log debugging info
|
||||
define log
|
||||
echo -e "\033[36m==================>$1\033[0m"
|
||||
endef
|
||||
# Log error info
|
||||
define errorLog
|
||||
echo -e "\033[0;31m==================>$1\033[0m"
|
||||
endef
|
||||
|
||||
.PHONY: help
|
||||
help:
|
||||
@echo -e "\033[1;3;34mAgentic AI Framework for Java Developers.\033[0m\n"
|
||||
@echo -e "Usage:\n make \033[36m<Target>\033[0m \033[36m<Option>\033[0m\n\nTargets:"
|
||||
@awk 'BEGIN {FS = ":.*##"; printf ""} /^[a-zA-Z_0-9-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
|
||||
46
tools/make/java.mk
Normal file
46
tools/make/java.mk
Normal file
@ -0,0 +1,46 @@
|
||||
# Copyright 2024-2025 the original author or authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
##@ Java
|
||||
|
||||
.PHONY: test
|
||||
test: ## Run tests
|
||||
@$(LOG_TARGET)
|
||||
mvnd test
|
||||
|
||||
# Separate build and test to speed up execution
|
||||
.PHONY: build
|
||||
build: ## Build the project
|
||||
@$(LOG_TARGET)
|
||||
mvnd -Dmvnd.connectTimeout=30000 -B package --file pom.xml -DskipTests=true
|
||||
|
||||
.PHONY: format-fix
|
||||
format-fix: ## Format the code
|
||||
@$(LOG_TARGET)
|
||||
mvnd -Dmvnd.connectTimeout=30000 spring-javaformat:apply
|
||||
|
||||
.PHONY: format-check
|
||||
format-check: ## Format Check the code
|
||||
@$(LOG_TARGET)
|
||||
mvnd -Dmvnd.connectTimeout=30000 spring-javaformat:validate
|
||||
|
||||
.PHONY: spotless-apply
|
||||
spotless-apply: ## Run spotless and apply changes
|
||||
@$(LOG_TARGET)
|
||||
mvnd -Dmvnd.connectTimeout=30000 spotless:apply
|
||||
|
||||
.PHONY: checkstyle-check
|
||||
checkstyle-check: ## Checkstyle Check the code and output to target/checkstyle-report.xml
|
||||
@$(LOG_TARGET)
|
||||
mvnd -Dmvnd.connectTimeout=30000 -Dcheckstyle.skip=false -Dcheckstyle.output.file=checkstyle-report.xml checkstyle:check
|
||||
79
tools/make/linter.mk
Normal file
79
tools/make/linter.mk
Normal file
@ -0,0 +1,79 @@
|
||||
# Copyright 2024-2025 the original author or authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
##@ Linter
|
||||
|
||||
.PHONY: lint
|
||||
lint: ## Check files
|
||||
# md There are too many file errors, close temporarily
|
||||
# lint: markdown-lint yaml-lint code-spell newline-check
|
||||
lint: yaml-lint codespell newline-check
|
||||
|
||||
.PHONY: codespell
|
||||
codespell: CODESPELL_SKIP := $(shell cat tools/linter/codespell/.codespell.skip | tr \\n ',')
|
||||
codespell: ## Check the code-spell
|
||||
@$(LOG_TARGET)
|
||||
codespell --version
|
||||
codespell --skip "$(CODESPELL_SKIP)" --ignore-words ./tools/linter/codespell/.codespell.ignorewords
|
||||
|
||||
.PHONY: yaml-lint
|
||||
yaml-lint: ## Check the yaml lint
|
||||
@$(LOG_TARGET)
|
||||
yamllint --version
|
||||
yamllint -c ./tools/linter/yamllint/.yamllint .
|
||||
|
||||
.PHONY: yaml-lint-fix
|
||||
yaml-lint-fix: ## Yaml lint fix
|
||||
@$(LOG_TARGET)
|
||||
yamlfmt -version
|
||||
yamlfmt .
|
||||
|
||||
.PHONY: licenses-fix
|
||||
licenses-fix: ## Fix the licenses
|
||||
@$(LOG_TARGET)
|
||||
license-eye --version
|
||||
license-eye -c ./tools/linter/license/.licenserc.yaml header fix
|
||||
|
||||
.PHONY: licenses-check
|
||||
licenses-check: ## Check the licenses
|
||||
@$(LOG_TARGET)
|
||||
license-eye --version
|
||||
license-eye -c ./tools/linter/license/.licenserc.yaml header check
|
||||
|
||||
.PHONY: markdown-lint-check
|
||||
markdown-lint: ## Check the markdown files.
|
||||
@$(LOG_TARGET)
|
||||
markdownlint --version
|
||||
markdownlint --config ./tools/linter/markdownlint/markdown_lint_config.yaml .
|
||||
|
||||
.PHONY: markdown-lint-fix
|
||||
markdown-lint-fix: ## Fix the markdown files style.
|
||||
@$(LOG_TARGET)
|
||||
markdownlint --version
|
||||
markdownlint --config ./tools/linter/markdownlint/markdown_lint_config.yaml --fix .
|
||||
|
||||
.PHONY: newline-check
|
||||
newline-check: ## Check the newline
|
||||
@$(LOG_TARGET)
|
||||
python tools/scripts/new-line-check.py check
|
||||
|
||||
.PHONY: newline-fix
|
||||
newline-fix: ## Fix the newline
|
||||
@$(LOG_TARGET)
|
||||
python tools/scripts/new-line-check.py fix
|
||||
|
||||
.PHONY: secrets-check
|
||||
secrets-check: ## Check the secrets
|
||||
@$(LOG_TARGET)
|
||||
gitleaks dir -v .
|
||||
60
tools/make/tools.mk
Normal file
60
tools/make/tools.mk
Normal file
@ -0,0 +1,60 @@
|
||||
# Copyright 2024-2025 the original author or authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
##@ Tools
|
||||
|
||||
.PHONY: tools
|
||||
|
||||
MVND_VERSION := 2.0.0-rc-3
|
||||
|
||||
tools: ## Install ci tools
|
||||
|
||||
@$(LOG_TARGET)
|
||||
go version
|
||||
python --version
|
||||
node --version
|
||||
npm --version
|
||||
|
||||
@echo "Installing markdownlint-cli"
|
||||
npm install markdownlint-cli --global
|
||||
|
||||
@echo "Installing licenses-eyes"
|
||||
go install github.com/apache/skywalking-eyes/cmd/license-eye@v0.6.1-0.20250110091440-69f34abb75ec
|
||||
|
||||
@echo "Installing codespell"
|
||||
pip install codespell
|
||||
|
||||
@echo "Installing yamllint"
|
||||
pip install yamllint==1.35.1
|
||||
|
||||
@echo "Installing yamlfmt"
|
||||
go install github.com/google/yamlfmt/cmd/yamlfmt@latest
|
||||
|
||||
@echo "Installing gitleaks"
|
||||
mkdir -p tools/bin && \
|
||||
cd tools/bin && \
|
||||
git clone https://github.com/gitleaks/gitleaks && \
|
||||
cd gitleaks && \
|
||||
make build && \
|
||||
chmod +x gitleaks && \
|
||||
cp gitleaks /usr/local/bin && \
|
||||
cd .. && rm -rf gitleaks
|
||||
|
||||
@echo "Installing mvnd"
|
||||
curl -sL https://dlcdn.apache.org/maven/mvnd/$(MVND_VERSION)/maven-mvnd-$(MVND_VERSION)-linux-amd64.zip -o mvnd.zip && \
|
||||
unzip -q mvnd.zip && \
|
||||
mkdir -p ${HOME}/.local && \
|
||||
mv maven-mvnd-$(MVND_VERSION)-linux-amd64 ${HOME}/.local/mvnd && \
|
||||
echo "${HOME}/.local/mvnd/bin" >> ${GITHUB_PATH} && \
|
||||
echo "MVND_HOME=${HOME}/.local/mvnd" >> ${GITHUB_ENV}
|
||||
104
tools/scripts/new-line-check.py
Normal file
104
tools/scripts/new-line-check.py
Normal file
@ -0,0 +1,104 @@
|
||||
#
|
||||
# Copyright 2024-2025 the original author or authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
# Ignored project folders
|
||||
ignore_dirs = [
|
||||
"node_modules",
|
||||
".idea",
|
||||
".git",
|
||||
".vscode",
|
||||
"target",
|
||||
"static",
|
||||
"static_legacy"
|
||||
]
|
||||
|
||||
# A list of ignored suffix files
|
||||
ignore_suffix = [
|
||||
".png", ".jpg", ".jpeg", ".gif", ".svg", ".ico",
|
||||
".webp", ".pdf", ".word", ".docx", ".doc", ".ppt",
|
||||
".xlsx", ".xls", ".exe", "chromedriver", ".pptx", ".jar",
|
||||
".wav", ".bib", ".cmd", "mvnw", ".bin", ".pcm", ".flac", ".ttf",
|
||||
".mp4", ".PPT", ".jif", ".zip", ".tar", ".gz", ".rar", ".7z",
|
||||
".tar.gz", ".tar.bz2", ".tar.xz", ".tgz", ".tbz2", ".txz"
|
||||
]
|
||||
|
||||
# Check if the incoming file ends with a blank line
|
||||
def check_file(path):
|
||||
try:
|
||||
with open(path, 'rb') as f:
|
||||
f.seek(0, os.SEEK_END)
|
||||
size = f.tell()
|
||||
if size == 0:
|
||||
return None
|
||||
f.seek(-1, os.SEEK_END)
|
||||
if f.read(1) != b'\n':
|
||||
return path
|
||||
except OSError as e:
|
||||
print(f"Cannot check file: {path}: {e}")
|
||||
return None
|
||||
|
||||
# Accept a list, check if each file ends with a blank line, and if not, write a new line at the end of the file
|
||||
def add_newline(file):
|
||||
print("Fixing: " + file)
|
||||
with open(file, 'a') as f:
|
||||
f.write('\n')
|
||||
|
||||
# Gets all the files in the current directory and returns a list of files
|
||||
def get_files():
|
||||
files_to_check = []
|
||||
for root, dirs, files in os.walk('.'):
|
||||
# Ignore the specified directory
|
||||
dirs[:] = [d for d in dirs if d not in ignore_dirs]
|
||||
for file in files:
|
||||
if not any(file.endswith(suffix) for suffix in ignore_suffix):
|
||||
files_to_check.append(os.path.join(root, file))
|
||||
return files_to_check
|
||||
|
||||
# Run the checks
|
||||
def run(check_only=False):
|
||||
files = get_files()
|
||||
files_to_fix = []
|
||||
|
||||
for file in files:
|
||||
result = check_file(file)
|
||||
if result:
|
||||
files_to_fix.append(result)
|
||||
|
||||
if files_to_fix:
|
||||
print("The following files are missing a blank line:")
|
||||
for file in files_to_fix:
|
||||
print(file)
|
||||
if check_only:
|
||||
print("Error: Some files do not end with a blank line.")
|
||||
sys.exit(1) # Exit with an error code
|
||||
else:
|
||||
for file in files_to_fix:
|
||||
add_newline(file)
|
||||
print(f"Added a line break at the end of {file}.")
|
||||
else:
|
||||
print("All files have ended with a blank line.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
mode = sys.argv[1] if len(sys.argv) > 1 else 'check'
|
||||
if mode == 'check':
|
||||
run(check_only=True)
|
||||
elif mode == 'fix':
|
||||
run(check_only=False)
|
||||
else:
|
||||
print("Invalid mode. Please use 'check' or 'fix'.")
|
||||
17
tools/src/checkstyle/checkstyle-header.txt
Normal file
17
tools/src/checkstyle/checkstyle-header.txt
Normal file
@ -0,0 +1,17 @@
|
||||
^\Q/*\E$
|
||||
^\Q * Copyright \E20\d\d\-20\d\d\Q the original author or authors.\E$
|
||||
^\Q *\E$
|
||||
^\Q * Licensed under the Apache License, Version 2.0 (the "License");\E$
|
||||
^\Q * you may not use this file except in compliance with the License.\E$
|
||||
^\Q * You may obtain a copy of the License at\E$
|
||||
^\Q *\E$
|
||||
^\Q * https://www.apache.org/licenses/LICENSE-2.0\E$
|
||||
^\Q *\E$
|
||||
^\Q * Unless required by applicable law or agreed to in writing, software\E$
|
||||
^\Q * distributed under the License is distributed on an "AS IS" BASIS,\E$
|
||||
^\Q * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\E$
|
||||
^\Q * See the License for the specific language governing permissions and\E$
|
||||
^\Q * limitations under the License.\E$
|
||||
^\Q */\E$
|
||||
^$
|
||||
^.*$
|
||||
30
tools/src/checkstyle/checkstyle-suppressions.xml
Normal file
30
tools/src/checkstyle/checkstyle-suppressions.xml
Normal file
@ -0,0 +1,30 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
~ Copyright 2023-2024 the original author or authors.
|
||||
~
|
||||
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||
~ you may not use this file except in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ https://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing, software
|
||||
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
~ See the License for the specific language governing permissions and
|
||||
~ limitations under the License.
|
||||
-->
|
||||
|
||||
<!DOCTYPE suppressions PUBLIC
|
||||
"-//Checkstyle//DTD SuppressionFilter Configuration 1.2//EN"
|
||||
"https://checkstyle.org/dtds/suppressions_1_2.dtd">
|
||||
<suppressions>
|
||||
<suppress files="[\\/]src[\\/]test[\\/]java[\\/]" checks="Javadoc*" />
|
||||
<suppress files=".*Tests\.java" checks="Javadoc*" />
|
||||
<suppress files="generated-sources" checks="[a-zA-Z0-9]*" />
|
||||
<suppress files="org[\\/]eclipse[\\/]jdt[\\/]internal[\\/]formatter[\\/]linewrap[\\/]WrapPreparator\.java" checks="[a-zA-Z0-9]*" />
|
||||
|
||||
<!-- A list of class files that need to be suppressed -->
|
||||
<suppress files="NacosMcpRegistryProperties.java" checks="FinalClass"/>
|
||||
|
||||
</suppressions>
|
||||
205
tools/src/checkstyle/checkstyle.xml
Normal file
205
tools/src/checkstyle/checkstyle.xml
Normal file
@ -0,0 +1,205 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
~ Copyright 2023-2024 the original author or authors.
|
||||
~
|
||||
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||
~ you may not use this file except in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ https://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing, software
|
||||
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
~ See the License for the specific language governing permissions and
|
||||
~ limitations under the License.
|
||||
-->
|
||||
|
||||
<!DOCTYPE module PUBLIC
|
||||
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
|
||||
"https://checkstyle.org/dtds/configuration_1_3.dtd">
|
||||
<module name="com.puppycrawl.tools.checkstyle.Checker">
|
||||
|
||||
<!-- <!– 抑制文件配置 –>-->
|
||||
<!-- <module name="SuppressionFilter">-->
|
||||
<!-- <property name="file" value="tools/src/checkstyle/checkstyle-suppressions.xml"/>-->
|
||||
<!-- </module>-->
|
||||
|
||||
<!-- Root Checks -->
|
||||
<!-- Contains a line break check at the beginning and end of the file -->
|
||||
<!-- The License Header that does not use CheckStyle is done using the make command in the project -->
|
||||
<!--<module name="com.puppycrawl.tools.checkstyle.checks.header.RegexpHeaderCheck">
|
||||
<property name="headerFile" value="${checkstyle.header.file}" />
|
||||
<property name="fileExtensions" value="java" />
|
||||
</module>-->
|
||||
<module name="com.puppycrawl.tools.checkstyle.checks.NewlineAtEndOfFileCheck" />
|
||||
|
||||
<!-- TreeWalker Checks -->
|
||||
<module name="com.puppycrawl.tools.checkstyle.TreeWalker">
|
||||
<!-- Annotations -->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.annotation.AnnotationUseStyleCheck">-->
|
||||
<!-- <property name="elementStyle" value="compact" />-->
|
||||
<!-- </module>-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.annotation.MissingOverrideCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.annotation.PackageAnnotationCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.annotation.AnnotationLocationCheck">-->
|
||||
<!-- <property name="allowSamelineSingleParameterlessAnnotation"-->
|
||||
<!-- value="false" />-->
|
||||
<!-- </module>-->
|
||||
|
||||
<!-- <!– Block Checks –>-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.blocks.EmptyBlockCheck">-->
|
||||
<!-- <property name="option" value="text" />-->
|
||||
<!-- </module>-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.blocks.LeftCurlyCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.blocks.RightCurlyCheck">-->
|
||||
<!-- <property name="option" value="alone" />-->
|
||||
<!-- </module>-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.blocks.NeedBracesCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.blocks.AvoidNestedBlocksCheck" />-->
|
||||
|
||||
<!-- <!– Class Design –>-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.design.FinalClassCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.design.InterfaceIsTypeCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.design.HideUtilityClassConstructorCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.design.MutableExceptionCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.design.InnerTypeLastCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.design.OneTopLevelClassCheck" />-->
|
||||
|
||||
<!-- <!– Coding –>-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.coding.CovariantEqualsCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.coding.EmptyStatementCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.coding.EqualsHashCodeCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.coding.InnerAssignmentCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.coding.SimplifyBooleanExpressionCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.coding.SimplifyBooleanReturnCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.coding.StringLiteralEqualityCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.coding.NestedForDepthCheck">-->
|
||||
<!-- <property name="max" value="3" />-->
|
||||
<!-- </module>-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.coding.NestedIfDepthCheck">-->
|
||||
<!-- <property name="max" value="3" />-->
|
||||
<!-- </module>-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.coding.NestedTryDepthCheck">-->
|
||||
<!-- <property name="max" value="3" />-->
|
||||
<!-- </module>-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.coding.MultipleVariableDeclarationsCheck" />-->
|
||||
|
||||
<!-- <module name="io.spring.javaformat.checkstyle.filter.RequiresOuterThisFilter"/>-->
|
||||
<!-- <module name="io.spring.javaformat.checkstyle.filter.IdentCheckFilter">-->
|
||||
<!-- <property name="names" value="logger"/>-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.coding.RequireThisCheck">-->
|
||||
<!-- <property name="checkMethods" value="false"/>-->
|
||||
<!-- <property name="validateOnlyOverlapping" value="false"/>-->
|
||||
<!-- </module>-->
|
||||
<!-- </module>-->
|
||||
<!-- <module name="io.spring.javaformat.checkstyle.check.SpringNoThisCheck">-->
|
||||
<!-- <property name="names" value="logger"/>-->
|
||||
<!-- </module>-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.coding.OneStatementPerLineCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.coding.UnnecessarySemicolonInEnumerationCheck"/>-->
|
||||
|
||||
<!-- Imports -->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.imports.AvoidStarImportCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.imports.AvoidStaticImportCheck">-->
|
||||
<!-- <property name="excludes"-->
|
||||
<!-- value="org.springframework.ai.model.openai.autoconfigure.OpenAIAutoConfigurationUtil.*, org.springframework.ai.openai.api.OpenAiApi.ChatCompletionRequest.AudioParameters.Voice.*, org.springframework.ai.mistralai.api.MistralAiModerationApi.*, org.springframework.ai.util.LoggingMarkers.*, org.springframework.ai.embedding.observation.EmbeddingModelObservationDocumentation.*, org.springframework.ai.test.vectorstore.ObservationTestUtil.*, org.springframework.ai.autoconfigure.vectorstore.observation.ObservationTestUtil.*, org.awaitility.Awaitility.*, org.springframework.ai.aot.AiRuntimeHints.*, org.springframework.ai.openai.metadata.support.OpenAiApiResponseHeaders.*, org.springframework.ai.image.observation.ImageModelObservationDocumentation.*, org.springframework.ai.observation.embedding.EmbeddingModelObservationDocumentation.*, org.springframework.aot.hint.predicate.RuntimeHintsPredicates.*, org.springframework.ai.vectorstore.filter.Filter.ExpressionType.*, org.springframework.ai.chat.observation.ChatModelObservationDocumentation.*, org.assertj.core.groups.Tuple.*, org.assertj.core.api.AssertionsForClassTypes.*, org.junit.jupiter.api.Assertions.*, org.assertj.core.api.Assertions.*, org.junit.Assert.*, org.junit.Assume.*, org.junit.internal.matchers.ThrowableMessageMatcher.*, org.hamcrest.CoreMatchers.*, org.hamcrest.Matchers.*, org.springframework.boot.configurationprocessor.ConfigurationMetadataMatchers.*, org.springframework.boot.configurationprocessor.TestCompiler.*, org.springframework.boot.test.autoconfigure.AutoConfigurationImportedCondition.*, org.mockito.Mockito.*, org.mockito.BDDMockito.*, org.mockito.Matchers.*, org.mockito.ArgumentMatchers.*, org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.*, org.springframework.restdocs.hypermedia.HypermediaDocumentation.*, org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*, org.springframework.test.web.servlet.result.MockMvcResultMatchers.*, org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestBuilders.*, org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.*, org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.*, org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo, org.springframework.test.web.client.match.MockRestRequestMatchers.*, org.springframework.test.web.client.response.MockRestResponseCreators.*, org.springframework.web.reactive.function.server.RequestPredicates.*, org.springframework.web.reactive.function.server.RouterFunctions.*, org.springframework.test.web.servlet.setup.MockMvcBuilders.*"/>-->
|
||||
<!-- </module>-->
|
||||
<module name="com.puppycrawl.tools.checkstyle.checks.imports.IllegalImportCheck" />
|
||||
<module name="com.puppycrawl.tools.checkstyle.checks.imports.RedundantImportCheck" />
|
||||
<module name="com.puppycrawl.tools.checkstyle.checks.imports.UnusedImportsCheck">
|
||||
<property name="processJavadoc" value="true" />
|
||||
</module>
|
||||
<!-- <module name="ImportOrder">-->
|
||||
<!-- <property name="groups" value="java,javax,*,org.springframework"/>-->
|
||||
<!-- <property name="ordered" value="true"/>-->
|
||||
<!-- <property name="separated" value="true"/>-->
|
||||
<!-- <property name="option" value="bottom"/>-->
|
||||
<!-- <property name="sortStaticImportsAlphabetically" value="true"/>-->
|
||||
<!-- </module>-->
|
||||
|
||||
<!-- Javadoc Comments -->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocTypeCheck">-->
|
||||
<!-- <property name="scope" value="package"/>-->
|
||||
<!-- <property name="authorFormat" value=".+\s.+"/>-->
|
||||
<!-- </module>-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocMethodCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck">-->
|
||||
<!-- <property name="scope" value="public"/>-->
|
||||
<!-- </module>-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocStyleCheck">-->
|
||||
<!-- <property name="checkEmptyJavadoc" value="true"/>-->
|
||||
<!-- </module>-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.javadoc.NonEmptyAtclauseDescriptionCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocTagContinuationIndentationCheck">-->
|
||||
<!-- <property name="offset" value="0"/>-->
|
||||
<!-- </module>-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.javadoc.AtclauseOrderCheck">-->
|
||||
<!-- <property name="target" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF"/>-->
|
||||
<!-- <property name="tagOrder" value="@param, @author, @since, @see, @version, @serial, @deprecated"/>-->
|
||||
<!-- </module>-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.javadoc.AtclauseOrderCheck">-->
|
||||
<!-- <property name="target" value="METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>-->
|
||||
<!-- <property name="tagOrder" value="@param, @return, @throws, @since, @deprecated, @see"/>-->
|
||||
<!-- </module>-->
|
||||
|
||||
<!-- Miscellaneous -->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.indentation.CommentsIndentationCheck">-->
|
||||
<!-- <property name="tokens" value="BLOCK_COMMENT_BEGIN"/>-->
|
||||
<!-- </module>-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.ArrayTypeStyleCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.OuterTypeFilenameCheck" />-->
|
||||
|
||||
<!-- <!– Modifiers –>-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.modifier.RedundantModifierCheck" />-->
|
||||
|
||||
<!-- <!– Regexp –>-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck">-->
|
||||
<!-- <property name="format" value="^\t* +\t*\S" />-->
|
||||
<!-- <property name="message"-->
|
||||
<!-- value="Line has leading space characters; indentation should be performed with tabs only." />-->
|
||||
<!-- <property name="ignoreComments" value="true" />-->
|
||||
<!-- </module>-->
|
||||
<!--<!– <module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck">–>-->
|
||||
<!--<!– <property name="maximum" value="0"/>–>-->
|
||||
<!--<!– <property name="format" value="org\.mockito\.Mockito\.(when|doThrow|doAnswer)" />–>-->
|
||||
<!--<!– <property name="message"–>-->
|
||||
<!--<!– value="Please use BDDMockito imports." />–>-->
|
||||
<!--<!– <property name="ignoreComments" value="true" />–>-->
|
||||
<!--<!– </module>–>-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck">-->
|
||||
<!-- <property name="maximum" value="0"/>-->
|
||||
<!-- <property name="format" value="org\.junit\.Assert\.assert" />-->
|
||||
<!-- <property name="message"-->
|
||||
<!-- value="Please use AssertJ imports." />-->
|
||||
<!-- <property name="ignoreComments" value="true" />-->
|
||||
<!-- </module>-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpCheck">-->
|
||||
<!-- <property name="format" value="[ \t]+$" />-->
|
||||
<!-- <property name="illegalPattern" value="true" />-->
|
||||
<!-- <property name="message" value="Trailing whitespace" />-->
|
||||
<!-- </module>-->
|
||||
|
||||
<!-- <!– Whitespace –>-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.GenericWhitespaceCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.MethodParamPadCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.NoWhitespaceAfterCheck" >-->
|
||||
<!-- <property name="tokens" value="BNOT, DEC, DOT, INC, LNOT, UNARY_MINUS, UNARY_PLUS, ARRAY_DECLARATOR"/>-->
|
||||
<!-- </module>-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.NoWhitespaceBeforeCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.ParenPadCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.TypecastParenPadCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.WhitespaceAfterCheck" />-->
|
||||
<!-- <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.WhitespaceAroundCheck" />-->
|
||||
|
||||
<!-- <!– Spring Conventions –>-->
|
||||
<!-- <module name="io.spring.javaformat.checkstyle.check.SpringLambdaCheck">-->
|
||||
<!-- <property name="singleArgumentParentheses" value="false"/>-->
|
||||
<!-- </module>-->
|
||||
<!-- <module name="io.spring.javaformat.checkstyle.check.SpringCatchCheck"/>-->
|
||||
<!-- <module name="io.spring.javaformat.checkstyle.check.SpringJavadocCheck"/>-->
|
||||
<!-- <module name="io.spring.javaformat.checkstyle.check.SpringJUnit5Check"/>-->
|
||||
</module>
|
||||
|
||||
</module>
|
||||
Loading…
x
Reference in New Issue
Block a user