x_aeon_agents 2.7.1 → 2.8.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -0
- data/lib/x_aeon_agents/agents/coder_agent.rb +40 -33
- data/lib/x_aeon_agents/agents/diff_interpreter_agent.rb +9 -8
- data/lib/x_aeon_agents/agents/documenter_agent.rb +10 -9
- data/lib/x_aeon_agents/agents/executor_agent.rb +7 -1
- data/lib/x_aeon_agents/agents/feedback_analyst_agent.rb +9 -8
- data/lib/x_aeon_agents/agents/one_line_code_diff_summarizer_agent.rb +8 -7
- data/lib/x_aeon_agents/agents/plan_generator_agent.rb +8 -7
- data/lib/x_aeon_agents/agents/readme/about_analyzer_agent.rb +12 -9
- data/lib/x_aeon_agents/agents/readme/contributing_agent.rb +14 -11
- data/lib/x_aeon_agents/agents/readme/development_agent.rb +14 -11
- data/lib/x_aeon_agents/agents/readme/documentation_agent.rb +12 -9
- data/lib/x_aeon_agents/agents/readme/features_agent.rb +12 -9
- data/lib/x_aeon_agents/agents/readme/how_it_works_agent.rb +13 -10
- data/lib/x_aeon_agents/agents/readme/license_agent.rb +12 -9
- data/lib/x_aeon_agents/agents/readme/public_api_agent.rb +13 -10
- data/lib/x_aeon_agents/agents/readme/quick_start_agent.rb +13 -10
- data/lib/x_aeon_agents/agents/readme/requirements_agent.rb +12 -9
- data/lib/x_aeon_agents/agents/review_responder_agent.rb +13 -12
- data/lib/x_aeon_agents/agents/tester_agent.rb +5 -4
- data/lib/x_aeon_agents/helpers.rb +23 -7
- data/lib/x_aeon_agents/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ca63878f464258f86f9d780e3c02e8b5bd6f519caa475ebb11bb1f51457ebeb2
|
|
4
|
+
data.tar.gz: '0780aa1af3dd89ab64c00aa28fb66afa4f320d98fa471cd715b0de3298267097'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b231e35b0015adacf2711b6cf2bbc3994722879f42a924ed4572b2c8ee2665b2082446b51df25f07f185b99620ddee8d74efbf6781719c869ab47e9753708c1f
|
|
7
|
+
data.tar.gz: 9f12ff2f488d6735426bff1d8c88f44b9380a326018742ea1d768b8275a3aecef9343d152fa7da67084838b8f8b77f42b427082c48a19ca73a6709b10c48f6f0
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
# [v2.8.0](https://github.com/Muriel-Salvan/x_aeon_agents/compare/v2.7.1...v2.8.0) (2026-11-12 17:47:11)
|
|
2
|
+
|
|
3
|
+
## Global changes
|
|
4
|
+
### Patches
|
|
5
|
+
|
|
6
|
+
* [feat(agents): support non-interactive constraints if needed in the prompts](https://github.com/Muriel-Salvan/x_aeon_agents/commit/2ef0511f6a711d28c91de95c498c0deb8ee71607)
|
|
7
|
+
|
|
8
|
+
## Changes for agents
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* [feat(agents): support non-interactive constraints if needed in the prompts](https://github.com/Muriel-Salvan/x_aeon_agents/commit/2ef0511f6a711d28c91de95c498c0deb8ee71607)
|
|
12
|
+
|
|
1
13
|
# [v2.7.1](https://github.com/Muriel-Salvan/x_aeon_agents/compare/v2.7.0...v2.7.1) (2026-11-12 15:59:52)
|
|
2
14
|
|
|
3
15
|
## Global changes
|
|
@@ -46,39 +46,46 @@ module XAeonAgents
|
|
|
46
46
|
When you have completed the task, please provide a summary of what you did and any relevant information that the user should know.
|
|
47
47
|
This will help ensure that the user understands the changes made and can easily follow up if they have any questions or need further assistance.
|
|
48
48
|
EO_INSTRUCTIONS
|
|
49
|
-
constraints:
|
|
50
|
-
Remember:
|
|
51
|
-
- Always adhere to existing code conventions and patterns.
|
|
52
|
-
- Use only libraries and frameworks that are confirmed to be in use in the current codebase.
|
|
53
|
-
- Provide complete and functional code without omissions or placeholders.
|
|
54
|
-
- Always think about new tests and corner cases to be added or changed with new features, fixes or feature changes.
|
|
55
|
-
- Always think about documentation updates with new features or feature changes.
|
|
56
|
-
- Be explicit about any assumptions or limitations in your solution.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
49
|
+
constraints: [
|
|
50
|
+
'Remember:',
|
|
51
|
+
'- Always adhere to existing code conventions and patterns.',
|
|
52
|
+
'- Use only libraries and frameworks that are confirmed to be in use in the current codebase.',
|
|
53
|
+
'- Provide complete and functional code without omissions or placeholders.',
|
|
54
|
+
'- Always think about new tests and corner cases to be added or changed with new features, fixes or feature changes.',
|
|
55
|
+
'- Always think about documentation updates with new features or feature changes.',
|
|
56
|
+
'- Be explicit about any assumptions or limitations in your solution.',
|
|
57
|
+
<<~EO_CONSTRAINT.rstrip,
|
|
58
|
+
- Always show your planning process before executing any task.
|
|
59
|
+
This will help ensure that you have a clear understanding of the requirements and that your approach aligns with the user's needs.
|
|
60
|
+
EO_CONSTRAINT
|
|
61
|
+
'- Always use absolute paths when referring to files.',
|
|
62
|
+
<<~EO_CONSTRAINT.rstrip,
|
|
63
|
+
- You can call multiple tools in a single response.
|
|
64
|
+
Before using tools, identify every independent read, search, command, or edit needed for the next step and emit all of those tool calls now, either as multiple tool calls or as one batched input for tools that accept arrays.
|
|
65
|
+
Do not wait for one independent result before requesting another.
|
|
66
|
+
Do not split independent reads, searches, checks, or edits across separate turns.
|
|
67
|
+
EO_CONSTRAINT
|
|
68
|
+
<<~EO_CONSTRAINT.rstrip,
|
|
69
|
+
- Good parallelism examples: read all known relevant files in one read_files call;
|
|
70
|
+
run independent inspection commands in one run_commands call;
|
|
71
|
+
emit independent read_files, search_codebase, and run_commands calls together in one response;
|
|
72
|
+
emit multiple editor calls together when editing different files or non-overlapping regions.
|
|
73
|
+
EO_CONSTRAINT
|
|
74
|
+
'- Always verify the files you have edited or created at the end of the task to ensure they are completed and working as expected.',
|
|
75
|
+
Helpers.repository_access_constraint(writable: true),
|
|
76
|
+
Helpers.non_interactive_constraint,
|
|
77
|
+
'',
|
|
78
|
+
'REMEMBER, be helpful and proactive!',
|
|
79
|
+
"Don't ask for permission to do something when you can do it!",
|
|
80
|
+
'Do not indicates you will be using a tool unless you are actually going to use it.',
|
|
81
|
+
'',
|
|
82
|
+
'IMPORTANT: Always includes tool calls in your response until the task is completed.',
|
|
83
|
+
'Response without tool calls will be considered as completed with the final answer.',
|
|
84
|
+
'',
|
|
85
|
+
'Do not indicate that you will perform an action without actually doing it.',
|
|
86
|
+
'Always provide the final result in your response.',
|
|
87
|
+
'Always validate your answer with checking the code and running it if possible.'
|
|
88
|
+
].compact.join("\n"),
|
|
82
89
|
**agent_params
|
|
83
90
|
)
|
|
84
91
|
end
|
|
@@ -66,14 +66,15 @@ module XAeonAgents
|
|
|
66
66
|
EO_INSTRUCTIONS
|
|
67
67
|
]
|
|
68
68
|
}
|
|
69
|
-
self.constraints =
|
|
70
|
-
- You are in read-only mode.
|
|
71
|
-
- Do NOT modify or write any file.
|
|
72
|
-
- You must ONLY explain the changes of the artifact named `#{artifact_ref(:files_diff)}`, NOT other changes.
|
|
73
|
-
- You already have ALL the information required.
|
|
74
|
-
- The user's intent is fully specified.
|
|
75
|
-
- The conversation log is provided for context only. You MUST NOT ask follow-up questions.
|
|
76
|
-
|
|
69
|
+
self.constraints = [
|
|
70
|
+
'- You are in read-only mode.',
|
|
71
|
+
'- Do NOT modify or write any file.',
|
|
72
|
+
"- You must ONLY explain the changes of the artifact named `#{artifact_ref(:files_diff)}`, NOT other changes.",
|
|
73
|
+
'- You already have ALL the information required.',
|
|
74
|
+
"- The user's intent is fully specified.",
|
|
75
|
+
'- The conversation log is provided for context only. You MUST NOT ask follow-up questions.',
|
|
76
|
+
Helpers.non_interactive_constraint
|
|
77
|
+
].compact.join("\n")
|
|
77
78
|
end
|
|
78
79
|
end
|
|
79
80
|
end
|
|
@@ -48,15 +48,16 @@ module XAeonAgents
|
|
|
48
48
|
When you have completed the task, please provide a summary of what you did and any relevant information that the user should know.
|
|
49
49
|
This will help ensure that the user understands the changes made and can easily follow up if they have any questions or need further assistance.
|
|
50
50
|
EO_INSTRUCTIONS
|
|
51
|
-
constraints:
|
|
52
|
-
- Only update documentation files.
|
|
53
|
-
- Do NOT change any code or test.
|
|
54
|
-
- NEVER document the fact that a change happened.
|
|
55
|
-
- NEVER explain that something was removed, renamed, or fixed.
|
|
56
|
-
- Documentation describes the CURRENT STATE only.
|
|
57
|
-
- Documentation is NOT a changelog.
|
|
58
|
-
|
|
59
|
-
|
|
51
|
+
constraints: [
|
|
52
|
+
'- Only update documentation files.',
|
|
53
|
+
'- Do NOT change any code or test.',
|
|
54
|
+
'- NEVER document the fact that a change happened.',
|
|
55
|
+
'- NEVER explain that something was removed, renamed, or fixed.',
|
|
56
|
+
'- Documentation describes the CURRENT STATE only.',
|
|
57
|
+
'- Documentation is NOT a changelog.',
|
|
58
|
+
Helpers.repository_access_constraint(writable: true),
|
|
59
|
+
Helpers.non_interactive_constraint
|
|
60
|
+
].compact.join("\n"),
|
|
60
61
|
**agent_params
|
|
61
62
|
)
|
|
62
63
|
end
|
|
@@ -9,7 +9,13 @@ module XAeonAgents
|
|
|
9
9
|
#
|
|
10
10
|
# @param agent_params [Hash{Symbol => Object}] Extra agent parameters
|
|
11
11
|
def initialize(**agent_params)
|
|
12
|
-
super(
|
|
12
|
+
super(
|
|
13
|
+
name: 'Executor',
|
|
14
|
+
constraints: [
|
|
15
|
+
Helpers.non_interactive_constraint
|
|
16
|
+
].compact.join("\n"),
|
|
17
|
+
**agent_params
|
|
18
|
+
)
|
|
13
19
|
end
|
|
14
20
|
end
|
|
15
21
|
end
|
|
@@ -60,14 +60,15 @@ module XAeonAgents
|
|
|
60
60
|
EO_INSTRUCTIONS
|
|
61
61
|
**agent_params
|
|
62
62
|
)
|
|
63
|
-
self.constraints =
|
|
64
|
-
- You are in read-only mode for the repository: do NOT modify any file of it.
|
|
65
|
-
- Focus only on agent-directed comments (/agent) for requirement extraction.
|
|
66
|
-
- Write the extracted requirements to the output artifact file given in this prompt.
|
|
67
|
-
- If no implementation is required, write exactly `No requirements` in this file.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
63
|
+
self.constraints = [
|
|
64
|
+
'- You are in read-only mode for the repository: do NOT modify any file of it.',
|
|
65
|
+
'- Focus only on agent-directed comments (/agent) for requirement extraction.',
|
|
66
|
+
'- Write the extracted requirements to the output artifact file given in this prompt.',
|
|
67
|
+
'- If no implementation is required, write exactly `No requirements` in this file.',
|
|
68
|
+
Helpers.repository_access_constraint,
|
|
69
|
+
Helpers.artifacts_access_constraint(artifact_ref(:requirements)),
|
|
70
|
+
Helpers.non_interactive_constraint
|
|
71
|
+
].compact.join("\n")
|
|
71
72
|
end
|
|
72
73
|
end
|
|
73
74
|
end
|
|
@@ -26,13 +26,14 @@ module XAeonAgents
|
|
|
26
26
|
name: '1-line code diff summarizer',
|
|
27
27
|
role: 'You are a 1-line code diff summarizer agent',
|
|
28
28
|
objective: 'Produce a 1-line summary of a code change intent report.',
|
|
29
|
-
constraints:
|
|
30
|
-
- You are in read-only mode.
|
|
31
|
-
- Do NOT modify or write any file.
|
|
32
|
-
- You already have ALL the information required.
|
|
33
|
-
- The user's intent is fully specified.
|
|
34
|
-
- You MUST NOT ask follow-up questions.
|
|
35
|
-
|
|
29
|
+
constraints: [
|
|
30
|
+
'- You are in read-only mode.',
|
|
31
|
+
'- Do NOT modify or write any file.',
|
|
32
|
+
'- You already have ALL the information required.',
|
|
33
|
+
"- The user's intent is fully specified.",
|
|
34
|
+
'- You MUST NOT ask follow-up questions.',
|
|
35
|
+
Helpers.non_interactive_constraint
|
|
36
|
+
].compact.join("\n"),
|
|
36
37
|
**agent_params
|
|
37
38
|
)
|
|
38
39
|
self.system_instructions = {
|
|
@@ -48,13 +48,14 @@ module XAeonAgents
|
|
|
48
48
|
EO_INSTRUCTIONS
|
|
49
49
|
**agent_params
|
|
50
50
|
)
|
|
51
|
-
self.constraints =
|
|
52
|
-
- You are in read-only mode for the repository: do NOT modify any file of it.
|
|
53
|
-
- You may only analyze and propose plans.
|
|
54
|
-
- Do NOT execute the plan yourself.
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
51
|
+
self.constraints = [
|
|
52
|
+
'- You are in read-only mode for the repository: do NOT modify any file of it.',
|
|
53
|
+
'- You may only analyze and propose plans.',
|
|
54
|
+
'- Do NOT execute the plan yourself.',
|
|
55
|
+
Helpers.repository_access_constraint,
|
|
56
|
+
Helpers.artifacts_access_constraint(artifact_ref(:plan)),
|
|
57
|
+
Helpers.non_interactive_constraint
|
|
58
|
+
].compact.join("\n")
|
|
58
59
|
end
|
|
59
60
|
end
|
|
60
61
|
end
|
|
@@ -48,15 +48,18 @@ module XAeonAgents
|
|
|
48
48
|
EO_INSTRUCTIONS
|
|
49
49
|
**agent_params
|
|
50
50
|
)
|
|
51
|
-
self.constraints =
|
|
52
|
-
- Write only the required content to the output artifact files, without any additional header or title.
|
|
53
|
-
- Do NOT write any explanation or description in the artifact files: write only the required content.
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
51
|
+
self.constraints = [
|
|
52
|
+
'- Write only the required content to the output artifact files, without any additional header or title.',
|
|
53
|
+
'- Do NOT write any explanation or description in the artifact files: write only the required content.',
|
|
54
|
+
<<~EO_CONSTRAINT.rstrip,
|
|
55
|
+
- Only focus on the specific scope of the required documentation required.
|
|
56
|
+
Other agents will generate other sections of the README.
|
|
57
|
+
Do not try to document other parts.
|
|
58
|
+
EO_CONSTRAINT
|
|
59
|
+
Helpers.repository_access_constraint,
|
|
60
|
+
Helpers.artifacts_access_constraint(artifact_ref(:about), artifact_ref(:name), artifact_ref(:description)),
|
|
61
|
+
Helpers.non_interactive_constraint
|
|
62
|
+
].compact.join("\n")
|
|
60
63
|
end
|
|
61
64
|
end
|
|
62
65
|
end
|
|
@@ -38,17 +38,20 @@ module XAeonAgents
|
|
|
38
38
|
EO_INSTRUCTIONS
|
|
39
39
|
**agent_params
|
|
40
40
|
)
|
|
41
|
-
self.constraints =
|
|
42
|
-
- Write only the required content to the output artifact file, without any additional header or title.
|
|
43
|
-
- Do NOT write any explanation or description in the artifact file: write only the required content.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
|
|
41
|
+
self.constraints = [
|
|
42
|
+
'- Write only the required content to the output artifact file, without any additional header or title.',
|
|
43
|
+
'- Do NOT write any explanation or description in the artifact file: write only the required content.',
|
|
44
|
+
<<~EO_CONSTRAINT.rstrip,
|
|
45
|
+
- Only focus on the specific scope of the required documentation required.
|
|
46
|
+
Other agents will generate other sections of the README.
|
|
47
|
+
Do not try to document other parts.
|
|
48
|
+
EO_CONSTRAINT
|
|
49
|
+
'- Do not describe the technical setup or prequisites, as they are already covered by other sections.',
|
|
50
|
+
'- Do not cover how to develop in this project: it is already covered in other sections.',
|
|
51
|
+
Helpers.repository_access_constraint,
|
|
52
|
+
Helpers.artifacts_access_constraint(artifact_ref(:contributing)),
|
|
53
|
+
Helpers.non_interactive_constraint
|
|
54
|
+
].compact.join("\n")
|
|
52
55
|
end
|
|
53
56
|
end
|
|
54
57
|
end
|
|
@@ -45,17 +45,20 @@ module XAeonAgents
|
|
|
45
45
|
EO_INSTRUCTIONS
|
|
46
46
|
**agent_params
|
|
47
47
|
)
|
|
48
|
-
self.constraints =
|
|
49
|
-
- Write only the required content to the output artifact file, without any additional header or title.
|
|
50
|
-
- Do NOT write any explanation or description in the artifact file: write only the required content.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
|
|
48
|
+
self.constraints = [
|
|
49
|
+
'- Write only the required content to the output artifact file, without any additional header or title.',
|
|
50
|
+
'- Do NOT write any explanation or description in the artifact file: write only the required content.',
|
|
51
|
+
<<~EO_CONSTRAINT.rstrip,
|
|
52
|
+
- Only focus on the specific scope of the required documentation required.
|
|
53
|
+
Other agents will generate other sections of the README.
|
|
54
|
+
Do not try to document other parts.
|
|
55
|
+
EO_CONSTRAINT
|
|
56
|
+
'- Do not cover the end-user main requirements and prerequisites: they are already covered in other sections.',
|
|
57
|
+
'- Do not cover the contribution workflow (pull requests, CI, issues...): this is already covered in other sections.',
|
|
58
|
+
Helpers.repository_access_constraint,
|
|
59
|
+
Helpers.artifacts_access_constraint(artifact_ref(:development)),
|
|
60
|
+
Helpers.non_interactive_constraint
|
|
61
|
+
].compact.join("\n")
|
|
59
62
|
end
|
|
60
63
|
end
|
|
61
64
|
end
|
|
@@ -36,15 +36,18 @@ module XAeonAgents
|
|
|
36
36
|
EO_INSTRUCTIONS
|
|
37
37
|
**agent_params
|
|
38
38
|
)
|
|
39
|
-
self.constraints =
|
|
40
|
-
- Write only the required content to the output artifact file, without any additional header or title.
|
|
41
|
-
- Do NOT write any explanation or description in the artifact file: write only the required content.
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
39
|
+
self.constraints = [
|
|
40
|
+
'- Write only the required content to the output artifact file, without any additional header or title.',
|
|
41
|
+
'- Do NOT write any explanation or description in the artifact file: write only the required content.',
|
|
42
|
+
<<~EO_CONSTRAINT.rstrip,
|
|
43
|
+
- Only focus on the specific scope of the required documentation required.
|
|
44
|
+
Other agents will generate other sections of the README.
|
|
45
|
+
Do not try to document other parts.
|
|
46
|
+
EO_CONSTRAINT
|
|
47
|
+
Helpers.repository_access_constraint,
|
|
48
|
+
Helpers.artifacts_access_constraint(artifact_ref(:documentation)),
|
|
49
|
+
Helpers.non_interactive_constraint
|
|
50
|
+
].compact.join("\n")
|
|
48
51
|
end
|
|
49
52
|
end
|
|
50
53
|
end
|
|
@@ -38,15 +38,18 @@ module XAeonAgents
|
|
|
38
38
|
EO_INSTRUCTIONS
|
|
39
39
|
**agent_params
|
|
40
40
|
)
|
|
41
|
-
self.constraints =
|
|
42
|
-
- Write only the required content to the output artifact file, without any additional header or title.
|
|
43
|
-
- Do NOT write any explanation or description in the artifact file: write only the required content.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
41
|
+
self.constraints = [
|
|
42
|
+
'- Write only the required content to the output artifact file, without any additional header or title.',
|
|
43
|
+
'- Do NOT write any explanation or description in the artifact file: write only the required content.',
|
|
44
|
+
<<~EO_CONSTRAINT.rstrip,
|
|
45
|
+
- Only focus on the specific scope of the required documentation required.
|
|
46
|
+
Other agents will generate other sections of the README.
|
|
47
|
+
Do not try to document other parts.
|
|
48
|
+
EO_CONSTRAINT
|
|
49
|
+
Helpers.repository_access_constraint,
|
|
50
|
+
Helpers.artifacts_access_constraint(artifact_ref(:features)),
|
|
51
|
+
Helpers.non_interactive_constraint
|
|
52
|
+
].compact.join("\n")
|
|
50
53
|
end
|
|
51
54
|
end
|
|
52
55
|
end
|
|
@@ -39,16 +39,19 @@ module XAeonAgents
|
|
|
39
39
|
EO_INSTRUCTIONS
|
|
40
40
|
**agent_params
|
|
41
41
|
)
|
|
42
|
-
self.constraints =
|
|
43
|
-
- Write only the required content to the output artifact file, without any additional header or title.
|
|
44
|
-
- Do NOT write any explanation or description in the artifact file: write only the required content.
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
-
|
|
51
|
-
|
|
42
|
+
self.constraints = [
|
|
43
|
+
'- Write only the required content to the output artifact file, without any additional header or title.',
|
|
44
|
+
'- Do NOT write any explanation or description in the artifact file: write only the required content.',
|
|
45
|
+
<<~EO_CONSTRAINT.rstrip,
|
|
46
|
+
- Only focus on the specific scope of the required documentation required.
|
|
47
|
+
Other agents will generate other sections of the README.
|
|
48
|
+
Do not try to document other parts.
|
|
49
|
+
EO_CONSTRAINT
|
|
50
|
+
'- Do not provide long paragraphs: focus on readability by splitting long paragraphs into several short ones.',
|
|
51
|
+
Helpers.repository_access_constraint,
|
|
52
|
+
Helpers.artifacts_access_constraint(artifact_ref(:how_it_works)),
|
|
53
|
+
Helpers.non_interactive_constraint
|
|
54
|
+
].compact.join("\n")
|
|
52
55
|
end
|
|
53
56
|
end
|
|
54
57
|
end
|
|
@@ -36,15 +36,18 @@ module XAeonAgents
|
|
|
36
36
|
EO_INSTRUCTIONS
|
|
37
37
|
**agent_params
|
|
38
38
|
)
|
|
39
|
-
self.constraints =
|
|
40
|
-
- Write only the required content to the output artifact file, without any additional header or title.
|
|
41
|
-
- Do NOT write any explanation or description in the artifact file: write only the required content.
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
39
|
+
self.constraints = [
|
|
40
|
+
'- Write only the required content to the output artifact file, without any additional header or title.',
|
|
41
|
+
'- Do NOT write any explanation or description in the artifact file: write only the required content.',
|
|
42
|
+
<<~EO_CONSTRAINT.rstrip,
|
|
43
|
+
- Only focus on the specific scope of the required documentation required.
|
|
44
|
+
Other agents will generate other sections of the README.
|
|
45
|
+
Do not try to document other parts.
|
|
46
|
+
EO_CONSTRAINT
|
|
47
|
+
Helpers.repository_access_constraint,
|
|
48
|
+
Helpers.artifacts_access_constraint(artifact_ref(:license)),
|
|
49
|
+
Helpers.non_interactive_constraint
|
|
50
|
+
].compact.join("\n")
|
|
48
51
|
end
|
|
49
52
|
end
|
|
50
53
|
end
|
|
@@ -36,16 +36,19 @@ module XAeonAgents
|
|
|
36
36
|
EO_INSTRUCTIONS
|
|
37
37
|
**agent_params
|
|
38
38
|
)
|
|
39
|
-
self.constraints =
|
|
40
|
-
- Write only the required content to the output artifact file, without any additional header or title.
|
|
41
|
-
- Do NOT write any explanation or description in the artifact file: write only the required content.
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
-
|
|
48
|
-
|
|
39
|
+
self.constraints = [
|
|
40
|
+
'- Write only the required content to the output artifact file, without any additional header or title.',
|
|
41
|
+
'- Do NOT write any explanation or description in the artifact file: write only the required content.',
|
|
42
|
+
<<~EO_CONSTRAINT.rstrip,
|
|
43
|
+
- Only focus on the specific scope of the required documentation required.
|
|
44
|
+
Other agents will generate other sections of the README.
|
|
45
|
+
Do not try to document other parts.
|
|
46
|
+
EO_CONSTRAINT
|
|
47
|
+
'- Only document public API entry points: executables and library public methods belonging to yarn `Public API` group.',
|
|
48
|
+
Helpers.repository_access_constraint,
|
|
49
|
+
Helpers.artifacts_access_constraint(artifact_ref(:public_api)),
|
|
50
|
+
Helpers.non_interactive_constraint
|
|
51
|
+
].compact.join("\n")
|
|
49
52
|
end
|
|
50
53
|
end
|
|
51
54
|
end
|
|
@@ -42,16 +42,19 @@ module XAeonAgents
|
|
|
42
42
|
EO_INSTRUCTIONS
|
|
43
43
|
**agent_params
|
|
44
44
|
)
|
|
45
|
-
self.constraints =
|
|
46
|
-
- Write only the required content to the output artifact file, without any additional header or title.
|
|
47
|
-
- Do NOT write any explanation or description in the artifact file: write only the required content.
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
-
|
|
54
|
-
|
|
45
|
+
self.constraints = [
|
|
46
|
+
'- Write only the required content to the output artifact file, without any additional header or title.',
|
|
47
|
+
'- Do NOT write any explanation or description in the artifact file: write only the required content.',
|
|
48
|
+
<<~EO_CONSTRAINT.rstrip,
|
|
49
|
+
- Only focus on the specific scope of the required documentation required.
|
|
50
|
+
Other agents will generate other sections of the README.
|
|
51
|
+
Do not try to document other parts.
|
|
52
|
+
EO_CONSTRAINT
|
|
53
|
+
"- This section is not meant for developers: don't describe how to develop, test, document, package or contribute to this project.",
|
|
54
|
+
Helpers.repository_access_constraint,
|
|
55
|
+
Helpers.artifacts_access_constraint(artifact_ref(:quick_start)),
|
|
56
|
+
Helpers.non_interactive_constraint
|
|
57
|
+
].compact.join("\n")
|
|
55
58
|
end
|
|
56
59
|
end
|
|
57
60
|
end
|
|
@@ -36,15 +36,18 @@ module XAeonAgents
|
|
|
36
36
|
EO_INSTRUCTIONS
|
|
37
37
|
**agent_params
|
|
38
38
|
)
|
|
39
|
-
self.constraints =
|
|
40
|
-
- Write only the required content to the output artifact file, without any additional header or title.
|
|
41
|
-
- Do NOT write any explanation or description in the artifact file: write only the required content.
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
39
|
+
self.constraints = [
|
|
40
|
+
'- Write only the required content to the output artifact file, without any additional header or title.',
|
|
41
|
+
'- Do NOT write any explanation or description in the artifact file: write only the required content.',
|
|
42
|
+
<<~EO_CONSTRAINT.rstrip,
|
|
43
|
+
- Only focus on the specific scope of the required documentation required.
|
|
44
|
+
Other agents will generate other sections of the README.
|
|
45
|
+
Do not try to document other parts.
|
|
46
|
+
EO_CONSTRAINT
|
|
47
|
+
Helpers.repository_access_constraint,
|
|
48
|
+
Helpers.artifacts_access_constraint(artifact_ref(:requirements)),
|
|
49
|
+
Helpers.non_interactive_constraint
|
|
50
|
+
].compact.join("\n")
|
|
48
51
|
end
|
|
49
52
|
end
|
|
50
53
|
end
|
|
@@ -63,18 +63,19 @@ module XAeonAgents
|
|
|
63
63
|
EO_INSTRUCTIONS
|
|
64
64
|
**agent_params
|
|
65
65
|
)
|
|
66
|
-
self.constraints =
|
|
67
|
-
- You are in read-only mode for the repository: do NOT modify any file of it.
|
|
68
|
-
- The implementation work is already complete (captured in the input artifacts).
|
|
69
|
-
- ONLY focus on addressing the specific comment described in the file `#{artifact_ref(:open_comment_for_reply)}`.
|
|
70
|
-
- Do NOT answer or reply to any other comment.
|
|
71
|
-
- You already have ALL the information required.
|
|
72
|
-
- You MUST NOT ask follow-up questions.
|
|
73
|
-
- You MUST NOT ask for user confirmation.
|
|
74
|
-
- Write the reply text to the output artifact file `#{artifact_ref(:reply)}`.
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
66
|
+
self.constraints = [
|
|
67
|
+
'- You are in read-only mode for the repository: do NOT modify any file of it.',
|
|
68
|
+
'- The implementation work is already complete (captured in the input artifacts).',
|
|
69
|
+
"- ONLY focus on addressing the specific comment described in the file `#{artifact_ref(:open_comment_for_reply)}`.",
|
|
70
|
+
'- Do NOT answer or reply to any other comment.',
|
|
71
|
+
'- You already have ALL the information required.',
|
|
72
|
+
'- You MUST NOT ask follow-up questions.',
|
|
73
|
+
'- You MUST NOT ask for user confirmation.',
|
|
74
|
+
"- Write the reply text to the output artifact file `#{artifact_ref(:reply)}`.",
|
|
75
|
+
Helpers.repository_access_constraint,
|
|
76
|
+
Helpers.artifacts_access_constraint(artifact_ref(:reply)),
|
|
77
|
+
Helpers.non_interactive_constraint
|
|
78
|
+
].compact.join("\n")
|
|
78
79
|
end
|
|
79
80
|
end
|
|
80
81
|
end
|
|
@@ -59,10 +59,11 @@ module XAeonAgents
|
|
|
59
59
|
EO_OBJECTIVE
|
|
60
60
|
**agent_params
|
|
61
61
|
)
|
|
62
|
-
self.constraints =
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
self.constraints = [
|
|
63
|
+
Helpers.repository_access_constraint(writable: true),
|
|
64
|
+
Helpers.artifacts_access_constraint(artifact_ref(:plan_modifications)),
|
|
65
|
+
Helpers.non_interactive_constraint
|
|
66
|
+
].compact.join("\n")
|
|
66
67
|
self.system_instructions = <<~EO_INSTRUCTIONS
|
|
67
68
|
#{Helpers.repository_access_system_instructions}
|
|
68
69
|
|
|
@@ -159,28 +159,44 @@ module XAeonAgents
|
|
|
159
159
|
end
|
|
160
160
|
|
|
161
161
|
# Get the constraint restricting the files agents are allowed to access.
|
|
162
|
-
#
|
|
163
|
-
# included in any constraints section.
|
|
162
|
+
# Constraints are rendered as Markdown bullet lists: the returned sentence includes its own bullet prefix.
|
|
164
163
|
#
|
|
165
164
|
# @param writable [Boolean] True if the agent is allowed to write files, false if it is read-only
|
|
166
165
|
# @return [String] The constraint restricting the agents' file accesses to the current repository
|
|
167
166
|
def repository_access_constraint(writable: false)
|
|
168
|
-
"You should only #{writable ? 'read and write' : 'read'} files that are part of the current repository: `#{Dir.pwd}`"
|
|
167
|
+
"- You should only #{writable ? 'read and write' : 'read'} files that are part of the current repository: `#{Dir.pwd}`"
|
|
169
168
|
end
|
|
170
169
|
|
|
171
170
|
# Get the constraint allowing agents to access their artifact files, which can be located outside of the
|
|
172
171
|
# current repository.
|
|
173
|
-
#
|
|
174
|
-
#
|
|
172
|
+
# Constraints are rendered as Markdown bullet lists: the returned sentence includes its own bullet prefix.
|
|
173
|
+
# A nil is returned when no artifact path is given, so that callers can interpolate the result
|
|
174
|
+
# unconditionally in an array of constraint lines and simply compact the array.
|
|
175
175
|
#
|
|
176
176
|
# @param artifact_paths [Array<String>] Absolute paths of the artifact files the agent is allowed to access
|
|
177
|
-
# @return [String] The constraint about artifact files access
|
|
177
|
+
# @return [String, nil] The constraint about artifact files access, or nil when no artifact path is given
|
|
178
178
|
def artifacts_access_constraint(*artifact_paths)
|
|
179
|
-
|
|
179
|
+
return nil if artifact_paths.empty?
|
|
180
|
+
|
|
181
|
+
'- You are allowed to read and write the artifact files at ' \
|
|
180
182
|
"#{artifact_paths.map { |artifact_path| "`#{artifact_path}`" }.join(', ')}, " \
|
|
181
183
|
'even if they are not part of the current repository'
|
|
182
184
|
end
|
|
183
185
|
|
|
186
|
+
# Get the constraint forbidding the agent from using the ask_question tool when no human user is available.
|
|
187
|
+
# Constraints are rendered as Markdown bullet lists: the returned sentence includes its own bullet prefix.
|
|
188
|
+
# A nil is returned when the interactive mode is enabled, so that callers can interpolate the result
|
|
189
|
+
# unconditionally in an array of constraint lines and simply compact the array.
|
|
190
|
+
#
|
|
191
|
+
# @return [String, nil] The constraint about not asking questions, or nil when the interactive mode is enabled
|
|
192
|
+
def non_interactive_constraint
|
|
193
|
+
return nil if Config.interactive
|
|
194
|
+
|
|
195
|
+
'- You MUST NOT use the ask_question tool under any circumstances: ' \
|
|
196
|
+
'you are running in non-interactive mode with no human user available, ' \
|
|
197
|
+
'so proceed using your best judgment without asking'
|
|
198
|
+
end
|
|
199
|
+
|
|
184
200
|
# Allow user to review and edit content before using it
|
|
185
201
|
#
|
|
186
202
|
# When the interactive mode is disabled (Config.interactive), no review file
|