Skip to main content
Glama
pvinis
by pvinis

start_codegen_session

Initiate a code generation session to record Playwright actions, specifying output directory, test name prefix, and comment inclusion for creating automated test scripts.

Instructions

Start a new code generation session to record Playwright actions

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
optionsYesCode generation options

Implementation Reference

  • The core handler function implementing the start_codegen_session tool. It merges user-provided options with defaults, normalizes the output path, creates the output directory if needed, starts an ActionRecorder session, associates the options with the session, and returns session details.
    handler: async ({ options = {} }: { options?: CodegenOptions }) => {
      try {
        // Merge provided options with defaults
        const mergedOptions = { ...DEFAULT_OPTIONS, ...options };
    
        // Ensure output path is absolute and normalized
        const workspaceRoot = getWorkspaceRoot();
        const outputPath = path.isAbsolute(mergedOptions.outputPath)
          ? mergedOptions.outputPath
          : path.join(workspaceRoot, mergedOptions.outputPath);
    
        mergedOptions.outputPath = outputPath;
    
        // Ensure output directory exists
        try {
          await fs.mkdir(outputPath, { recursive: true });
        } catch (mkdirError: any) {
          throw new Error(
            `Failed to create output directory: ${mkdirError.message}`
          );
        }
    
        const sessionId = ActionRecorder.getInstance().startSession();
    
        // Store options with the session
        const recorder = ActionRecorder.getInstance();
        const session = recorder.getSession(sessionId);
        if (session) {
          session.options = mergedOptions;
        }
    
        return {
          sessionId,
          options: mergedOptions,
          message: `Started codegen session. Tests will be generated in: ${outputPath}`,
        };
      } catch (error: any) {
        throw new Error(`Failed to start codegen session: ${error.message}`);
      }
    },
  • Input parameter schema definition for the start_codegen_session tool, specifying the optional 'options' object with properties for outputPath, testNamePrefix, and includeComments.
    parameters: {
      type: "object",
      properties: {
        options: {
          type: "object",
          description: "Code generation options",
          properties: {
            outputPath: { type: "string" },
            testNamePrefix: { type: "string" },
            includeComments: { type: "boolean" },
          },
        },
      },
    },
  • src/tools.ts:7-35 (registration)
    Tool registration definition in createToolDefinitions(), including name, description, and detailed inputSchema with requirements for MCP protocol.
    {
      name: "start_codegen_session",
      description: "Start a new code generation session to record Playwright actions",
      inputSchema: {
        type: "object",
        properties: {
          options: {
            type: "object",
            description: "Code generation options",
            properties: {
              outputPath: { 
                type: "string", 
                description: "Directory path where generated tests will be saved (use absolute path)" 
              },
              testNamePrefix: { 
                type: "string", 
                description: "Prefix to use for generated test names (default: 'GeneratedTest')" 
              },
              includeComments: { 
                type: "boolean", 
                description: "Whether to include descriptive comments in generated tests" 
              }
            },
            required: ["outputPath"]
          }
        },
        required: ["options"]
      }
    },
  • Dispatch handler in the main tool call switch statement that invokes the specific startCodegenSession.handler with arguments.
    case "start_codegen_session":
      return await handleCodegenResult(startCodegenSession.handler(args));
  • src/tools.ts:437-442 (registration)
    Listing of the tool name in CODEGEN_TOOLS array for categorization and conditional handling.
    export const CODEGEN_TOOLS = [
      'start_codegen_session',
      'end_codegen_session',
      'get_codegen_session',
      'clear_codegen_session'
    ];

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pvinis/mcp-playwright-stealth'

If you have feedback or need assistance with the MCP directory API, please join our Discord server