Lines 81-121javascript
82 * @effect Streams progress events via onProgress callback
83 * @returns Files modified, reasoning steps, and tool calls
85 async execute(options) {
86 const { systemPrompt, userPrompt, allowedTools, permissionMode, cwd, onProgress, abortController, resumeSessionId, model = DEFAULT_MODEL, correlation, telemetry, } = options;
87 // Get and validate auth token
88 const tokenValidation = this.getTokenValidationState();
89 log.info(`Token validation status: ${JSON.stringify({
90 state: tokenValidation.state,
91 refreshRequired: tokenValidation.refreshRequired,
92 refreshAvailable: tokenValidation.refreshAvailable,
93 errorMessage: tokenValidation.errorMessage,
95 const authToken = await this.getValidAuthToken();
96 log.info(`Agent will use ANTHROPIC_BASE_URL: ${this.gatewayUrl}`);
97 log.info('Auth token loaded successfully for agent execution');
98 // Ensure TCC observability key is available before instrumenting
99 (0, telemetry_1.ensureTCCApiKey)();
100 // Dynamically import the ESM SDK
101 // Use eval to prevent TypeScript from transforming to require()
102 const claudeSDK = await eval("import('@anthropic-ai/claude-agent-sdk')");
103 // Wrap with Context Company observability when TCC_API_KEY is configured
LowEval
Package source references a known benign dynamic code generation pattern.
dist/services/agent/AgentCore.jsView on unpkg · L101 104 const sdk = process.env.TCC_API_KEY
105 ? (0, claude_1.instrumentClaudeAgent)(claudeSDK)
107 const { query, tool, createSdkMcpServer } = sdk;
108 // Set up structured-output tool if requested. Captures the validated
109 // input in a closure so we can return it after the agent loop.
110 let capturedResultToolInput;
111 let resultMcpServers;
112 let resultToolFullName;
113 if (options.resultTool) {
114 const resultToolDef = options.resultTool;
115 resultToolFullName = `mcp__${RESULT_MCP_SERVER_NAME}__${resultToolDef.name}`;
116 const submitTool = tool(resultToolDef.name, resultToolDef.description, resultToolDef.inputSchema, async (args) => {
117 capturedResultToolInput = args;
119 content: [{ type: 'text', text: 'Result received.' }],