Upload 9 files
Browse files- .gitignore +155 -0
- .pre-commit-config.yaml +13 -0
- CODE_OF_CONDUCT.md +133 -0
- CONTRIBUTING.md +127 -0
- LICENSE +201 -0
- Makefile +17 -0
- SECURITY.md +9 -0
- e2b.toml +16 -0
- pyproject.toml +130 -0
    	
        .gitignore
    ADDED
    
    | @@ -0,0 +1,155 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            # Logging
         | 
| 2 | 
            +
            logs
         | 
| 3 | 
            +
            tmp
         | 
| 4 | 
            +
            wandb
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            # Data
         | 
| 7 | 
            +
            data
         | 
| 8 | 
            +
            outputs
         | 
| 9 | 
            +
            data/
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            # Apple
         | 
| 12 | 
            +
            .DS_Store
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            # VS Code
         | 
| 15 | 
            +
            .vscode
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            # Byte-compiled / optimized / DLL files
         | 
| 18 | 
            +
            __pycache__/
         | 
| 19 | 
            +
            *.py[cod]
         | 
| 20 | 
            +
            *$py.class
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            # C extensions
         | 
| 23 | 
            +
            *.so
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            # Distribution / packaging
         | 
| 26 | 
            +
            .Python
         | 
| 27 | 
            +
            build/
         | 
| 28 | 
            +
            develop-eggs/
         | 
| 29 | 
            +
            dist/
         | 
| 30 | 
            +
            downloads/
         | 
| 31 | 
            +
            eggs/
         | 
| 32 | 
            +
            .eggs/
         | 
| 33 | 
            +
            lib/
         | 
| 34 | 
            +
            lib64/
         | 
| 35 | 
            +
            parts/
         | 
| 36 | 
            +
            sdist/
         | 
| 37 | 
            +
            var/
         | 
| 38 | 
            +
            wheels/
         | 
| 39 | 
            +
            share/python-wheels/
         | 
| 40 | 
            +
            node_modules/
         | 
| 41 | 
            +
            *.egg-info/
         | 
| 42 | 
            +
            .installed.cfg
         | 
| 43 | 
            +
            *.egg
         | 
| 44 | 
            +
            MANIFEST
         | 
| 45 | 
            +
             | 
| 46 | 
            +
            # PyInstaller
         | 
| 47 | 
            +
            *.manifest
         | 
| 48 | 
            +
            *.spec
         | 
| 49 | 
            +
             | 
| 50 | 
            +
            # Installer logs
         | 
| 51 | 
            +
            pip-log.txt
         | 
| 52 | 
            +
            pip-delete-this-directory.txt
         | 
| 53 | 
            +
             | 
| 54 | 
            +
            # Unit test / coverage reports
         | 
| 55 | 
            +
            htmlcov/
         | 
| 56 | 
            +
            .tox/
         | 
| 57 | 
            +
            .nox/
         | 
| 58 | 
            +
            .coverage
         | 
| 59 | 
            +
            .coverage.*
         | 
| 60 | 
            +
            .cache
         | 
| 61 | 
            +
            nosetests.xml
         | 
| 62 | 
            +
            coverage.xml
         | 
| 63 | 
            +
            *.cover
         | 
| 64 | 
            +
            *.py,cover
         | 
| 65 | 
            +
            .hypothesis/
         | 
| 66 | 
            +
            .pytest_cache/
         | 
| 67 | 
            +
            cover/
         | 
| 68 | 
            +
            uv.lock
         | 
| 69 | 
            +
             | 
| 70 | 
            +
            # Translations
         | 
| 71 | 
            +
            *.mo
         | 
| 72 | 
            +
            *.pot
         | 
| 73 | 
            +
             | 
| 74 | 
            +
            # Sphinx documentation
         | 
| 75 | 
            +
            docs/_build/
         | 
| 76 | 
            +
             | 
| 77 | 
            +
            # PyBuilder
         | 
| 78 | 
            +
            .pybuilder/
         | 
| 79 | 
            +
            target/
         | 
| 80 | 
            +
             | 
| 81 | 
            +
            # Jupyter Notebook
         | 
| 82 | 
            +
            .ipynb_checkpoints
         | 
| 83 | 
            +
             | 
| 84 | 
            +
            # IPython
         | 
| 85 | 
            +
            profile_default/
         | 
| 86 | 
            +
            ipython_config.py
         | 
| 87 | 
            +
             | 
| 88 | 
            +
            # pyenv
         | 
| 89 | 
            +
            # .python-version
         | 
| 90 | 
            +
             | 
| 91 | 
            +
            # pipenv
         | 
| 92 | 
            +
            #Pipfile.lock
         | 
| 93 | 
            +
             | 
| 94 | 
            +
            # UV
         | 
| 95 | 
            +
            #uv.lock
         | 
| 96 | 
            +
             | 
| 97 | 
            +
            # poetry
         | 
| 98 | 
            +
            #poetry.lock
         | 
| 99 | 
            +
             | 
| 100 | 
            +
            # pdm
         | 
| 101 | 
            +
            .pdm.toml
         | 
| 102 | 
            +
            .pdm-python
         | 
| 103 | 
            +
            .pdm-build/
         | 
| 104 | 
            +
             | 
| 105 | 
            +
            # PEP 582
         | 
| 106 | 
            +
            __pypackages__/
         | 
| 107 | 
            +
             | 
| 108 | 
            +
            # Celery stuff
         | 
| 109 | 
            +
            celerybeat-schedule
         | 
| 110 | 
            +
            celerybeat.pid
         | 
| 111 | 
            +
             | 
| 112 | 
            +
            # SageMath parsed files
         | 
| 113 | 
            +
            *.sage.py
         | 
| 114 | 
            +
             | 
| 115 | 
            +
            # Environments
         | 
| 116 | 
            +
            .env
         | 
| 117 | 
            +
            .venv
         | 
| 118 | 
            +
            env/
         | 
| 119 | 
            +
            venv/
         | 
| 120 | 
            +
            ENV/
         | 
| 121 | 
            +
            env.bak/
         | 
| 122 | 
            +
            venv.bak/
         | 
| 123 | 
            +
             | 
| 124 | 
            +
             | 
| 125 | 
            +
            # mkdocs documentation
         | 
| 126 | 
            +
            /site
         | 
| 127 | 
            +
             | 
| 128 | 
            +
            # mypy
         | 
| 129 | 
            +
            .mypy_cache/
         | 
| 130 | 
            +
            .dmypy.json
         | 
| 131 | 
            +
            dmypy.json
         | 
| 132 | 
            +
             | 
| 133 | 
            +
            # Pyre type checker
         | 
| 134 | 
            +
            .pyre/
         | 
| 135 | 
            +
             | 
| 136 | 
            +
            # pytype static type analyzer
         | 
| 137 | 
            +
            .pytype/
         | 
| 138 | 
            +
             | 
| 139 | 
            +
            # Cython debug symbols
         | 
| 140 | 
            +
            cython_debug/
         | 
| 141 | 
            +
             | 
| 142 | 
            +
            # PyCharm
         | 
| 143 | 
            +
            .idea/
         | 
| 144 | 
            +
             | 
| 145 | 
            +
            # Interpreter
         | 
| 146 | 
            +
            interpreter_workspace/
         | 
| 147 | 
            +
             | 
| 148 | 
            +
            # Archive
         | 
| 149 | 
            +
            archive/
         | 
| 150 | 
            +
            savedir/
         | 
| 151 | 
            +
            output/
         | 
| 152 | 
            +
            tool_output/
         | 
| 153 | 
            +
             | 
| 154 | 
            +
            # Gradio runtime
         | 
| 155 | 
            +
            .gradio/
         | 
    	
        .pre-commit-config.yaml
    ADDED
    
    | @@ -0,0 +1,13 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            repos:
         | 
| 2 | 
            +
              - repo: https://github.com/astral-sh/ruff-pre-commit
         | 
| 3 | 
            +
                rev: v0.2.1
         | 
| 4 | 
            +
                hooks:
         | 
| 5 | 
            +
                  - id: ruff
         | 
| 6 | 
            +
                    args:
         | 
| 7 | 
            +
                      - --fix
         | 
| 8 | 
            +
                  - id: ruff-format
         | 
| 9 | 
            +
              - repo: https://github.com/pre-commit/pre-commit-hooks
         | 
| 10 | 
            +
                rev: v4.5.0
         | 
| 11 | 
            +
                hooks:
         | 
| 12 | 
            +
                  - id: check-merge-conflict
         | 
| 13 | 
            +
                  - id: check-yaml
         | 
    	
        CODE_OF_CONDUCT.md
    ADDED
    
    | @@ -0,0 +1,133 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
             | 
| 2 | 
            +
            # Contributor Covenant Code of Conduct
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            ## Our Pledge
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            We as members, contributors, and leaders pledge to make participation in our
         | 
| 7 | 
            +
            community a harassment-free experience for everyone, regardless of age, body
         | 
| 8 | 
            +
            size, visible or invisible disability, ethnicity, sex characteristics, gender
         | 
| 9 | 
            +
            identity and expression, level of experience, education, socio-economic status,
         | 
| 10 | 
            +
            nationality, personal appearance, race, caste, color, religion, or sexual
         | 
| 11 | 
            +
            identity and orientation.
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            We pledge to act and interact in ways that contribute to an open, welcoming,
         | 
| 14 | 
            +
            diverse, inclusive, and healthy community.
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            ## Our Standards
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            Examples of behavior that contributes to a positive environment for our
         | 
| 19 | 
            +
            community include:
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            * Demonstrating empathy and kindness toward other people
         | 
| 22 | 
            +
            * Being respectful of differing opinions, viewpoints, and experiences
         | 
| 23 | 
            +
            * Giving and gracefully accepting constructive feedback
         | 
| 24 | 
            +
            * Accepting responsibility and apologizing to those affected by our mistakes,
         | 
| 25 | 
            +
              and learning from the experience
         | 
| 26 | 
            +
            * Focusing on what is best not just for us as individuals, but for the overall
         | 
| 27 | 
            +
              community
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            Examples of unacceptable behavior include:
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            * The use of sexualized language or imagery, and sexual attention or advances of
         | 
| 32 | 
            +
              any kind
         | 
| 33 | 
            +
            * Trolling, insulting or derogatory comments, and personal or political attacks
         | 
| 34 | 
            +
            * Public or private harassment
         | 
| 35 | 
            +
            * Publishing others' private information, such as a physical or email address,
         | 
| 36 | 
            +
              without their explicit permission
         | 
| 37 | 
            +
            * Other conduct which could reasonably be considered inappropriate in a
         | 
| 38 | 
            +
              professional setting
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            ## Enforcement Responsibilities
         | 
| 41 | 
            +
             | 
| 42 | 
            +
            Community leaders are responsible for clarifying and enforcing our standards of
         | 
| 43 | 
            +
            acceptable behavior and will take appropriate and fair corrective action in
         | 
| 44 | 
            +
            response to any behavior that they deem inappropriate, threatening, offensive,
         | 
| 45 | 
            +
            or harmful.
         | 
| 46 | 
            +
             | 
| 47 | 
            +
            Community leaders have the right and responsibility to remove, edit, or reject
         | 
| 48 | 
            +
            comments, commits, code, wiki edits, issues, and other contributions that are
         | 
| 49 | 
            +
            not aligned to this Code of Conduct, and will communicate reasons for moderation
         | 
| 50 | 
            +
            decisions when appropriate.
         | 
| 51 | 
            +
             | 
| 52 | 
            +
            ## Scope
         | 
| 53 | 
            +
             | 
| 54 | 
            +
            This Code of Conduct applies within all community spaces, and also applies when
         | 
| 55 | 
            +
            an individual is officially representing the community in public spaces.
         | 
| 56 | 
            +
            Examples of representing our community include using an official e-mail address,
         | 
| 57 | 
            +
            posting via an official social media account, or acting as an appointed
         | 
| 58 | 
            +
            representative at an online or offline event.
         | 
| 59 | 
            +
             | 
| 60 | 
            +
            ## Enforcement
         | 
| 61 | 
            +
             | 
| 62 | 
            +
            Instances of abusive, harassing, or otherwise unacceptable behavior may be
         | 
| 63 | 
            +
            reported to the community leaders responsible for enforcement at
         | 
| 64 | |
| 65 | 
            +
            All complaints will be reviewed and investigated promptly and fairly.
         | 
| 66 | 
            +
             | 
| 67 | 
            +
            All community leaders are obligated to respect the privacy and security of the
         | 
| 68 | 
            +
            reporter of any incident.
         | 
| 69 | 
            +
             | 
| 70 | 
            +
            ## Enforcement Guidelines
         | 
| 71 | 
            +
             | 
| 72 | 
            +
            Community leaders will follow these Community Impact Guidelines in determining
         | 
| 73 | 
            +
            the consequences for any action they deem in violation of this Code of Conduct:
         | 
| 74 | 
            +
             | 
| 75 | 
            +
            ### 1. Correction
         | 
| 76 | 
            +
             | 
| 77 | 
            +
            **Community Impact**: Use of inappropriate language or other behavior deemed
         | 
| 78 | 
            +
            unprofessional or unwelcome in the community.
         | 
| 79 | 
            +
             | 
| 80 | 
            +
            **Consequence**: A private, written warning from community leaders, providing
         | 
| 81 | 
            +
            clarity around the nature of the violation and an explanation of why the
         | 
| 82 | 
            +
            behavior was inappropriate. A public apology may be requested.
         | 
| 83 | 
            +
             | 
| 84 | 
            +
            ### 2. Warning
         | 
| 85 | 
            +
             | 
| 86 | 
            +
            **Community Impact**: A violation through a single incident or series of
         | 
| 87 | 
            +
            actions.
         | 
| 88 | 
            +
             | 
| 89 | 
            +
            **Consequence**: A warning with consequences for continued behavior. No
         | 
| 90 | 
            +
            interaction with the people involved, including unsolicited interaction with
         | 
| 91 | 
            +
            those enforcing the Code of Conduct, for a specified period of time. This
         | 
| 92 | 
            +
            includes avoiding interactions in community spaces as well as external channels
         | 
| 93 | 
            +
            like social media. Violating these terms may lead to a temporary or permanent
         | 
| 94 | 
            +
            ban.
         | 
| 95 | 
            +
             | 
| 96 | 
            +
            ### 3. Temporary Ban
         | 
| 97 | 
            +
             | 
| 98 | 
            +
            **Community Impact**: A serious violation of community standards, including
         | 
| 99 | 
            +
            sustained inappropriate behavior.
         | 
| 100 | 
            +
             | 
| 101 | 
            +
            **Consequence**: A temporary ban from any sort of interaction or public
         | 
| 102 | 
            +
            communication with the community for a specified period of time. No public or
         | 
| 103 | 
            +
            private interaction with the people involved, including unsolicited interaction
         | 
| 104 | 
            +
            with those enforcing the Code of Conduct, is allowed during this period.
         | 
| 105 | 
            +
            Violating these terms may lead to a permanent ban.
         | 
| 106 | 
            +
             | 
| 107 | 
            +
            ### 4. Permanent Ban
         | 
| 108 | 
            +
             | 
| 109 | 
            +
            **Community Impact**: Demonstrating a pattern of violation of community
         | 
| 110 | 
            +
            standards, including sustained inappropriate behavior, harassment of an
         | 
| 111 | 
            +
            individual, or aggression toward or disparagement of classes of individuals.
         | 
| 112 | 
            +
             | 
| 113 | 
            +
            **Consequence**: A permanent ban from any sort of public interaction within the
         | 
| 114 | 
            +
            community.
         | 
| 115 | 
            +
             | 
| 116 | 
            +
            ## Attribution
         | 
| 117 | 
            +
             | 
| 118 | 
            +
            This Code of Conduct is adapted from the [Contributor Covenant][homepage],
         | 
| 119 | 
            +
            version 2.1, available at
         | 
| 120 | 
            +
            [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
         | 
| 121 | 
            +
             | 
| 122 | 
            +
            Community Impact Guidelines were inspired by
         | 
| 123 | 
            +
            [Mozilla's code of conduct enforcement ladder][Mozilla CoC].
         | 
| 124 | 
            +
             | 
| 125 | 
            +
            For answers to common questions about this code of conduct, see the FAQ at
         | 
| 126 | 
            +
            [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
         | 
| 127 | 
            +
            [https://www.contributor-covenant.org/translations][translations].
         | 
| 128 | 
            +
             | 
| 129 | 
            +
            [homepage]: https://www.contributor-covenant.org
         | 
| 130 | 
            +
            [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
         | 
| 131 | 
            +
            [Mozilla CoC]: https://github.com/mozilla/diversity
         | 
| 132 | 
            +
            [FAQ]: https://www.contributor-covenant.org/faq
         | 
| 133 | 
            +
            [translations]: https://www.contributor-covenant.org/translations
         | 
    	
        CONTRIBUTING.md
    ADDED
    
    | @@ -0,0 +1,127 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            <!---
         | 
| 2 | 
            +
            Copyright 2025 The HuggingFace Team. All rights reserved.
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            Licensed under the Apache License, Version 2.0 (the "License");
         | 
| 5 | 
            +
            you may not use this file except in compliance with the License.
         | 
| 6 | 
            +
            You may obtain a copy of the License at
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                http://www.apache.org/licenses/LICENSE-2.0
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            Unless required by applicable law or agreed to in writing, software
         | 
| 11 | 
            +
            distributed under the License is distributed on an "AS IS" BASIS,
         | 
| 12 | 
            +
            WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         | 
| 13 | 
            +
            See the License for the specific language governing permissions and
         | 
| 14 | 
            +
            limitations under the License.
         | 
| 15 | 
            +
            -->
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            # Contribute to smolagents
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            Everyone is welcome to contribute, and we value everybody's contribution. Code
         | 
| 20 | 
            +
            contributions are not the only way to help the community. Answering questions, helping
         | 
| 21 | 
            +
            others, and improving the documentation are also immensely valuable.
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            It also helps us if you spread the word! Reference the library in blog posts
         | 
| 24 | 
            +
            about the awesome projects it made possible, shout out on Twitter every time it has
         | 
| 25 | 
            +
            helped you, or simply ⭐️ the repository to say thank you.
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            However you choose to contribute, please be mindful and respect our
         | 
| 28 | 
            +
            [code of conduct](https://github.com/huggingface/smolagents/blob/main/CODE_OF_CONDUCT.md).
         | 
| 29 | 
            +
             | 
| 30 | 
            +
            **This guide was heavily inspired by the awesome [scikit-learn guide to contributing](https://github.com/scikit-learn/scikit-learn/blob/main/CONTRIBUTING.md).**
         | 
| 31 | 
            +
             | 
| 32 | 
            +
            ## Ways to contribute
         | 
| 33 | 
            +
             | 
| 34 | 
            +
            There are several ways you can contribute to smolagents.
         | 
| 35 | 
            +
             | 
| 36 | 
            +
            * Submit issues related to bugs or desired new features.
         | 
| 37 | 
            +
            * Contribute to the examples or to the documentation.
         | 
| 38 | 
            +
            * Fix outstanding issues with the existing code.
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            > All contributions are equally valuable to the community. 🥰
         | 
| 41 | 
            +
             | 
| 42 | 
            +
            ## Submitting a bug-related issue or feature request
         | 
| 43 | 
            +
             | 
| 44 | 
            +
            At any moment, feel welcome to open an issue, citing your exact error traces and package versions if it's a bug.
         | 
| 45 | 
            +
            It's often even better to open a PR with your proposed fixes/changes!
         | 
| 46 | 
            +
             | 
| 47 | 
            +
            Do your best to follow these guidelines when submitting a bug-related issue or a feature
         | 
| 48 | 
            +
            request. It will make it easier for us to come back to you quickly and with good
         | 
| 49 | 
            +
            feedback.
         | 
| 50 | 
            +
             | 
| 51 | 
            +
            ### Did you find a bug?
         | 
| 52 | 
            +
             | 
| 53 | 
            +
            The smolagents library is robust and reliable thanks to users who report the problems they encounter.
         | 
| 54 | 
            +
             | 
| 55 | 
            +
            Before you report an issue, we would really appreciate it if you could **make sure the bug was not
         | 
| 56 | 
            +
            already reported** (use the search bar on GitHub under Issues). Your issue should also be related to bugs in the 
         | 
| 57 | 
            +
            library itself, and not your code. 
         | 
| 58 | 
            +
             | 
| 59 | 
            +
            Once you've confirmed the bug hasn't already been reported, please include the following information in your issue so 
         | 
| 60 | 
            +
            we can quickly resolve it:
         | 
| 61 | 
            +
             | 
| 62 | 
            +
            * Your **OS type and version**, as well as your environment versions (versions of rust, python, and dependencies).
         | 
| 63 | 
            +
            * A short, self-contained, code snippet that allows us to reproduce the bug.
         | 
| 64 | 
            +
            * The *full* traceback if an exception is raised.
         | 
| 65 | 
            +
            * Attach any other additional information, like screenshots, you think may help.
         | 
| 66 | 
            +
             | 
| 67 | 
            +
            ### Do you want a new feature?
         | 
| 68 | 
            +
             | 
| 69 | 
            +
            If there is a new feature you'd like to see in smolagents, please open an issue and describe:
         | 
| 70 | 
            +
             | 
| 71 | 
            +
            1. What is the *motivation* behind this feature? Is it related to a problem or frustration with the library? Is it 
         | 
| 72 | 
            +
               a feature related to something you need for a project? Is it something you worked on and think it could benefit 
         | 
| 73 | 
            +
               the community?
         | 
| 74 | 
            +
             | 
| 75 | 
            +
               Whatever it is, we'd love to hear about it!
         | 
| 76 | 
            +
             | 
| 77 | 
            +
            2. Describe your requested feature in as much detail as possible. The more you can tell us about it, the better 
         | 
| 78 | 
            +
               we'll be able to help you.
         | 
| 79 | 
            +
            3. Provide a *code snippet* that demonstrates the feature's usage.
         | 
| 80 | 
            +
            4. If the feature is related to a paper, please include a link.
         | 
| 81 | 
            +
             | 
| 82 | 
            +
            If your issue is well written we're already 80% of the way there by the time you create it.
         | 
| 83 | 
            +
             | 
| 84 | 
            +
            ## Do you want to add documentation?
         | 
| 85 | 
            +
             | 
| 86 | 
            +
            We're always looking for improvements to the documentation that make it more clear and accurate. Please let us know 
         | 
| 87 | 
            +
            how the documentation can be improved such as typos and any content that is missing, unclear or inaccurate. We'll be 
         | 
| 88 | 
            +
            happy to make the changes or help you make a contribution if you're interested!
         | 
| 89 | 
            +
             | 
| 90 | 
            +
            ## Fixing outstanding issues
         | 
| 91 | 
            +
             | 
| 92 | 
            +
            If you notice an issue with the existing code and have a fix in mind, feel free to [start contributing](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) and open
         | 
| 93 | 
            +
            a Pull Request!
         | 
| 94 | 
            +
             | 
| 95 | 
            +
            ### Making code changes
         | 
| 96 | 
            +
             | 
| 97 | 
            +
            To install dev dependencies, run:
         | 
| 98 | 
            +
            ```
         | 
| 99 | 
            +
            pip install -e ".[dev]"
         | 
| 100 | 
            +
            ```
         | 
| 101 | 
            +
             | 
| 102 | 
            +
            When making changes to the codebase, please check that it follows the repo's code quality requirements by running:
         | 
| 103 | 
            +
            To check code quality of the source code:
         | 
| 104 | 
            +
            ```
         | 
| 105 | 
            +
            make quality
         | 
| 106 | 
            +
            ```
         | 
| 107 | 
            +
             | 
| 108 | 
            +
            If the checks fail, you can run the formatter with:
         | 
| 109 | 
            +
            ```
         | 
| 110 | 
            +
            make style
         | 
| 111 | 
            +
            ```
         | 
| 112 | 
            +
             | 
| 113 | 
            +
            And commit the changes.
         | 
| 114 | 
            +
             | 
| 115 | 
            +
            To run tests locally, run this command:
         | 
| 116 | 
            +
            ```bash
         | 
| 117 | 
            +
            make test
         | 
| 118 | 
            +
            ```
         | 
| 119 | 
            +
            </details>
         | 
| 120 | 
            +
             | 
| 121 | 
            +
            ## I want to become a maintainer of the project. How do I get there?
         | 
| 122 | 
            +
             | 
| 123 | 
            +
            smolagents is a project led and managed by Hugging Face. We are more than
         | 
| 124 | 
            +
            happy to have motivated individuals from other organizations join us as maintainers with the goal of helping smolagents
         | 
| 125 | 
            +
            make a dent in the world of Agents.
         | 
| 126 | 
            +
             | 
| 127 | 
            +
            If you are such an individual (or organization), please reach out to us and let's collaborate.
         | 
    	
        LICENSE
    ADDED
    
    | @@ -0,0 +1,201 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
                                             Apache License
         | 
| 2 | 
            +
                                       Version 2.0, January 2004
         | 
| 3 | 
            +
                                    http://www.apache.org/licenses/
         | 
| 4 | 
            +
             | 
| 5 | 
            +
               TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
         | 
| 6 | 
            +
             | 
| 7 | 
            +
               1. Definitions.
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                  "License" shall mean the terms and conditions for use, reproduction,
         | 
| 10 | 
            +
                  and distribution as defined by Sections 1 through 9 of this document.
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                  "Licensor" shall mean the copyright owner or entity authorized by
         | 
| 13 | 
            +
                  the copyright owner that is granting the License.
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                  "Legal Entity" shall mean the union of the acting entity and all
         | 
| 16 | 
            +
                  other entities that control, are controlled by, or are under common
         | 
| 17 | 
            +
                  control with that entity. For the purposes of this definition,
         | 
| 18 | 
            +
                  "control" means (i) the power, direct or indirect, to cause the
         | 
| 19 | 
            +
                  direction or management of such entity, whether by contract or
         | 
| 20 | 
            +
                  otherwise, or (ii) ownership of fifty percent (50%) or more of the
         | 
| 21 | 
            +
                  outstanding shares, or (iii) beneficial ownership of such entity.
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                  "You" (or "Your") shall mean an individual or Legal Entity
         | 
| 24 | 
            +
                  exercising permissions granted by this License.
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                  "Source" form shall mean the preferred form for making modifications,
         | 
| 27 | 
            +
                  including but not limited to software source code, documentation
         | 
| 28 | 
            +
                  source, and configuration files.
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                  "Object" form shall mean any form resulting from mechanical
         | 
| 31 | 
            +
                  transformation or translation of a Source form, including but
         | 
| 32 | 
            +
                  not limited to compiled object code, generated documentation,
         | 
| 33 | 
            +
                  and conversions to other media types.
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                  "Work" shall mean the work of authorship, whether in Source or
         | 
| 36 | 
            +
                  Object form, made available under the License, as indicated by a
         | 
| 37 | 
            +
                  copyright notice that is included in or attached to the work
         | 
| 38 | 
            +
                  (an example is provided in the Appendix below).
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                  "Derivative Works" shall mean any work, whether in Source or Object
         | 
| 41 | 
            +
                  form, that is based on (or derived from) the Work and for which the
         | 
| 42 | 
            +
                  editorial revisions, annotations, elaborations, or other modifications
         | 
| 43 | 
            +
                  represent, as a whole, an original work of authorship. For the purposes
         | 
| 44 | 
            +
                  of this License, Derivative Works shall not include works that remain
         | 
| 45 | 
            +
                  separable from, or merely link (or bind by name) to the interfaces of,
         | 
| 46 | 
            +
                  the Work and Derivative Works thereof.
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                  "Contribution" shall mean any work of authorship, including
         | 
| 49 | 
            +
                  the original version of the Work and any modifications or additions
         | 
| 50 | 
            +
                  to that Work or Derivative Works thereof, that is intentionally
         | 
| 51 | 
            +
                  submitted to Licensor for inclusion in the Work by the copyright owner
         | 
| 52 | 
            +
                  or by an individual or Legal Entity authorized to submit on behalf of
         | 
| 53 | 
            +
                  the copyright owner. For the purposes of this definition, "submitted"
         | 
| 54 | 
            +
                  means any form of electronic, verbal, or written communication sent
         | 
| 55 | 
            +
                  to the Licensor or its representatives, including but not limited to
         | 
| 56 | 
            +
                  communication on electronic mailing lists, source code control systems,
         | 
| 57 | 
            +
                  and issue tracking systems that are managed by, or on behalf of, the
         | 
| 58 | 
            +
                  Licensor for the purpose of discussing and improving the Work, but
         | 
| 59 | 
            +
                  excluding communication that is conspicuously marked or otherwise
         | 
| 60 | 
            +
                  designated in writing by the copyright owner as "Not a Contribution."
         | 
| 61 | 
            +
             | 
| 62 | 
            +
                  "Contributor" shall mean Licensor and any individual or Legal Entity
         | 
| 63 | 
            +
                  on behalf of whom a Contribution has been received by Licensor and
         | 
| 64 | 
            +
                  subsequently incorporated within the Work.
         | 
| 65 | 
            +
             | 
| 66 | 
            +
               2. Grant of Copyright License. Subject to the terms and conditions of
         | 
| 67 | 
            +
                  this License, each Contributor hereby grants to You a perpetual,
         | 
| 68 | 
            +
                  worldwide, non-exclusive, no-charge, royalty-free, irrevocable
         | 
| 69 | 
            +
                  copyright license to reproduce, prepare Derivative Works of,
         | 
| 70 | 
            +
                  publicly display, publicly perform, sublicense, and distribute the
         | 
| 71 | 
            +
                  Work and such Derivative Works in Source or Object form.
         | 
| 72 | 
            +
             | 
| 73 | 
            +
               3. Grant of Patent License. Subject to the terms and conditions of
         | 
| 74 | 
            +
                  this License, each Contributor hereby grants to You a perpetual,
         | 
| 75 | 
            +
                  worldwide, non-exclusive, no-charge, royalty-free, irrevocable
         | 
| 76 | 
            +
                  (except as stated in this section) patent license to make, have made,
         | 
| 77 | 
            +
                  use, offer to sell, sell, import, and otherwise transfer the Work,
         | 
| 78 | 
            +
                  where such license applies only to those patent claims licensable
         | 
| 79 | 
            +
                  by such Contributor that are necessarily infringed by their
         | 
| 80 | 
            +
                  Contribution(s) alone or by combination of their Contribution(s)
         | 
| 81 | 
            +
                  with the Work to which such Contribution(s) was submitted. If You
         | 
| 82 | 
            +
                  institute patent litigation against any entity (including a
         | 
| 83 | 
            +
                  cross-claim or counterclaim in a lawsuit) alleging that the Work
         | 
| 84 | 
            +
                  or a Contribution incorporated within the Work constitutes direct
         | 
| 85 | 
            +
                  or contributory patent infringement, then any patent licenses
         | 
| 86 | 
            +
                  granted to You under this License for that Work shall terminate
         | 
| 87 | 
            +
                  as of the date such litigation is filed.
         | 
| 88 | 
            +
             | 
| 89 | 
            +
               4. Redistribution. You may reproduce and distribute copies of the
         | 
| 90 | 
            +
                  Work or Derivative Works thereof in any medium, with or without
         | 
| 91 | 
            +
                  modifications, and in Source or Object form, provided that You
         | 
| 92 | 
            +
                  meet the following conditions:
         | 
| 93 | 
            +
             | 
| 94 | 
            +
                  (a) You must give any other recipients of the Work or
         | 
| 95 | 
            +
                      Derivative Works a copy of this License; and
         | 
| 96 | 
            +
             | 
| 97 | 
            +
                  (b) You must cause any modified files to carry prominent notices
         | 
| 98 | 
            +
                      stating that You changed the files; and
         | 
| 99 | 
            +
             | 
| 100 | 
            +
                  (c) You must retain, in the Source form of any Derivative Works
         | 
| 101 | 
            +
                      that You distribute, all copyright, patent, trademark, and
         | 
| 102 | 
            +
                      attribution notices from the Source form of the Work,
         | 
| 103 | 
            +
                      excluding those notices that do not pertain to any part of
         | 
| 104 | 
            +
                      the Derivative Works; and
         | 
| 105 | 
            +
             | 
| 106 | 
            +
                  (d) If the Work includes a "NOTICE" text file as part of its
         | 
| 107 | 
            +
                      distribution, then any Derivative Works that You distribute must
         | 
| 108 | 
            +
                      include a readable copy of the attribution notices contained
         | 
| 109 | 
            +
                      within such NOTICE file, excluding those notices that do not
         | 
| 110 | 
            +
                      pertain to any part of the Derivative Works, in at least one
         | 
| 111 | 
            +
                      of the following places: within a NOTICE text file distributed
         | 
| 112 | 
            +
                      as part of the Derivative Works; within the Source form or
         | 
| 113 | 
            +
                      documentation, if provided along with the Derivative Works; or,
         | 
| 114 | 
            +
                      within a display generated by the Derivative Works, if and
         | 
| 115 | 
            +
                      wherever such third-party notices normally appear. The contents
         | 
| 116 | 
            +
                      of the NOTICE file are for informational purposes only and
         | 
| 117 | 
            +
                      do not modify the License. You may add Your own attribution
         | 
| 118 | 
            +
                      notices within Derivative Works that You distribute, alongside
         | 
| 119 | 
            +
                      or as an addendum to the NOTICE text from the Work, provided
         | 
| 120 | 
            +
                      that such additional attribution notices cannot be construed
         | 
| 121 | 
            +
                      as modifying the License.
         | 
| 122 | 
            +
             | 
| 123 | 
            +
                  You may add Your own copyright statement to Your modifications and
         | 
| 124 | 
            +
                  may provide additional or different license terms and conditions
         | 
| 125 | 
            +
                  for use, reproduction, or distribution of Your modifications, or
         | 
| 126 | 
            +
                  for any such Derivative Works as a whole, provided Your use,
         | 
| 127 | 
            +
                  reproduction, and distribution of the Work otherwise complies with
         | 
| 128 | 
            +
                  the conditions stated in this License.
         | 
| 129 | 
            +
             | 
| 130 | 
            +
               5. Submission of Contributions. Unless You explicitly state otherwise,
         | 
| 131 | 
            +
                  any Contribution intentionally submitted for inclusion in the Work
         | 
| 132 | 
            +
                  by You to the Licensor shall be under the terms and conditions of
         | 
| 133 | 
            +
                  this License, without any additional terms or conditions.
         | 
| 134 | 
            +
                  Notwithstanding the above, nothing herein shall supersede or modify
         | 
| 135 | 
            +
                  the terms of any separate license agreement you may have executed
         | 
| 136 | 
            +
                  with Licensor regarding such Contributions.
         | 
| 137 | 
            +
             | 
| 138 | 
            +
               6. Trademarks. This License does not grant permission to use the trade
         | 
| 139 | 
            +
                  names, trademarks, service marks, or product names of the Licensor,
         | 
| 140 | 
            +
                  except as required for reasonable and customary use in describing the
         | 
| 141 | 
            +
                  origin of the Work and reproducing the content of the NOTICE file.
         | 
| 142 | 
            +
             | 
| 143 | 
            +
               7. Disclaimer of Warranty. Unless required by applicable law or
         | 
| 144 | 
            +
                  agreed to in writing, Licensor provides the Work (and each
         | 
| 145 | 
            +
                  Contributor provides its Contributions) on an "AS IS" BASIS,
         | 
| 146 | 
            +
                  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
         | 
| 147 | 
            +
                  implied, including, without limitation, any warranties or conditions
         | 
| 148 | 
            +
                  of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
         | 
| 149 | 
            +
                  PARTICULAR PURPOSE. You are solely responsible for determining the
         | 
| 150 | 
            +
                  appropriateness of using or redistributing the Work and assume any
         | 
| 151 | 
            +
                  risks associated with Your exercise of permissions under this License.
         | 
| 152 | 
            +
             | 
| 153 | 
            +
               8. Limitation of Liability. In no event and under no legal theory,
         | 
| 154 | 
            +
                  whether in tort (including negligence), contract, or otherwise,
         | 
| 155 | 
            +
                  unless required by applicable law (such as deliberate and grossly
         | 
| 156 | 
            +
                  negligent acts) or agreed to in writing, shall any Contributor be
         | 
| 157 | 
            +
                  liable to You for damages, including any direct, indirect, special,
         | 
| 158 | 
            +
                  incidental, or consequential damages of any character arising as a
         | 
| 159 | 
            +
                  result of this License or out of the use or inability to use the
         | 
| 160 | 
            +
                  Work (including but not limited to damages for loss of goodwill,
         | 
| 161 | 
            +
                  work stoppage, computer failure or malfunction, or any and all
         | 
| 162 | 
            +
                  other commercial damages or losses), even if such Contributor
         | 
| 163 | 
            +
                  has been advised of the possibility of such damages.
         | 
| 164 | 
            +
             | 
| 165 | 
            +
               9. Accepting Warranty or Additional Liability. While redistributing
         | 
| 166 | 
            +
                  the Work or Derivative Works thereof, You may choose to offer,
         | 
| 167 | 
            +
                  and charge a fee for, acceptance of support, warranty, indemnity,
         | 
| 168 | 
            +
                  or other liability obligations and/or rights consistent with this
         | 
| 169 | 
            +
                  License. However, in accepting such obligations, You may act only
         | 
| 170 | 
            +
                  on Your own behalf and on Your sole responsibility, not on behalf
         | 
| 171 | 
            +
                  of any other Contributor, and only if You agree to indemnify,
         | 
| 172 | 
            +
                  defend, and hold each Contributor harmless for any liability
         | 
| 173 | 
            +
                  incurred by, or claims asserted against, such Contributor by reason
         | 
| 174 | 
            +
                  of your accepting any such warranty or additional liability.
         | 
| 175 | 
            +
             | 
| 176 | 
            +
               END OF TERMS AND CONDITIONS
         | 
| 177 | 
            +
             | 
| 178 | 
            +
               APPENDIX: How to apply the Apache License to your work.
         | 
| 179 | 
            +
             | 
| 180 | 
            +
                  To apply the Apache License to your work, attach the following
         | 
| 181 | 
            +
                  boilerplate notice, with the fields enclosed by brackets "[]"
         | 
| 182 | 
            +
                  replaced with your own identifying information. (Don't include
         | 
| 183 | 
            +
                  the brackets!)  The text should be enclosed in the appropriate
         | 
| 184 | 
            +
                  comment syntax for the file format. We also recommend that a
         | 
| 185 | 
            +
                  file or class name and description of purpose be included on the
         | 
| 186 | 
            +
                  same "printed page" as the copyright notice for easier
         | 
| 187 | 
            +
                  identification within third-party archives.
         | 
| 188 | 
            +
             | 
| 189 | 
            +
               Copyright [yyyy] [name of copyright owner]
         | 
| 190 | 
            +
             | 
| 191 | 
            +
               Licensed under the Apache License, Version 2.0 (the "License");
         | 
| 192 | 
            +
               you may not use this file except in compliance with the License.
         | 
| 193 | 
            +
               You may obtain a copy of the License at
         | 
| 194 | 
            +
             | 
| 195 | 
            +
                   http://www.apache.org/licenses/LICENSE-2.0
         | 
| 196 | 
            +
             | 
| 197 | 
            +
               Unless required by applicable law or agreed to in writing, software
         | 
| 198 | 
            +
               distributed under the License is distributed on an "AS IS" BASIS,
         | 
| 199 | 
            +
               WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         | 
| 200 | 
            +
               See the License for the specific language governing permissions and
         | 
| 201 | 
            +
               limitations under the License.
         | 
    	
        Makefile
    ADDED
    
    | @@ -0,0 +1,17 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            .PHONY: quality style test docs
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            check_dirs := examples src tests
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            # Check code quality of the source code
         | 
| 6 | 
            +
            quality:
         | 
| 7 | 
            +
            	ruff check $(check_dirs)
         | 
| 8 | 
            +
            	ruff format --check $(check_dirs)
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            # Format source code automatically
         | 
| 11 | 
            +
            style:
         | 
| 12 | 
            +
            	ruff check $(check_dirs) --fix
         | 
| 13 | 
            +
            	ruff format $(check_dirs)
         | 
| 14 | 
            +
            	
         | 
| 15 | 
            +
            # Run smolagents tests
         | 
| 16 | 
            +
            test:
         | 
| 17 | 
            +
            	pytest ./tests/
         | 
    	
        SECURITY.md
    ADDED
    
    | @@ -0,0 +1,9 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            # Security Policy
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            ## Reporting a Vulnerability
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            To report a security vulnerability, please contact: [email protected]
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            ## Learning More About Security
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            To learn more about running agents more securely, please see the [Secure Code Execution tutorial](docs/source/en/tutorials/secure_code_execution.mdx) which covers sandboxing with E2B and Docker.
         | 
    	
        e2b.toml
    ADDED
    
    | @@ -0,0 +1,16 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            # This is a config for E2B sandbox template.
         | 
| 2 | 
            +
            # You can use template ID (qywp2ctmu2q7jzprcf4j) to create a sandbox:
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            # Python SDK
         | 
| 5 | 
            +
            # from e2b import Sandbox, AsyncSandbox
         | 
| 6 | 
            +
            # sandbox = Sandbox("qywp2ctmu2q7jzprcf4j") # Sync sandbox
         | 
| 7 | 
            +
            # sandbox = await AsyncSandbox.create("qywp2ctmu2q7jzprcf4j") # Async sandbox
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            # JS SDK
         | 
| 10 | 
            +
            # import { Sandbox } from 'e2b'
         | 
| 11 | 
            +
            # const sandbox = await Sandbox.create('qywp2ctmu2q7jzprcf4j')
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            team_id = "f8776d3a-df2f-4a1d-af48-68c2e13b3b87"
         | 
| 14 | 
            +
            start_cmd = "/root/.jupyter/start-up.sh"
         | 
| 15 | 
            +
            dockerfile = "e2b.Dockerfile"
         | 
| 16 | 
            +
            template_id = "qywp2ctmu2q7jzprcf4j"
         | 
    	
        pyproject.toml
    ADDED
    
    | @@ -0,0 +1,130 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            [build-system]
         | 
| 2 | 
            +
            requires = ["setuptools"]
         | 
| 3 | 
            +
            build-backend = "setuptools.build_meta"
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            [project]
         | 
| 6 | 
            +
            name = "smolagents"
         | 
| 7 | 
            +
            version = "1.20.0.dev0"
         | 
| 8 | 
            +
            description = "🤗 smolagents: a barebones library for agents. Agents write python code to call tools or orchestrate other agents."
         | 
| 9 | 
            +
            authors = [
         | 
| 10 | 
            +
              { name="Aymeric Roucher", email="[email protected]" },
         | 
| 11 | 
            +
            ]
         | 
| 12 | 
            +
            readme = "README.md"
         | 
| 13 | 
            +
            requires-python = ">=3.10"
         | 
| 14 | 
            +
            dependencies = [
         | 
| 15 | 
            +
              "huggingface-hub>=0.31.2",
         | 
| 16 | 
            +
              "requests>=2.32.3",
         | 
| 17 | 
            +
              "rich>=13.9.4",
         | 
| 18 | 
            +
              "jinja2>=3.1.4",
         | 
| 19 | 
            +
              "pillow>=10.0.1",  # Security fix for CVE-2023-4863: https://pillow.readthedocs.io/en/stable/releasenotes/10.0.1.html
         | 
| 20 | 
            +
              "python-dotenv"
         | 
| 21 | 
            +
            ]
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            [project.optional-dependencies]
         | 
| 24 | 
            +
            bedrock = [
         | 
| 25 | 
            +
              "boto3>=1.36.18"
         | 
| 26 | 
            +
            ]
         | 
| 27 | 
            +
            torch = [
         | 
| 28 | 
            +
              "torch",
         | 
| 29 | 
            +
              "torchvision",
         | 
| 30 | 
            +
              "numpy>=1.21.2",
         | 
| 31 | 
            +
            ]
         | 
| 32 | 
            +
            audio = [
         | 
| 33 | 
            +
              "soundfile",
         | 
| 34 | 
            +
              "smolagents[torch]",
         | 
| 35 | 
            +
            ]
         | 
| 36 | 
            +
            docker = [
         | 
| 37 | 
            +
              "docker>=7.1.0",
         | 
| 38 | 
            +
              "websocket-client",
         | 
| 39 | 
            +
            ]
         | 
| 40 | 
            +
            e2b = [
         | 
| 41 | 
            +
              "e2b-code-interpreter>=1.0.3",
         | 
| 42 | 
            +
              "python-dotenv>=1.0.1",
         | 
| 43 | 
            +
            ]
         | 
| 44 | 
            +
            gradio = [
         | 
| 45 | 
            +
              "gradio>=5.14.0",  # Sidebar component GH-797
         | 
| 46 | 
            +
            ]
         | 
| 47 | 
            +
            litellm = [
         | 
| 48 | 
            +
              "litellm>=1.60.2",
         | 
| 49 | 
            +
            ]
         | 
| 50 | 
            +
            mcp = [
         | 
| 51 | 
            +
              "mcpadapt>=0.1.8",  # Support Streamable HTTP transport
         | 
| 52 | 
            +
              "mcp",
         | 
| 53 | 
            +
            ]
         | 
| 54 | 
            +
            mlx-lm = [
         | 
| 55 | 
            +
              "mlx-lm"
         | 
| 56 | 
            +
            ]
         | 
| 57 | 
            +
            openai = [
         | 
| 58 | 
            +
              "openai>=1.58.1"
         | 
| 59 | 
            +
            ]
         | 
| 60 | 
            +
            telemetry = [
         | 
| 61 | 
            +
              "arize-phoenix",
         | 
| 62 | 
            +
              "opentelemetry-sdk", 
         | 
| 63 | 
            +
              "opentelemetry-exporter-otlp",
         | 
| 64 | 
            +
              "openinference-instrumentation-smolagents>=0.1.4"
         | 
| 65 | 
            +
            ]
         | 
| 66 | 
            +
            toolkit = [
         | 
| 67 | 
            +
              "duckduckgo-search>=6.3.7",  # DuckDuckGoSearchTool
         | 
| 68 | 
            +
              "markdownify>=0.14.1",  # VisitWebpageTool
         | 
| 69 | 
            +
            ]
         | 
| 70 | 
            +
            transformers = [
         | 
| 71 | 
            +
              "accelerate",
         | 
| 72 | 
            +
              "transformers>=4.0.0",
         | 
| 73 | 
            +
              "smolagents[torch]",
         | 
| 74 | 
            +
            ]
         | 
| 75 | 
            +
            vision = [
         | 
| 76 | 
            +
              "helium",
         | 
| 77 | 
            +
              "selenium",
         | 
| 78 | 
            +
            ]
         | 
| 79 | 
            +
            vllm = [
         | 
| 80 | 
            +
              "vllm",
         | 
| 81 | 
            +
              "torch"
         | 
| 82 | 
            +
            ]
         | 
| 83 | 
            +
            all = [
         | 
| 84 | 
            +
              "smolagents[audio,docker,e2b,gradio,litellm,mcp,mlx-lm,openai,telemetry,toolkit,transformers,vision,bedrock]",
         | 
| 85 | 
            +
            ]
         | 
| 86 | 
            +
            quality = [
         | 
| 87 | 
            +
              "ruff>=0.9.0",
         | 
| 88 | 
            +
            ]
         | 
| 89 | 
            +
            test = [
         | 
| 90 | 
            +
              "ipython>=8.31.0", # for interactive environment tests
         | 
| 91 | 
            +
              "pandas>=2.2.3",
         | 
| 92 | 
            +
              "pytest>=8.1.0",
         | 
| 93 | 
            +
              "pytest-datadir",
         | 
| 94 | 
            +
              "python-dotenv>=1.0.1", # For test_all_docs
         | 
| 95 | 
            +
              "smolagents[all]",
         | 
| 96 | 
            +
              "rank-bm25", # For test_all_docs
         | 
| 97 | 
            +
              "Wikipedia-API>=0.8.1",
         | 
| 98 | 
            +
            ]
         | 
| 99 | 
            +
            dev = [
         | 
| 100 | 
            +
              "smolagents[quality,test]",
         | 
| 101 | 
            +
              "sqlalchemy", # for ./examples
         | 
| 102 | 
            +
            ]
         | 
| 103 | 
            +
             | 
| 104 | 
            +
            [tool.pytest.ini_options]
         | 
| 105 | 
            +
            # Add the specified `OPTS` to the set of command line arguments as if they had been specified by the user.
         | 
| 106 | 
            +
            addopts = "-sv --durations=0"
         | 
| 107 | 
            +
             | 
| 108 | 
            +
            [tool.ruff]
         | 
| 109 | 
            +
            line-length = 119
         | 
| 110 | 
            +
            lint.ignore = [
         | 
| 111 | 
            +
              "F403", # undefined-local-with-import-star
         | 
| 112 | 
            +
              "E501", # line-too-long
         | 
| 113 | 
            +
            ]
         | 
| 114 | 
            +
            lint.select = ["E", "F", "I", "W"]
         | 
| 115 | 
            +
             | 
| 116 | 
            +
            [tool.ruff.lint.per-file-ignores]
         | 
| 117 | 
            +
            "examples/*" = [
         | 
| 118 | 
            +
              "E402", # module-import-not-at-top-of-file
         | 
| 119 | 
            +
            ]
         | 
| 120 | 
            +
             | 
| 121 | 
            +
            [tool.ruff.lint.isort]
         | 
| 122 | 
            +
            known-first-party = ["smolagents"]
         | 
| 123 | 
            +
            lines-after-imports = 2
         | 
| 124 | 
            +
             | 
| 125 | 
            +
            [tool.setuptools.package-data]
         | 
| 126 | 
            +
            "smolagents.prompts" = ["*.yaml"]
         | 
| 127 | 
            +
             | 
| 128 | 
            +
            [project.scripts]
         | 
| 129 | 
            +
            smolagent = "smolagents.cli:main"
         | 
| 130 | 
            +
            webagent = "smolagents.vision_web_browser:main"
         | 
