minovative-mind-cli 2.11.5 → 2.13.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.
- package/README.md +27 -1
- package/dist/commands/chat.js +3 -1
- package/dist/commands/eval.d.ts +22 -0
- package/dist/commands/eval.js +141 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/services/agent/slashCommands.js +4 -2
- package/dist/services/agent/toolLoop.d.ts +4 -0
- package/dist/services/agent/toolLoop.js +61 -10
- package/dist/services/agent-tools.d.ts +5 -5
- package/dist/services/agent-tools.js +150 -11
- package/dist/services/contextAgent.d.ts +1 -0
- package/dist/services/contextAgent.js +29 -6
- package/dist/services/ideOptimization.d.ts +15 -0
- package/dist/services/ideOptimization.js +169 -0
- package/dist/services/metrics.d.ts +10 -0
- package/dist/services/metrics.js +24 -0
- package/dist/services/orchestration/messageBus.d.ts +81 -41
- package/dist/services/orchestration/messageBus.js +242 -98
- package/dist/services/orchestration/orchestrator.d.ts +6 -6
- package/dist/services/orchestration/orchestrator.js +32 -21
- package/dist/services/orchestration/scopedTools.d.ts +7 -1
- package/dist/services/orchestration/scopedTools.js +45 -9
- package/dist/services/orchestration/subAgent.d.ts +19 -17
- package/dist/services/orchestration/subAgent.js +98 -81
- package/dist/services/swebench/gitDiffExtractor.d.ts +57 -0
- package/dist/services/swebench/gitDiffExtractor.js +209 -0
- package/dist/services/swebench/index.d.ts +4 -0
- package/dist/services/swebench/index.js +4 -0
- package/dist/services/swebench/instanceLoader.d.ts +21 -0
- package/dist/services/swebench/instanceLoader.js +171 -0
- package/dist/services/swebench/sweBenchRunnerService.d.ts +38 -0
- package/dist/services/swebench/sweBenchRunnerService.js +618 -0
- package/dist/services/swebench/types.d.ts +167 -0
- package/dist/services/swebench/types.js +7 -0
- package/dist/services/verificationService.js +3 -0
- package/dist/utils/fuzzyMatch.d.ts +51 -21
- package/dist/utils/fuzzyMatch.js +37 -122
- package/dist/utils/projectStorage.js +10 -5
- package/dist/utils/systemPrompts.d.ts +1 -1
- package/dist/utils/systemPrompts.js +10 -4
- package/oclif.manifest.json +137 -1
- package/package.json +1 -1
|
@@ -116,7 +116,7 @@ As an advanced AI coding agent, your primary objective is to deliver high-qualit
|
|
|
116
116
|
0. **Immediate Action (CRITICAL)**: You are the Execution Agent. Your VERY FIRST action MUST be to call the "create_todo_list" tool to outline the discrete steps you will take to fulfill the user's request. As you complete these tasks, you MUST call "update_todo_status" to mark them as completed. Do not return empty text or conversational filler.
|
|
117
117
|
1. **Tool Usage for File Operations**:
|
|
118
118
|
- **Edit**: You MUST use "modify_file" for targeted edits to existing files. You MUST read the file first if you don't already have its exact contents.
|
|
119
|
-
- **Create/Overwrite**: Use "write_file" to create
|
|
119
|
+
- **Create/Overwrite**: Use "write_file" to create permanent codebase files OR to completely rewrite/overwrite an existing file (like reorganizing an entire document). NEVER use "write_file" or shell commands to create disposable scratch/probe scripts in the workspace root — always use "run_debug_script" (which runs sandboxed in os.tmpdir()) to prevent IDE watcher lag and dev-server reloads.
|
|
120
120
|
- **Delete/Move/Rename**: You MUST use the "delete_file" or "rename_file" tools to delete or move files. Do NOT use "run_command" with bash commands (like rm or mv) for file operations, as they will bypass the revert logger. Do NOT try to delete a file by emptying its contents.
|
|
121
121
|
- **Strict Sandbox & No Bypassing via run_command**: You are strictly prohibited from using "run_command", "run_debug_script", or inline scripts (such as node -e, python -c, cat, echo, or filesystem APIs) to read, modify, or inspect files outside the current workspace root or registered workspace boundaries. If a user asks to modify or inspect an external repository that is not registered as an @alias/, you MUST NOT bypass the sandbox; instead, stop and inform the user to register the external workspace using "/workspaces" or use its registered "@alias/" prefix.
|
|
122
122
|
2. **Batch Edits (CRITICAL)**: NEVER edit the same file multiple times sequentially. The "modify_file" tool accepts an "edits" array. To make multiple changes to a single file, you MUST pass an array of multiple search/replace blocks into a single "modify_file" call. Multiple sequential calls to the same file will shift code lines and cause your subsequent searches to fail!
|
|
@@ -125,7 +125,12 @@ As an advanced AI coding agent, your primary objective is to deliver high-qualit
|
|
|
125
125
|
5. **Be safe & STRICT BAN ON SUDO (CRITICAL)**: When using run_command, explain what you are about to run. The user will be prompted to approve the command. Prefer standard package manager commands (e.g., npm install) over complex shell scripts. You are STRICTLY FORBIDDEN from using "sudo" or running commands requiring interactive root/admin passwords in "run_command". Automated tool execution runs in non-interactive background subshells where password prompts cannot be answered and will hang. If a task requires root/system permissions (e.g., xcode-select, installing system-level packages, restarting system services), you MUST NOT call "run_command" with sudo. Instead, explain the command to the user in your response text so they can run it manually in their terminal.
|
|
126
126
|
6. **Manage Dependencies (CRITICAL).** If you delete, rename, or move a file, or change an exported function's signature, you MUST update all other files that import or rely on it to prevent breaking the build.
|
|
127
127
|
7. **Strict Sequential Execution (CRITICAL)**: You MUST execute your tasks strictly in the exact order they appear on your todo list. Do NOT skip ahead. If your current task is to implement code, you MUST use \`modify_file\` or \`write_file\` to write the implementation *before* you attempt to run any tests or verification commands associated with later tasks. Do NOT use test commands to "probe" for errors before writing your code.
|
|
128
|
-
8. **
|
|
128
|
+
8. **Diagnostic-First Rule (Ban on Blind Terminal Command Retries)**:
|
|
129
|
+
- When a build command, test suite, compiler, or script fails:
|
|
130
|
+
1. You MUST analyze the specific high-signal failure lines before running another command.
|
|
131
|
+
2. If a build/test fails due to missing dependencies, environment configuration, syntax, type, or compiler errors, inspect the relevant build manifest (\`package.json\`, \`setup.py\`, \`Cargo.toml\`, \`go.mod\`, \`Makefile\`, \`CMakeLists.txt\`) or erroring source file instead of blindly guessing CLI flags or retrying repeatedly.
|
|
132
|
+
3. Maximum 1 direct command permutation is permitted before mandatory diagnostic inspection.
|
|
133
|
+
9. **Task Completion (CRITICAL)**: When you have fully completed all tasks on your todo list and completely satisfied the user's original request, you MUST call the \`finish_task\` tool to end your execution cleanly. IMPORTANT: You MUST write a brief text summary of what you accomplished inside the \`summary\` parameter of the tool call so the user knows what was done.
|
|
129
134
|
</execution_rules>
|
|
130
135
|
|
|
131
136
|
<error_recovery>
|
|
@@ -137,10 +142,11 @@ As an advanced AI coding agent, your primary objective is to deliver high-qualit
|
|
|
137
142
|
- If "modify_file" fails with a "Syntax validation failed" error (e.g., unmatched braces), you MUST:
|
|
138
143
|
1. Look closely at the error message to see what is unmatched.
|
|
139
144
|
2. Re-read the file to ensure you understand the surrounding context.
|
|
140
|
-
3. Carefully fix your "replaceContent" so that all braces "{}", brackets "[]", and parentheses "()" are perfectly balanced. Often this happens because you removed a trailing brace from the original code but forgot to include it in the replacement.
|
|
145
|
+
3. Carefully fix your "replaceContent" so that all braces "\{\}", brackets "[]", and parentheses "()" are perfectly balanced. Often this happens because you removed a trailing brace from the original code but forgot to include it in the replacement.
|
|
141
146
|
4. Retry the "modify_file" call with the fixed syntax.
|
|
147
|
+
- **Diagnostic-First Root Cause Analysis**: When a command or debug script errors, inspect the condensed high-signal output carefully. Do not blindly rerun failing commands with minor flag variations. Read the relevant configuration files or source code to address the root cause.
|
|
142
148
|
- **Dynamic Debugging & Validation**: Use "run_debug_script", "run_fuzz_probe", "check_heap_delta", and "check_behavioral_drift" to validate code changes, inspect performance, and debug runtime behavior:
|
|
143
|
-
- **run_debug_script**: Write disposable validation and debugging scripts directly against the workspace
|
|
149
|
+
- **run_debug_script**: Write disposable validation and debugging scripts directly against the workspace. These execute safely in the OS temp directory (os.tmpdir()) without polluting the workspace, triggering IDE file watchers, or restarting dev servers.
|
|
144
150
|
- **run_fuzz_probe**: Run automated property-based fuzz testing probes with generated boundary inputs to catch unhandled exceptions, unexpected crashes, or edge-case failures across supported runtimes (Node, Python, Go, Rust).
|
|
145
151
|
- **check_heap_delta**: Execute heap memory analysis scripts to measure memory consumption, detect uncollected heap growth, and catch memory leaks across iterations.
|
|
146
152
|
- **check_behavioral_drift**: Execute baseline and candidate implementations side-by-side to compare output formatting, return values, and execution drift to prevent regressions.
|
package/oclif.manifest.json
CHANGED
|
@@ -24,6 +24,142 @@
|
|
|
24
24
|
"chat.js"
|
|
25
25
|
]
|
|
26
26
|
},
|
|
27
|
+
"eval": {
|
|
28
|
+
"aliases": [],
|
|
29
|
+
"args": {},
|
|
30
|
+
"description": "Execute automated evaluation on SWE-bench Lite benchmark instances",
|
|
31
|
+
"examples": [
|
|
32
|
+
"<%= config.bin %> <%= command.id %> -i instances.json -o predictions.jsonl",
|
|
33
|
+
"<%= config.bin %> <%= command.id %> --instances ./test_instances.jsonl --output ./predictions.jsonl --report ./evaluation_report.json",
|
|
34
|
+
"<%= config.bin %> <%= command.id %> --instances test_instances.jsonl --repo astropy/astropy --limit 5",
|
|
35
|
+
"<%= config.bin %> <%= command.id %> --instances test_instances.jsonl --instance-id astropy__astropy-12907",
|
|
36
|
+
"<%= config.bin %> <%= command.id %> --instances test_instances.jsonl --dry-run"
|
|
37
|
+
],
|
|
38
|
+
"flags": {
|
|
39
|
+
"instances": {
|
|
40
|
+
"char": "i",
|
|
41
|
+
"description": "Path to input instances file (JSON or JSONL format)",
|
|
42
|
+
"name": "instances",
|
|
43
|
+
"required": true,
|
|
44
|
+
"hasDynamicHelp": false,
|
|
45
|
+
"multiple": false,
|
|
46
|
+
"type": "option"
|
|
47
|
+
},
|
|
48
|
+
"output": {
|
|
49
|
+
"char": "o",
|
|
50
|
+
"description": "Path to write generated predictions JSONL file",
|
|
51
|
+
"name": "output",
|
|
52
|
+
"default": "predictions.jsonl",
|
|
53
|
+
"hasDynamicHelp": false,
|
|
54
|
+
"multiple": false,
|
|
55
|
+
"type": "option"
|
|
56
|
+
},
|
|
57
|
+
"report": {
|
|
58
|
+
"char": "r",
|
|
59
|
+
"description": "Path to export comprehensive evaluation report JSON",
|
|
60
|
+
"name": "report",
|
|
61
|
+
"hasDynamicHelp": false,
|
|
62
|
+
"multiple": false,
|
|
63
|
+
"type": "option"
|
|
64
|
+
},
|
|
65
|
+
"model": {
|
|
66
|
+
"char": "m",
|
|
67
|
+
"description": "Model name tag for prediction metadata",
|
|
68
|
+
"name": "model",
|
|
69
|
+
"default": "minovative-mind-agent",
|
|
70
|
+
"hasDynamicHelp": false,
|
|
71
|
+
"multiple": false,
|
|
72
|
+
"type": "option"
|
|
73
|
+
},
|
|
74
|
+
"maxTurns": {
|
|
75
|
+
"description": "Maximum agent execution turns per benchmark instance",
|
|
76
|
+
"name": "maxTurns",
|
|
77
|
+
"default": 30,
|
|
78
|
+
"hasDynamicHelp": false,
|
|
79
|
+
"multiple": false,
|
|
80
|
+
"type": "option"
|
|
81
|
+
},
|
|
82
|
+
"timeout": {
|
|
83
|
+
"description": "Timeout in milliseconds per instance (default: 600000ms = 10min)",
|
|
84
|
+
"name": "timeout",
|
|
85
|
+
"default": 600000,
|
|
86
|
+
"hasDynamicHelp": false,
|
|
87
|
+
"multiple": false,
|
|
88
|
+
"type": "option"
|
|
89
|
+
},
|
|
90
|
+
"repo": {
|
|
91
|
+
"description": "Filter instances by repository name (e.g. astropy/astropy)",
|
|
92
|
+
"name": "repo",
|
|
93
|
+
"hasDynamicHelp": false,
|
|
94
|
+
"multiple": false,
|
|
95
|
+
"type": "option"
|
|
96
|
+
},
|
|
97
|
+
"instanceId": {
|
|
98
|
+
"description": "Filter by specific instance ID (e.g. astropy__astropy-12907)",
|
|
99
|
+
"name": "instanceId",
|
|
100
|
+
"hasDynamicHelp": false,
|
|
101
|
+
"multiple": false,
|
|
102
|
+
"type": "option"
|
|
103
|
+
},
|
|
104
|
+
"limit": {
|
|
105
|
+
"description": "Limit the number of instances to evaluate",
|
|
106
|
+
"name": "limit",
|
|
107
|
+
"hasDynamicHelp": false,
|
|
108
|
+
"multiple": false,
|
|
109
|
+
"type": "option"
|
|
110
|
+
},
|
|
111
|
+
"workspaceDir": {
|
|
112
|
+
"char": "w",
|
|
113
|
+
"description": "Base workspace directory where repo checkouts reside",
|
|
114
|
+
"name": "workspaceDir",
|
|
115
|
+
"hasDynamicHelp": false,
|
|
116
|
+
"multiple": false,
|
|
117
|
+
"type": "option"
|
|
118
|
+
},
|
|
119
|
+
"autoClone": {
|
|
120
|
+
"description": "Automatically clone repository if not found locally in workspace directory",
|
|
121
|
+
"name": "autoClone",
|
|
122
|
+
"allowNo": false,
|
|
123
|
+
"type": "boolean"
|
|
124
|
+
},
|
|
125
|
+
"dryRun": {
|
|
126
|
+
"description": "Validate instances and workspace setup without invoking the agent loop",
|
|
127
|
+
"name": "dryRun",
|
|
128
|
+
"allowNo": false,
|
|
129
|
+
"type": "boolean"
|
|
130
|
+
},
|
|
131
|
+
"concurrency": {
|
|
132
|
+
"char": "c",
|
|
133
|
+
"description": "Number of instances to evaluate concurrently (default: 1)",
|
|
134
|
+
"name": "concurrency",
|
|
135
|
+
"default": 1,
|
|
136
|
+
"hasDynamicHelp": false,
|
|
137
|
+
"multiple": false,
|
|
138
|
+
"type": "option"
|
|
139
|
+
},
|
|
140
|
+
"verbose": {
|
|
141
|
+
"char": "v",
|
|
142
|
+
"description": "Show detailed per-turn logs during evaluation",
|
|
143
|
+
"name": "verbose",
|
|
144
|
+
"allowNo": false,
|
|
145
|
+
"type": "boolean"
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
"hasDynamicHelp": false,
|
|
149
|
+
"hiddenAliases": [],
|
|
150
|
+
"id": "eval",
|
|
151
|
+
"pluginAlias": "minovative-mind-cli",
|
|
152
|
+
"pluginName": "minovative-mind-cli",
|
|
153
|
+
"pluginType": "core",
|
|
154
|
+
"strict": true,
|
|
155
|
+
"enableJsonFlag": false,
|
|
156
|
+
"isESM": true,
|
|
157
|
+
"relativePath": [
|
|
158
|
+
"dist",
|
|
159
|
+
"commands",
|
|
160
|
+
"eval.js"
|
|
161
|
+
]
|
|
162
|
+
},
|
|
27
163
|
"login": {
|
|
28
164
|
"aliases": [],
|
|
29
165
|
"args": {},
|
|
@@ -65,5 +201,5 @@
|
|
|
65
201
|
]
|
|
66
202
|
}
|
|
67
203
|
},
|
|
68
|
-
"version": "2.
|
|
204
|
+
"version": "2.13.0"
|
|
69
205
|
}
|
package/package.json
CHANGED