// Do not edit this file directly.
// This file is auto generated from the template file `scripts/devcontainer/templates/devcontainer.json.jinja`.
// If you need to make changes, please update the template file and regenerate this file
// by running pre-commit command `pre-commit run --all-files`
// or by manually running the script `./scripts/devcontainer/generate-devcontainers.sh`.
{
    "name": "python-{{ python_version }}",
    "image": "mcr.microsoft.com/devcontainers/python:{{ python_version }}",
    "secrets": {
        "OAI_CONFIG_LIST": {
            "description": "This key is optional and only needed if you are working on OpenAI-related code. Leave it blank if not required. You can always set it later as an environment variable in the codespace terminal."
        },
        "OPENAI_API_KEY": {
            "description": "This key is optional and only needed if you are working on OpenAI-related code. Leave it blank if not required. You can always set it later as an environment variable in the codespace terminal."
        },
        "TOGETHER_API_KEY": {
            "description": "This key is optional and only needed if you are working with Together API-related code. Leave it blank if not required. You can always set it later as an environment variable in the codespace terminal."
        },
        "ANTHROPIC_API_KEY": {
            "description": "This key is optional and only needed if you are working with Anthropic API-related code. Leave it blank if not required. You can always set it later as an environment variable in the codespace terminal."
        },
        "GEMINI_API_KEY": {
            "description": "This key is optional and only needed if you are working with Gemini API-related code. Leave it blank if not required. You can always set it later as an environment variable in the codespace terminal."
        },
        "AZURE_OPENAI_API_KEY": {
            "description": "This key is optional and only needed if you are using Azure's OpenAI services. For it to work, you must also set the related environment variables: AZURE_API_ENDPOINT, AZURE_API_VERSION. Leave it blank if not required. You can always set these variables later in the codespace terminal."
        },
        "AZURE_API_ENDPOINT": {
            "description": "This key is required if you are using Azure's OpenAI services. It must be used in conjunction with AZURE_OPENAI_API_KEY, AZURE_API_VERSION to ensure proper configuration. You can always set these variables later as environment variables in the codespace terminal."
        },
        "AZURE_API_VERSION": {
            "description": "This key is required to specify the version of the Azure API you are using. Set this along with AZURE_OPENAI_API_KEY, AZURE_API_ENDPOINT for Azure OpenAI services. These variables can be configured later as environment variables in the codespace terminal."
        }
    },
    "shutdownAction": "stopContainer",
    "workspaceFolder": "/workspaces/ag2",
    "runArgs": [
        "--name",
        "python-{{ python_version }}-ag2"
    ],
    "remoteEnv": {
        "OAI_CONFIG_LIST": "${localEnv:OAI_CONFIG_LIST}",
        "ANTHROPIC_API_KEY": "${localEnv:ANTHROPIC_API_KEY}",
        "AZURE_OPENAI_API_KEY": "${localEnv:AZURE_OPENAI_API_KEY}",
        "OPENAI_API_KEY": "${localEnv:OPENAI_API_KEY}",
        "TOGETHER_API_KEY": "${localEnv:TOGETHER_API_KEY}",
        "GEMINI_API_KEY": "${localEnv:GEMINI_API_KEY}",
        "AZURE_API_ENDPOINT": "${localEnv:AZURE_API_ENDPOINT}",
        "AZURE_API_VERSION": "${localEnv:AZURE_API_VERSION}"
    },
    "features": {
        "ghcr.io/devcontainers/features/common-utils:2": {
            "installZsh": true,
            "installOhMyZsh": true,
            "configureZshAsDefaultShell": true,
            "username": "vscode",
            "userUid": "1000",
            "userGid": "1000"
            // "upgradePackages": "true"
        },
        "ghcr.io/devcontainers/features/node:1": {},
        "ghcr.io/devcontainers/features/git:1": {},
        "ghcr.io/devcontainers/features/git-lfs:1": {},
        "ghcr.io/rocker-org/devcontainer-features/quarto-cli:1": {}
    },
    "updateContentCommand": "bash .devcontainer/setup.sh",
    "customizations": {
        "vscode": {
            "settings": {
                "python.linting.enabled": true,
                "python.testing.pytestEnabled": true,
                "editor.formatOnSave": true,
                "editor.codeActionsOnSave": {
                    "source.organizeImports": "always"
                },
                "[python]": {
                    "editor.defaultFormatter": "ms-python.vscode-pylance"
                },
                "editor.rulers": [
                    80
                ]
            },
            "extensions": [
                "ms-python.python",
                "ms-toolsai.jupyter",
                "ms-toolsai.vscode-jupyter-cell-tags",
                "ms-toolsai.jupyter-keymap",
                "ms-toolsai.jupyter-renderers",
                "ms-toolsai.vscode-jupyter-slideshow",
                "ms-python.vscode-pylance"
            ]
        }
    }
}
