Disallow Object.create() and reflect. (#22408)

This commit is contained in:
Christian Gunderman
2026-03-16 16:24:27 +00:00
committed by GitHub
parent e3df87cf1a
commit ef5627eece
9 changed files with 229 additions and 66 deletions
+1 -14
View File
@@ -26,7 +26,6 @@ import {
} from '../tools/mcp-tool.js';
import { CompressionStatus } from '../core/turn.js';
import { type ToolCallRequestInfo } from '../scheduler/types.js';
import { type Message } from '../confirmation-bus/types.js';
import { ChatCompressionService } from '../services/chatCompressionService.js';
import { getDirectoryContextString } from '../utils/environmentContext.js';
import { promptIdContext } from '../utils/promptIdContext.js';
@@ -128,19 +127,7 @@ export class LocalAgentExecutor<TOutput extends z.ZodTypeAny> {
const parentMessageBus = context.messageBus;
// Create an override object to inject the subagent name into tool confirmation requests
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
const subagentMessageBus = Object.create(
parentMessageBus,
) as typeof parentMessageBus;
subagentMessageBus.publish = async (message: Message) => {
if (message.type === 'tool-confirmation-request') {
return parentMessageBus.publish({
...message,
subagent: definition.name,
});
}
return parentMessageBus.publish(message);
};
const subagentMessageBus = parentMessageBus.derive(definition.name);
// Create an isolated tool registry for this agent instance.
const agentToolRegistry = new ToolRegistry(