x_aeon_agents 1.0.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. checksums.yaml +7 -0
  2. data/AGENTS.md +136 -0
  3. data/CHANGELOG.md +398 -0
  4. data/README.md +579 -0
  5. data/TODO.md +48 -0
  6. data/bin/xaa +5 -0
  7. data/lib/x_aeon_agents/agent_defaults.rb +60 -0
  8. data/lib/x_aeon_agents/agent_options.rb +58 -0
  9. data/lib/x_aeon_agents/agents/coder_agent.rb +82 -0
  10. data/lib/x_aeon_agents/agents/committer_agent.rb +71 -0
  11. data/lib/x_aeon_agents/agents/developer_agent.rb +235 -0
  12. data/lib/x_aeon_agents/agents/diff_interpreter_agent.rb +80 -0
  13. data/lib/x_aeon_agents/agents/documenter_agent.rb +44 -0
  14. data/lib/x_aeon_agents/agents/executor_agent.rb +9 -0
  15. data/lib/x_aeon_agents/agents/feedback_analyst_agent.rb +62 -0
  16. data/lib/x_aeon_agents/agents/gh_comments.gql +64 -0
  17. data/lib/x_aeon_agents/agents/git_diff_interpreter_agent.rb +57 -0
  18. data/lib/x_aeon_agents/agents/issue_implementer_agent.rb +88 -0
  19. data/lib/x_aeon_agents/agents/one_line_code_diff_summarizer_agent.rb +57 -0
  20. data/lib/x_aeon_agents/agents/plan_generator_agent.rb +51 -0
  21. data/lib/x_aeon_agents/agents/planner_agent.rb +89 -0
  22. data/lib/x_aeon_agents/agents/pull_request_creator_agent.rb +144 -0
  23. data/lib/x_aeon_agents/agents/readme/about_analyzer_agent.rb +55 -0
  24. data/lib/x_aeon_agents/agents/readme/contributing_agent.rb +47 -0
  25. data/lib/x_aeon_agents/agents/readme/development_agent.rb +54 -0
  26. data/lib/x_aeon_agents/agents/readme/documentation_agent.rb +43 -0
  27. data/lib/x_aeon_agents/agents/readme/features_agent.rb +45 -0
  28. data/lib/x_aeon_agents/agents/readme/how_it_works_agent.rb +47 -0
  29. data/lib/x_aeon_agents/agents/readme/license_agent.rb +43 -0
  30. data/lib/x_aeon_agents/agents/readme/public_api_agent.rb +44 -0
  31. data/lib/x_aeon_agents/agents/readme/quick_start_agent.rb +50 -0
  32. data/lib/x_aeon_agents/agents/readme/requirements_agent.rb +43 -0
  33. data/lib/x_aeon_agents/agents/readme_generator_agent.rb +438 -0
  34. data/lib/x_aeon_agents/agents/review_resolver_agent.rb +236 -0
  35. data/lib/x_aeon_agents/agents/review_responder_agent.rb +64 -0
  36. data/lib/x_aeon_agents/agents/skill_generator_agent.rb +95 -0
  37. data/lib/x_aeon_agents/agents/skill_installer_agent.rb +103 -0
  38. data/lib/x_aeon_agents/agents/task_starter_agent.rb +66 -0
  39. data/lib/x_aeon_agents/agents/tester_agent.rb +44 -0
  40. data/lib/x_aeon_agents/cli.rb +384 -0
  41. data/lib/x_aeon_agents/config.rb +110 -0
  42. data/lib/x_aeon_agents/gen_helpers.rb +270 -0
  43. data/lib/x_aeon_agents/helpers.rb +211 -0
  44. data/lib/x_aeon_agents/logger.rb +21 -0
  45. data/lib/x_aeon_agents/providers/cline.rb +78 -0
  46. data/lib/x_aeon_agents/version.rb +6 -0
  47. data/lib/x_aeon_agents.rb +38 -0
  48. metadata +296 -0
@@ -0,0 +1,47 @@
1
+ module XAeonAgents
2
+ module Agents
3
+ module Readme
4
+ # Agent responsible for generating the "Contributing" section of a README.
5
+ class ContributingAgent < ComposableAgents::Cline::Agent
6
+ prepend AgentDefaults
7
+
8
+ # Define output artifacts contracts
9
+ #
10
+ # @return [Hash{Symbol => Object}] Set of output artifacts description, per artifact name
11
+ def output_artifacts_contracts
12
+ super.merge(
13
+ contributing: {
14
+ description: 'The "Contributing" section content in Markdown format, explaining how to contribute to the project',
15
+ type: :markdown
16
+ }
17
+ )
18
+ end
19
+
20
+ # Constructor
21
+ #
22
+ # @param agent_params [Hash{Symbol => Object}] Extra agent parameters
23
+ def initialize(**agent_params)
24
+ super(
25
+ name: 'Contributing',
26
+ objective: <<~EO_OBJECTIVE,
27
+ Analyze the project's CONTRIBUTING guidelines, issue templates, pull request templates, and any community guidelines.
28
+ Generate a "Contributing" section in Markdown format, compatible with Github flavor, explaining how users can contribute to the project.
29
+ Focus on giving community specific guidelines (issues, pull requests, CI, fork...).
30
+ Use emphasis, bullet points, useful links to the project resources and small emojis to better format your section.
31
+ EO_OBJECTIVE
32
+ constraints: <<~EO_CONSTRAINTS,
33
+ - The required output artifact content should only contain the required content, without additional header or title.
34
+ - Do not explain or describe the artifact content: only provide the content as required.
35
+ - Only focus on the specific scope of the required documentation required.
36
+ Other agents will generate other sections of the README.
37
+ Do not try to document other parts.
38
+ - Do not describe the technical setup or prequisites, as they are already covered by other sections.
39
+ - Do not cover how to develop in this project: it is already covered in other sections.
40
+ EO_CONSTRAINTS
41
+ **agent_params
42
+ )
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,54 @@
1
+ module XAeonAgents
2
+ module Agents
3
+ module Readme
4
+ # Agent responsible for generating the "Development" section of a README.
5
+ class DevelopmentAgent < ComposableAgents::Cline::Agent
6
+ prepend AgentDefaults
7
+
8
+ # Define output artifacts contracts
9
+ #
10
+ # @return [Hash{Symbol => Object}] Set of output artifacts description, per artifact name
11
+ def output_artifacts_contracts
12
+ super.merge(
13
+ development: {
14
+ description: 'The "Development" section content in Markdown format, explaining how to set up a development environment and contribute code',
15
+ type: :markdown
16
+ }
17
+ )
18
+ end
19
+
20
+ # Constructor
21
+ #
22
+ # @param agent_params [Hash{Symbol => Object}] Extra agent parameters
23
+ def initialize(**agent_params)
24
+ super(
25
+ name: 'Development',
26
+ objective: <<~EO_OBJECTIVE,
27
+ Analyze the project's development setup, build system, testing framework, and development workflows.
28
+ Generate a "Development" section in Markdown format, compatible with Github flavor, explaining how to set up a development environment and how to code in it.
29
+ This section is intended for developers.
30
+ Explain how to:
31
+ - clone the repository,
32
+ - install test-specific dependencies if any,
33
+ - run tests,
34
+ - use code lint if any,
35
+ - navigate the project structure (high-level, no need for details),
36
+ - package the project deliverables,
37
+ - perform common development tasks.
38
+ EO_OBJECTIVE
39
+ constraints: <<~EO_CONSTRAINTS,
40
+ - The required output artifact content should only contain the required content, without additional header or title.
41
+ - Do not explain or describe the artifact content: only provide the content as required.
42
+ - Only focus on the specific scope of the required documentation required.
43
+ Other agents will generate other sections of the README.
44
+ Do not try to document other parts.
45
+ - Do not cover the end-user main requirements and prerequisites: they are already covered in other sections.
46
+ - Do not cover the contribution workflow (pull requests, CI, issues...): this is already covered in other sections.
47
+ EO_CONSTRAINTS
48
+ **agent_params
49
+ )
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,43 @@
1
+ module XAeonAgents
2
+ module Agents
3
+ module Readme
4
+ # Agent responsible for generating the "Documentation" section of a README.
5
+ class DocumentationAgent < ComposableAgents::Cline::Agent
6
+ prepend AgentDefaults
7
+
8
+ # Define output artifacts contracts
9
+ #
10
+ # @return [Hash{Symbol => Object}] Set of output artifacts description, per artifact name
11
+ def output_artifacts_contracts
12
+ super.merge(
13
+ documentation: {
14
+ description: 'The "Documentation" section content in Markdown format, providing links to documentation resources of the project',
15
+ type: :markdown
16
+ }
17
+ )
18
+ end
19
+
20
+ # Constructor
21
+ #
22
+ # @param agent_params [Hash{Symbol => Object}] Extra agent parameters
23
+ def initialize(**agent_params)
24
+ super(
25
+ name: 'Documentation',
26
+ objective: <<~EO_OBJECTIVE,
27
+ Explore the project's documentation files and resources to identify all available documentation.
28
+ Generate a "Documentation" section in Markdown format, compatible with Github flavor, providing links to documentation resources.
29
+ EO_OBJECTIVE
30
+ constraints: <<~EO_CONSTRAINTS,
31
+ - The required output artifact content should only contain the required content, without additional header or title.
32
+ - Do not explain or describe the artifact content: only provide the content as required.
33
+ - Only focus on the specific scope of the required documentation required.
34
+ Other agents will generate other sections of the README.
35
+ Do not try to document other parts.
36
+ EO_CONSTRAINTS
37
+ **agent_params
38
+ )
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,45 @@
1
+ module XAeonAgents
2
+ module Agents
3
+ module Readme
4
+ # Agent responsible for generating the "Features" section of a README.
5
+ class FeaturesAgent < ComposableAgents::Cline::Agent
6
+ prepend AgentDefaults
7
+
8
+ # Define output artifacts contracts
9
+ #
10
+ # @return [Hash{Symbol => Object}] Set of output artifacts description, per artifact name
11
+ def output_artifacts_contracts
12
+ super.merge(
13
+ features: {
14
+ description: 'The "Features" section content in Markdown format, listing the key features of the project',
15
+ type: :markdown
16
+ }
17
+ )
18
+ end
19
+
20
+ # Constructor
21
+ #
22
+ # @param agent_params [Hash{Symbol => Object}] Extra agent parameters
23
+ def initialize(**agent_params)
24
+ super(
25
+ name: 'Features',
26
+ objective: <<~EO_OBJECTIVE,
27
+ Analyze the project's codebase and capabilities to identify all key features.
28
+ Generate a "Features" section in Markdown format, compatible with Github flavor, listing the main features of the project.
29
+ Use emphasis, bullet points and small emojis to illustrate in a readable way the list of features.
30
+ Don't provide an overall description of the project: another section is already doing it.
31
+ EO_OBJECTIVE
32
+ constraints: <<~EO_CONSTRAINTS,
33
+ - The required output artifact content should only contain the required content, without additional header or title.
34
+ - Do not explain or describe the artifact content: only provide the content as required.
35
+ - Only focus on the specific scope of the required documentation required.
36
+ Other agents will generate other sections of the README.
37
+ Do not try to document other parts.
38
+ EO_CONSTRAINTS
39
+ **agent_params
40
+ )
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,47 @@
1
+ module XAeonAgents
2
+ module Agents
3
+ module Readme
4
+ # Agent responsible for generating the "How it works" section of a README.
5
+ class HowItWorksAgent < ComposableAgents::Cline::Agent
6
+ prepend AgentDefaults
7
+
8
+ # Define output artifacts contracts
9
+ #
10
+ # @return [Hash{Symbol => Object}] Set of output artifacts description, per artifact name
11
+ def output_artifacts_contracts
12
+ super.merge(
13
+ how_it_works: {
14
+ description: 'The "How it works" section content in Markdown format, explaining the internal architecture and working principles of the project',
15
+ type: :markdown
16
+ }
17
+ )
18
+ end
19
+
20
+ # Constructor
21
+ #
22
+ # @param agent_params [Hash{Symbol => Object}] Extra agent parameters
23
+ def initialize(**agent_params)
24
+ super(
25
+ name: 'How it works',
26
+ objective: <<~EO_OBJECTIVE,
27
+ Analyze the project's architecture, design patterns, and internal workings.
28
+ Generate a "How it works" section in Markdown format, compatible with Github flavor, explaining the internal architecture and working principles.
29
+ Use emphasis, bullet points, useful links to the project resources and small emojis to better format your section.
30
+ You can use SocratiCode if it is available to get a better understanding of this project.
31
+ You can use Mermaid graphs to also illustrate the way this project works.
32
+ EO_OBJECTIVE
33
+ constraints: <<~EO_CONSTRAINTS,
34
+ - The required output artifact content should only contain the required content, without additional header or title.
35
+ - Do not explain or describe the artifact content: only provide the content as required.
36
+ - Only focus on the specific scope of the required documentation required.
37
+ Other agents will generate other sections of the README.
38
+ Do not try to document other parts.
39
+ - Do not provide long paragraphs: focus on readability by splitting long paragraphs into several short ones.
40
+ EO_CONSTRAINTS
41
+ **agent_params
42
+ )
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,43 @@
1
+ module XAeonAgents
2
+ module Agents
3
+ module Readme
4
+ # Agent responsible for generating the "License" section of a README.
5
+ class LicenseAgent < ComposableAgents::Cline::Agent
6
+ prepend AgentDefaults
7
+
8
+ # Define output artifacts contracts
9
+ #
10
+ # @return [Hash{Symbol => Object}] Set of output artifacts description, per artifact name
11
+ def output_artifacts_contracts
12
+ super.merge(
13
+ license: {
14
+ description: 'The "License" section content in Markdown format, describing the project license information',
15
+ type: :markdown
16
+ }
17
+ )
18
+ end
19
+
20
+ # Constructor
21
+ #
22
+ # @param agent_params [Hash{Symbol => Object}] Extra agent parameters
23
+ def initialize(**agent_params)
24
+ super(
25
+ name: 'License',
26
+ objective: <<~EO_OBJECTIVE,
27
+ Analyze the project's LICENSE file to identify the license type and terms.
28
+ Generate a "License" section in Markdown format, compatible with Github flavor, describing the project license.
29
+ EO_OBJECTIVE
30
+ constraints: <<~EO_CONSTRAINTS,
31
+ - The required output artifact content should only contain the required content, without additional header or title.
32
+ - Do not explain or describe the artifact content: only provide the content as required.
33
+ - Only focus on the specific scope of the required documentation required.
34
+ Other agents will generate other sections of the README.
35
+ Do not try to document other parts.
36
+ EO_CONSTRAINTS
37
+ **agent_params
38
+ )
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,44 @@
1
+ module XAeonAgents
2
+ module Agents
3
+ module Readme
4
+ # Agent responsible for generating the "Public API" section of a README.
5
+ class PublicApiAgent < ComposableAgents::Cline::Agent
6
+ prepend AgentDefaults
7
+
8
+ # Define output artifacts contracts
9
+ #
10
+ # @return [Hash{Symbol => Object}] Set of output artifacts description, per artifact name
11
+ def output_artifacts_contracts
12
+ super.merge(
13
+ public_api: {
14
+ description: 'The "Public API" section content in Markdown format, describing the public API surface of the project',
15
+ type: :markdown
16
+ }
17
+ )
18
+ end
19
+
20
+ # Constructor
21
+ #
22
+ # @param agent_params [Hash{Symbol => Object}] Extra agent parameters
23
+ def initialize(**agent_params)
24
+ super(
25
+ name: 'Public API',
26
+ objective: <<~EO_OBJECTIVE,
27
+ Analyze the project's codebase to identify all public APIs, classes, methods, and interfaces exposed to users.
28
+ Generate a "Public API" section in Markdown format, compatible with Github flavor, documenting the public API surface.
29
+ EO_OBJECTIVE
30
+ constraints: <<~EO_CONSTRAINTS,
31
+ - The required output artifact content should only contain the required content, without additional header or title.
32
+ - Do not explain or describe the artifact content: only provide the content as required.
33
+ - Only focus on the specific scope of the required documentation required.
34
+ Other agents will generate other sections of the README.
35
+ Do not try to document other parts.
36
+ - Only document public API entry points: executables and library public methods belonging to yarn `Public API` group.
37
+ EO_CONSTRAINTS
38
+ **agent_params
39
+ )
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,50 @@
1
+ module XAeonAgents
2
+ module Agents
3
+ module Readme
4
+ # Agent responsible for generating the "Quick start" section of a README.
5
+ class QuickStartAgent < ComposableAgents::Cline::Agent
6
+ prepend AgentDefaults
7
+
8
+ # Define output artifacts contracts
9
+ #
10
+ # @return [Hash{Symbol => Object}] Set of output artifacts description, per artifact name
11
+ def output_artifacts_contracts
12
+ super.merge(
13
+ quick_start: {
14
+ description: 'The "Quick start" section content in Markdown format, providing quick installation and usage instructions',
15
+ type: :markdown
16
+ }
17
+ )
18
+ end
19
+
20
+ # Constructor
21
+ #
22
+ # @param agent_params [Hash{Symbol => Object}] Extra agent parameters
23
+ def initialize(**agent_params)
24
+ super(
25
+ name: 'Quick Start',
26
+ objective: <<~EO_OBJECTIVE,
27
+ Analyze the project's installation and usage patterns to provide quick installation and usage instructions.
28
+ Generate a "Quick start" section in Markdown format, compatible with Github flavor.
29
+ Focus on the precise steps that allow an external end user to use this project.
30
+ For examples:
31
+ - If this project is a Rubygem, explain how to install and use this Rubygem in an application.
32
+ - If this project exposes CLI, explain how to install it in a user's system and how to invoke them.
33
+ - If this project defines a web app, explain how to install this web app, run it and access it using a web browser.
34
+ This section should be concise: don't cover all features, just simple install and startup guides for the main happy paths.
35
+ EO_OBJECTIVE
36
+ constraints: <<~EO_CONSTRAINTS,
37
+ - The required output artifact content should only contain the required content, without additional header or title.
38
+ - Do not explain or describe the artifact content: only provide the content as required.
39
+ - Only focus on the specific scope of the required documentation required.
40
+ Other agents will generate other sections of the README.
41
+ Do not try to document other parts.
42
+ - This section is not meant for developers: don't describe how to develop, test, document, package or contribute to this project.
43
+ EO_CONSTRAINTS
44
+ **agent_params
45
+ )
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,43 @@
1
+ module XAeonAgents
2
+ module Agents
3
+ module Readme
4
+ # Agent responsible for generating the "Requirements" section of a README.
5
+ class RequirementsAgent < ComposableAgents::Cline::Agent
6
+ prepend AgentDefaults
7
+
8
+ # Define output artifacts contracts
9
+ #
10
+ # @return [Hash{Symbol => Object}] Set of output artifacts description, per artifact name
11
+ def output_artifacts_contracts
12
+ super.merge(
13
+ requirements: {
14
+ description: 'The "Requirements" section content in Markdown format, describing the prerequisites needed to use the project',
15
+ type: :markdown
16
+ }
17
+ )
18
+ end
19
+
20
+ # Constructor
21
+ #
22
+ # @param agent_params [Hash{Symbol => Object}] Extra agent parameters
23
+ def initialize(**agent_params)
24
+ super(
25
+ name: 'Requirements',
26
+ objective: <<~EO_OBJECTIVE,
27
+ Analyze the project's dependencies, runtime environment, and prerequisites.
28
+ Generate a "Requirements" section in Markdown format, compatible with Github flavor, listing all prerequisites needed to use or run the project.
29
+ EO_OBJECTIVE
30
+ constraints: <<~EO_CONSTRAINTS,
31
+ - The required output artifact content should only contain the required content, without additional header or title.
32
+ - Do not explain or describe the artifact content: only provide the content as required.
33
+ - Only focus on the specific scope of the required documentation required.
34
+ Other agents will generate other sections of the README.
35
+ Do not try to document other parts.
36
+ EO_CONSTRAINTS
37
+ **agent_params
38
+ )
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end