// Input:
const code = 'abc'
const selected_framework = 'abc'
// Code Submission and Language Identification Prompt
const detected_languages = `List the detected programming languages for the following code: ${code}. Respond only with a comma-separated list without explanations.`;
// response: a, b, c
const language = detected_languages[-1];

// Review code for completeness and syntax correctness
const code_review =`Review the following code for completeness and syntax correctness: ${code}. Respond with "valid" if it is correct, or "non valid" if it is incorrect, providing a brief reason for the invalidity.`;
// response: valid or [non valid, reason]

// Get Framework List
const framework_list = `Provide a comprehensive list of testing frameworks for ${language}. Format the response as a comma-separated list (a, b, c) without any explanations.`
// response: a, b, c

// Split Code to Units
const splited_code = `Prompt: You are an AI code formatting assistant. Your task is to seperate the following code to many functions (not including library, defined variables) and format it into a single string (plain text), where each function is separated by :>
        Please provide the output without any additional information or context, just return the formatted string.
        Here's the code:${code}`;
// response: [function code,]

// Verifies framework compatibility
const valid_framework = `Determine if the testing framework "${selected_framework}" exists for the ${language} programming language. Respond with "available" if it does, or "non available" with a reason if it does not. Do not include any additional information.`
// response: available or [non available, reason]


// Function Type Identifier
const function_types =  `Provide a comprehensive list of function types in ${language}. Include all relevant categories, such as pure functions, anonymous functions, higher-order functions, and any other types specific to the language. Respond in the format: function type 01, function type 02, function type 03, ... without explanations or hierarchies.`
// response: function type 01, function type 02, function type 03

// Get Test Focus of Each Function Type
const functiontype_focus = `Provide a structured TypeScript (Array<{ focusKey: string; testCases: Array<string> }>) array containing test focus keys and associated test cases specifically for the function types ${type}. Each focus key should include relevant test cases that outline the different aspects to be tested. Not explain anything` 
// reponse: [{"focusKey": "","testCases": []}]

// Prompt to generate functional testing code (unit tests): input: laguage, framework, functional code, function type, function type test focus
const functional_prompt = `Generate functional testing code (unit tests) based on the following input: 
Language: ${language}
Framework: ${selected_framework}
Functional Code: ${splited_code[-1]}
Function Type: ${function_types}
Function Type Test Focus Key: ${functiontype_focus[-1]}. In the response, only include code; if it's not code, comment it out. Add a descriptive comment above the function to explain its purpose and functionality without using any Markdown formatting. Ensure that the response is in a plain text format, without any Markdown formatting.`
// response: code

