MCPcopy Create free account
hub / github.com/Noumena-Network/code / call

Function call

src/tools/REPLTool/pyReplFactory.tsx:653–711  ·  view source on GitHub ↗
(
      input,
      toolUseContext,
      canUseTool: CanUseToolFn,
      _parentMessage: AssistantMessage,
      onProgress?: ToolCallProgress<ReplToolCallProgress>,
    )

Source from the content-addressed store, hash-verified

651 }
652 },
653 async call(
654 input,
655 toolUseContext,
656 canUseTool: CanUseToolFn,
657 _parentMessage: AssistantMessage,
658 onProgress?: ToolCallProgress<ReplToolCallProgress>,
659 ) {
660 const manager = getOrCreatePythonReplManager(toolUseContext, config.toolName)
661 const contextModifiers: Array<(context: ToolUseContext) => ToolUseContext> = []
662 const toolCalls: ReplToolCallSummary[] = []
663 const availableTools = augmentToolsForPythonRepl(toolUseContext)
664 const outerToolUseID = toolUseContext.toolUseId ?? randomUUID()
665
666 const result = await manager.execute(
667 {
668 code: input.code,
669 timeoutMs: parsePragmaTimeout(input.code) ?? input.timeout_ms,
670 },
671 {
672 toolUseContext: {
673 ...toolUseContext,
674 options: {
675 ...toolUseContext.options,
676 tools: availableTools,
677 },
678 },
679 availableTools: availableTools.filter(tool => !hiddenToolNames.has(tool.name)),
680 canUseTool,
681 outerToolUseID,
682 onProgress,
683 pushMessage() {},
684 pushContextModifier(modifyContext) {
685 contextModifiers.push(modifyContext)
686 },
687 pushCallSummary(summary) {
688 toolCalls.push(summary)
689 },
690 },
691 )
692
693 const output: PythonReplToolOutput = {
694 output: result.output,
695 ...(result.error ? { error: result.error } : {}),
696 toolCalls,
697 }
698
699 return {
700 data: output,
701 ...(contextModifiers.length > 0
702 ? {
703 contextModifier: (context: ToolUseContext) =>
704 contextModifiers.reduce(
705 (ctx, modifier) => modifier(ctx),
706 context,
707 ),
708 }
709 : {}),
710 }

Callers

nothing calls this directly

Calls 6

randomUUIDFunction · 0.90
parsePragmaTimeoutFunction · 0.85
executeMethod · 0.80
hasMethod · 0.45

Tested by

no test coverage detected