feat: gate code tools by task mode

This commit is contained in:
John
2026-07-02 07:12:18 +08:00
parent c9b7252832
commit e17dcaf4a8
11 changed files with 338 additions and 19 deletions
+14 -5
View File
@@ -295,7 +295,7 @@ function sandboxMcpEnvs(sandboxMcp, mcpTools) {
*/
export function buildAgentExtensionPolicy(
capabilities,
{ unrestricted = false, policies = null, sandboxMcp = null } = {},
{ unrestricted = false, policies = null, sandboxMcp = null, toolMode = 'chat' } = {},
) {
if (unrestricted) {
return { extensionOverrides: null, enableContextMemory: true, gooseMode: 'auto' };
@@ -388,11 +388,20 @@ export function buildAgentExtensionPolicy(
if (capabilities.charts) {
extensions.push(makeExtension('builtin', 'autovisualiser', []));
}
if (capabilities.aider) {
extensions.push(makeExtension('platform', 'aider', []));
const codeToolMode = toolMode === 'code' || toolMode === 'code-task';
if (codeToolMode && capabilities.aider) {
extensions.push({
...makeExtension('platform', 'aider', []),
timeout_ms: Number(process.env.MEMIND_AIDER_TIMEOUT_MS ?? 600_000),
metadata: { runtime_scope: 'code_tool_task' },
});
}
if (capabilities.openhands) {
extensions.push(makeExtension('platform', 'openhands', []));
if (codeToolMode && capabilities.openhands) {
extensions.push({
...makeExtension('platform', 'openhands', []),
timeout_ms: Number(process.env.MEMIND_OPENHANDS_TIMEOUT_MS ?? 900_000),
metadata: { runtime_scope: 'code_tool_task' },
});
}
return {