From d365a588cbb3536d2c8260aa85a57a525ce0279b Mon Sep 17 00:00:00 2001 From: Jack Gerrits Date: Thu, 20 Jun 2024 15:19:56 -0400 Subject: [PATCH] Move python code to subdir (#98) --- .github/workflows/checks.yml | 6 +++ .github/workflows/docs.yml | 3 +- .vscode/settings.json | 7 --- README.md | 47 ++----------------- .gitignore => python/.gitignore | 0 python/README.md | 45 ++++++++++++++++++ .../docs}/src/_apidoc_templates/module.rst_t | 0 .../docs}/src/_apidoc_templates/package.rst_t | 0 {docs => python/docs}/src/conf.py | 0 {docs => python/docs}/src/contributing.md | 0 .../docs}/src/core-concepts/agent.md | 0 .../docs}/src/core-concepts/cancellation.md | 0 .../docs}/src/core-concepts/logging.md | 0 .../docs}/src/core-concepts/memory.md | 0 .../docs}/src/core-concepts/namespace.md | 0 .../docs}/src/core-concepts/patterns.md | 0 .../docs}/src/core-concepts/runtime.md | 0 .../docs}/src/core-concepts/tools.md | 0 .../docs}/src/getting-started/installation.md | 0 .../docs}/src/getting-started/tutorial.md | 0 .../src/guides/azure-openai-with-aad-auth.md | 0 .../src/guides/group-chat-coder-reviewer.md | 0 .../docs}/src/guides/type-routed-agent.md | 0 {docs => python/docs}/src/index.rst | 0 {examples => python/examples}/README.md | 0 {examples => python/examples}/assistant.py | 0 {examples => python/examples}/chat_room.py | 0 {examples => python/examples}/chess_game.py | 0 .../examples}/coder_reviewer.py | 0 .../examples}/illustrator_critics.py | 0 {examples => python/examples}/inner_outer.py | 0 {examples => python/examples}/orchestrator.py | 0 .../examples}/software_consultancy.py | 0 {examples => python/examples}/utils.py | 0 pyproject.toml => python/pyproject.toml | 0 {src => python/src}/agnext/__init__.py | 0 .../src}/agnext/application/__init__.py | 0 .../_single_threaded_agent_runtime.py | 0 .../agnext/application/logging/__init__.py | 0 .../agnext/application/logging/_events.py | 0 .../agnext/application/logging/_llm_usage.py | 0 {src => python/src}/agnext/chat/__init__.py | 0 .../src}/agnext/chat/agents/__init__.py | 0 .../chat/agents/chat_completion_agent.py | 0 .../chat/agents/image_generation_agent.py | 0 .../src}/agnext/chat/agents/oai_assistant.py | 0 .../src}/agnext/chat/agents/user_proxy.py | 0 .../src}/agnext/chat/memory/__init__.py | 0 .../src}/agnext/chat/memory/_base.py | 0 .../src}/agnext/chat/memory/_buffered.py | 0 .../src}/agnext/chat/memory/_head_and_tail.py | 0 .../src}/agnext/chat/patterns/__init__.py | 0 .../chat/patterns/group_chat_manager.py | 0 .../agnext/chat/patterns/group_chat_utils.py | 0 .../agnext/chat/patterns/orchestrator_chat.py | 0 {src => python/src}/agnext/chat/types.py | 0 {src => python/src}/agnext/chat/utils.py | 0 .../src}/agnext/components/__init__.py | 0 .../src}/agnext/components/_function_utils.py | 0 .../src}/agnext/components/_image.py | 0 .../agnext/components/_pydantic_compat.py | 0 .../agnext/components/_type_routed_agent.py | 0 .../src}/agnext/components/_types.py | 0 .../components/code_executor/__init__.py | 0 .../agnext/components/code_executor/_base.py | 0 .../code_executor/_func_with_reqs.py | 0 .../code_executor/_impl/__init__.py | 0 .../_impl/command_line_code_result.py | 0 .../_impl/local_commandline_code_executor.py | 0 .../components/code_executor/_impl/utils.py | 0 .../src}/agnext/components/models/__init__.py | 0 .../agnext/components/models/_model_client.py | 0 .../agnext/components/models/_model_info.py | 0 .../components/models/_openai_client.py | 0 .../src}/agnext/components/models/_types.py | 0 .../components/models/config/__init__.py | 0 .../src}/agnext/components/tools/__init__.py | 0 .../src}/agnext/components/tools/_base.py | 0 .../components/tools/_code_execution.py | 0 .../agnext/components/tools/_function_tool.py | 0 {src => python/src}/agnext/core/__init__.py | 0 {src => python/src}/agnext/core/_agent.py | 0 {src => python/src}/agnext/core/_agent_id.py | 0 .../src}/agnext/core/_agent_metadata.py | 0 .../src}/agnext/core/_agent_props.py | 0 .../src}/agnext/core/_agent_proxy.py | 0 .../src}/agnext/core/_agent_runtime.py | 0 .../src}/agnext/core/_base_agent.py | 0 .../src}/agnext/core/_cancellation_token.py | 0 {src => python/src}/agnext/core/exceptions.py | 0 .../src}/agnext/core/intervention.py | 0 {src => python/src}/agnext/py.typed | 0 .../test_commandline_code_executor.py | 0 .../execution/test_user_defined_functions.py | 0 {tests => python/tests}/test_cancellation.py | 0 {tests => python/tests}/test_intervention.py | 0 {tests => python/tests}/test_llm_usage.py | 0 {tests => python/tests}/test_runtime.py | 0 {tests => python/tests}/test_state.py | 0 {tests => python/tests}/test_tools.py | 0 {tests => python/tests}/test_types.py | 0 .../tests}/test_utils/__init__.py | 0 102 files changed, 57 insertions(+), 51 deletions(-) delete mode 100644 .vscode/settings.json rename .gitignore => python/.gitignore (100%) create mode 100644 python/README.md rename {docs => python/docs}/src/_apidoc_templates/module.rst_t (100%) rename {docs => python/docs}/src/_apidoc_templates/package.rst_t (100%) rename {docs => python/docs}/src/conf.py (100%) rename {docs => python/docs}/src/contributing.md (100%) rename {docs => python/docs}/src/core-concepts/agent.md (100%) rename {docs => python/docs}/src/core-concepts/cancellation.md (100%) rename {docs => python/docs}/src/core-concepts/logging.md (100%) rename {docs => python/docs}/src/core-concepts/memory.md (100%) rename {docs => python/docs}/src/core-concepts/namespace.md (100%) rename {docs => python/docs}/src/core-concepts/patterns.md (100%) rename {docs => python/docs}/src/core-concepts/runtime.md (100%) rename {docs => python/docs}/src/core-concepts/tools.md (100%) rename {docs => python/docs}/src/getting-started/installation.md (100%) rename {docs => python/docs}/src/getting-started/tutorial.md (100%) rename {docs => python/docs}/src/guides/azure-openai-with-aad-auth.md (100%) rename {docs => python/docs}/src/guides/group-chat-coder-reviewer.md (100%) rename {docs => python/docs}/src/guides/type-routed-agent.md (100%) rename {docs => python/docs}/src/index.rst (100%) rename {examples => python/examples}/README.md (100%) rename {examples => python/examples}/assistant.py (100%) rename {examples => python/examples}/chat_room.py (100%) rename {examples => python/examples}/chess_game.py (100%) rename {examples => python/examples}/coder_reviewer.py (100%) rename {examples => python/examples}/illustrator_critics.py (100%) rename {examples => python/examples}/inner_outer.py (100%) rename {examples => python/examples}/orchestrator.py (100%) rename {examples => python/examples}/software_consultancy.py (100%) rename {examples => python/examples}/utils.py (100%) rename pyproject.toml => python/pyproject.toml (100%) rename {src => python/src}/agnext/__init__.py (100%) rename {src => python/src}/agnext/application/__init__.py (100%) rename {src => python/src}/agnext/application/_single_threaded_agent_runtime.py (100%) rename {src => python/src}/agnext/application/logging/__init__.py (100%) rename {src => python/src}/agnext/application/logging/_events.py (100%) rename {src => python/src}/agnext/application/logging/_llm_usage.py (100%) rename {src => python/src}/agnext/chat/__init__.py (100%) rename {src => python/src}/agnext/chat/agents/__init__.py (100%) rename {src => python/src}/agnext/chat/agents/chat_completion_agent.py (100%) rename {src => python/src}/agnext/chat/agents/image_generation_agent.py (100%) rename {src => python/src}/agnext/chat/agents/oai_assistant.py (100%) rename {src => python/src}/agnext/chat/agents/user_proxy.py (100%) rename {src => python/src}/agnext/chat/memory/__init__.py (100%) rename {src => python/src}/agnext/chat/memory/_base.py (100%) rename {src => python/src}/agnext/chat/memory/_buffered.py (100%) rename {src => python/src}/agnext/chat/memory/_head_and_tail.py (100%) rename {src => python/src}/agnext/chat/patterns/__init__.py (100%) rename {src => python/src}/agnext/chat/patterns/group_chat_manager.py (100%) rename {src => python/src}/agnext/chat/patterns/group_chat_utils.py (100%) rename {src => python/src}/agnext/chat/patterns/orchestrator_chat.py (100%) rename {src => python/src}/agnext/chat/types.py (100%) rename {src => python/src}/agnext/chat/utils.py (100%) rename {src => python/src}/agnext/components/__init__.py (100%) rename {src => python/src}/agnext/components/_function_utils.py (100%) rename {src => python/src}/agnext/components/_image.py (100%) rename {src => python/src}/agnext/components/_pydantic_compat.py (100%) rename {src => python/src}/agnext/components/_type_routed_agent.py (100%) rename {src => python/src}/agnext/components/_types.py (100%) rename {src => python/src}/agnext/components/code_executor/__init__.py (100%) rename {src => python/src}/agnext/components/code_executor/_base.py (100%) rename {src => python/src}/agnext/components/code_executor/_func_with_reqs.py (100%) rename {src => python/src}/agnext/components/code_executor/_impl/__init__.py (100%) rename {src => python/src}/agnext/components/code_executor/_impl/command_line_code_result.py (100%) rename {src => python/src}/agnext/components/code_executor/_impl/local_commandline_code_executor.py (100%) rename {src => python/src}/agnext/components/code_executor/_impl/utils.py (100%) rename {src => python/src}/agnext/components/models/__init__.py (100%) rename {src => python/src}/agnext/components/models/_model_client.py (100%) rename {src => python/src}/agnext/components/models/_model_info.py (100%) rename {src => python/src}/agnext/components/models/_openai_client.py (100%) rename {src => python/src}/agnext/components/models/_types.py (100%) rename {src => python/src}/agnext/components/models/config/__init__.py (100%) rename {src => python/src}/agnext/components/tools/__init__.py (100%) rename {src => python/src}/agnext/components/tools/_base.py (100%) rename {src => python/src}/agnext/components/tools/_code_execution.py (100%) rename {src => python/src}/agnext/components/tools/_function_tool.py (100%) rename {src => python/src}/agnext/core/__init__.py (100%) rename {src => python/src}/agnext/core/_agent.py (100%) rename {src => python/src}/agnext/core/_agent_id.py (100%) rename {src => python/src}/agnext/core/_agent_metadata.py (100%) rename {src => python/src}/agnext/core/_agent_props.py (100%) rename {src => python/src}/agnext/core/_agent_proxy.py (100%) rename {src => python/src}/agnext/core/_agent_runtime.py (100%) rename {src => python/src}/agnext/core/_base_agent.py (100%) rename {src => python/src}/agnext/core/_cancellation_token.py (100%) rename {src => python/src}/agnext/core/exceptions.py (100%) rename {src => python/src}/agnext/core/intervention.py (100%) rename {src => python/src}/agnext/py.typed (100%) rename {tests => python/tests}/execution/test_commandline_code_executor.py (100%) rename {tests => python/tests}/execution/test_user_defined_functions.py (100%) rename {tests => python/tests}/test_cancellation.py (100%) rename {tests => python/tests}/test_intervention.py (100%) rename {tests => python/tests}/test_llm_usage.py (100%) rename {tests => python/tests}/test_runtime.py (100%) rename {tests => python/tests}/test_state.py (100%) rename {tests => python/tests}/test_tools.py (100%) rename {tests => python/tests}/test_types.py (100%) rename {tests => python/tests}/test_utils/__init__.py (100%) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 5383fe846..3e64772db 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -16,6 +16,7 @@ jobs: - name: Install Hatch uses: pypa/hatch@install - run: hatch run ruff format --check + working-directory: ./python lint: runs-on: ubuntu-latest @@ -24,6 +25,7 @@ jobs: - name: Install Hatch uses: pypa/hatch@install - run: hatch run ruff check + working-directory: ./python mypy: runs-on: ubuntu-latest @@ -32,6 +34,7 @@ jobs: - name: Install Hatch uses: pypa/hatch@install - run: hatch run mypy + working-directory: ./python pyright: runs-on: ubuntu-latest @@ -40,6 +43,7 @@ jobs: - name: Install Hatch uses: pypa/hatch@install - run: hatch run pyright + working-directory: ./python test: runs-on: ubuntu-latest @@ -51,6 +55,7 @@ jobs: - name: Install Hatch uses: pypa/hatch@install - run: hatch run +python=${{ matrix.python-version }} test-matrix:pytest -n auto + working-directory: ./python docs: runs-on: ubuntu-latest @@ -59,3 +64,4 @@ jobs: - name: Install Hatch uses: pypa/hatch@install - run: hatch run docs:check + working-directory: ./python diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 333b144c0..b20c63ab5 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -33,10 +33,11 @@ jobs: - name: Install Hatch uses: pypa/hatch@install - run: hatch run docs:build + working-directory: ./python - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: - path: 'docs/build' + path: 'python/docs/build' - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4 diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 9b388533a..000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "python.testing.pytestArgs": [ - "tests" - ], - "python.testing.unittestEnabled": false, - "python.testing.pytestEnabled": true -} \ No newline at end of file diff --git a/README.md b/README.md index b818e28fe..be9e04c30 100644 --- a/README.md +++ b/README.md @@ -1,45 +1,6 @@ -# AutoGenNext +# AGNext -- [Documentation](http://microsoft.github.io/agnext) -- [Examples](https://github.com/microsoft/agnext/tree/main/examples) +See corresponding subdirectories for more information. - -## Package layering - -- `core` are the the foundational generic interfaces upon which all else is built. This module must not depend on any other module. -- `components` are the building blocks for creating single agents -- `application` are implementations of core components that are used to compose an application -- `chat` is the concrete implementation of multi-agent interactions. Most users will deal with this module. - - -## Development - -**TL;DR**, run all checks with: - -```sh -hatch run check -``` - -### Setup - -- [Install `hatch`](https://hatch.pypa.io/1.12/install/). - -### Virtual environment - -To get a shell with the package available (virtual environment) run: -```sh -hatch shell -``` - -### Common tasks - -- Format: `hatch run check` -- Lint: `hatch run lint` -- Test: `hatch run pytest -n auto` -- Mypy: `hatch run mypy` -- Pyright: `hatch run pyright` -- Build docs: `hatch run docs:build` -- Auto rebuild+serve docs: `hatch run docs:serve` - -> [!NOTE] -> These don't need to be run in a virtual environment, `hatch` will automatically manage it for you. +- [Python Documentation](http://microsoft.github.io/agnext) +- [Python Examples](https://github.com/microsoft/agnext/tree/main/python/examples) diff --git a/.gitignore b/python/.gitignore similarity index 100% rename from .gitignore rename to python/.gitignore diff --git a/python/README.md b/python/README.md new file mode 100644 index 000000000..db4573ee7 --- /dev/null +++ b/python/README.md @@ -0,0 +1,45 @@ +# AGNext + +- [Documentation](http://microsoft.github.io/agnext) +- [Examples](https://github.com/microsoft/agnext/tree/main/python/examples) + + +## Package layering + +- `core` are the the foundational generic interfaces upon which all else is built. This module must not depend on any other module. +- `components` are the building blocks for creating single agents +- `application` are implementations of core components that are used to compose an application +- `chat` is the concrete implementation of multi-agent interactions. Most users will deal with this module. + + +## Development + +**TL;DR**, run all checks with: + +```sh +hatch run check +``` + +### Setup + +- [Install `hatch`](https://hatch.pypa.io/1.12/install/). + +### Virtual environment + +To get a shell with the package available (virtual environment) run: +```sh +hatch shell +``` + +### Common tasks + +- Format: `hatch run check` +- Lint: `hatch run lint` +- Test: `hatch run pytest -n auto` +- Mypy: `hatch run mypy` +- Pyright: `hatch run pyright` +- Build docs: `hatch run docs:build` +- Auto rebuild+serve docs: `hatch run docs:serve` + +> [!NOTE] +> These don't need to be run in a virtual environment, `hatch` will automatically manage it for you. diff --git a/docs/src/_apidoc_templates/module.rst_t b/python/docs/src/_apidoc_templates/module.rst_t similarity index 100% rename from docs/src/_apidoc_templates/module.rst_t rename to python/docs/src/_apidoc_templates/module.rst_t diff --git a/docs/src/_apidoc_templates/package.rst_t b/python/docs/src/_apidoc_templates/package.rst_t similarity index 100% rename from docs/src/_apidoc_templates/package.rst_t rename to python/docs/src/_apidoc_templates/package.rst_t diff --git a/docs/src/conf.py b/python/docs/src/conf.py similarity index 100% rename from docs/src/conf.py rename to python/docs/src/conf.py diff --git a/docs/src/contributing.md b/python/docs/src/contributing.md similarity index 100% rename from docs/src/contributing.md rename to python/docs/src/contributing.md diff --git a/docs/src/core-concepts/agent.md b/python/docs/src/core-concepts/agent.md similarity index 100% rename from docs/src/core-concepts/agent.md rename to python/docs/src/core-concepts/agent.md diff --git a/docs/src/core-concepts/cancellation.md b/python/docs/src/core-concepts/cancellation.md similarity index 100% rename from docs/src/core-concepts/cancellation.md rename to python/docs/src/core-concepts/cancellation.md diff --git a/docs/src/core-concepts/logging.md b/python/docs/src/core-concepts/logging.md similarity index 100% rename from docs/src/core-concepts/logging.md rename to python/docs/src/core-concepts/logging.md diff --git a/docs/src/core-concepts/memory.md b/python/docs/src/core-concepts/memory.md similarity index 100% rename from docs/src/core-concepts/memory.md rename to python/docs/src/core-concepts/memory.md diff --git a/docs/src/core-concepts/namespace.md b/python/docs/src/core-concepts/namespace.md similarity index 100% rename from docs/src/core-concepts/namespace.md rename to python/docs/src/core-concepts/namespace.md diff --git a/docs/src/core-concepts/patterns.md b/python/docs/src/core-concepts/patterns.md similarity index 100% rename from docs/src/core-concepts/patterns.md rename to python/docs/src/core-concepts/patterns.md diff --git a/docs/src/core-concepts/runtime.md b/python/docs/src/core-concepts/runtime.md similarity index 100% rename from docs/src/core-concepts/runtime.md rename to python/docs/src/core-concepts/runtime.md diff --git a/docs/src/core-concepts/tools.md b/python/docs/src/core-concepts/tools.md similarity index 100% rename from docs/src/core-concepts/tools.md rename to python/docs/src/core-concepts/tools.md diff --git a/docs/src/getting-started/installation.md b/python/docs/src/getting-started/installation.md similarity index 100% rename from docs/src/getting-started/installation.md rename to python/docs/src/getting-started/installation.md diff --git a/docs/src/getting-started/tutorial.md b/python/docs/src/getting-started/tutorial.md similarity index 100% rename from docs/src/getting-started/tutorial.md rename to python/docs/src/getting-started/tutorial.md diff --git a/docs/src/guides/azure-openai-with-aad-auth.md b/python/docs/src/guides/azure-openai-with-aad-auth.md similarity index 100% rename from docs/src/guides/azure-openai-with-aad-auth.md rename to python/docs/src/guides/azure-openai-with-aad-auth.md diff --git a/docs/src/guides/group-chat-coder-reviewer.md b/python/docs/src/guides/group-chat-coder-reviewer.md similarity index 100% rename from docs/src/guides/group-chat-coder-reviewer.md rename to python/docs/src/guides/group-chat-coder-reviewer.md diff --git a/docs/src/guides/type-routed-agent.md b/python/docs/src/guides/type-routed-agent.md similarity index 100% rename from docs/src/guides/type-routed-agent.md rename to python/docs/src/guides/type-routed-agent.md diff --git a/docs/src/index.rst b/python/docs/src/index.rst similarity index 100% rename from docs/src/index.rst rename to python/docs/src/index.rst diff --git a/examples/README.md b/python/examples/README.md similarity index 100% rename from examples/README.md rename to python/examples/README.md diff --git a/examples/assistant.py b/python/examples/assistant.py similarity index 100% rename from examples/assistant.py rename to python/examples/assistant.py diff --git a/examples/chat_room.py b/python/examples/chat_room.py similarity index 100% rename from examples/chat_room.py rename to python/examples/chat_room.py diff --git a/examples/chess_game.py b/python/examples/chess_game.py similarity index 100% rename from examples/chess_game.py rename to python/examples/chess_game.py diff --git a/examples/coder_reviewer.py b/python/examples/coder_reviewer.py similarity index 100% rename from examples/coder_reviewer.py rename to python/examples/coder_reviewer.py diff --git a/examples/illustrator_critics.py b/python/examples/illustrator_critics.py similarity index 100% rename from examples/illustrator_critics.py rename to python/examples/illustrator_critics.py diff --git a/examples/inner_outer.py b/python/examples/inner_outer.py similarity index 100% rename from examples/inner_outer.py rename to python/examples/inner_outer.py diff --git a/examples/orchestrator.py b/python/examples/orchestrator.py similarity index 100% rename from examples/orchestrator.py rename to python/examples/orchestrator.py diff --git a/examples/software_consultancy.py b/python/examples/software_consultancy.py similarity index 100% rename from examples/software_consultancy.py rename to python/examples/software_consultancy.py diff --git a/examples/utils.py b/python/examples/utils.py similarity index 100% rename from examples/utils.py rename to python/examples/utils.py diff --git a/pyproject.toml b/python/pyproject.toml similarity index 100% rename from pyproject.toml rename to python/pyproject.toml diff --git a/src/agnext/__init__.py b/python/src/agnext/__init__.py similarity index 100% rename from src/agnext/__init__.py rename to python/src/agnext/__init__.py diff --git a/src/agnext/application/__init__.py b/python/src/agnext/application/__init__.py similarity index 100% rename from src/agnext/application/__init__.py rename to python/src/agnext/application/__init__.py diff --git a/src/agnext/application/_single_threaded_agent_runtime.py b/python/src/agnext/application/_single_threaded_agent_runtime.py similarity index 100% rename from src/agnext/application/_single_threaded_agent_runtime.py rename to python/src/agnext/application/_single_threaded_agent_runtime.py diff --git a/src/agnext/application/logging/__init__.py b/python/src/agnext/application/logging/__init__.py similarity index 100% rename from src/agnext/application/logging/__init__.py rename to python/src/agnext/application/logging/__init__.py diff --git a/src/agnext/application/logging/_events.py b/python/src/agnext/application/logging/_events.py similarity index 100% rename from src/agnext/application/logging/_events.py rename to python/src/agnext/application/logging/_events.py diff --git a/src/agnext/application/logging/_llm_usage.py b/python/src/agnext/application/logging/_llm_usage.py similarity index 100% rename from src/agnext/application/logging/_llm_usage.py rename to python/src/agnext/application/logging/_llm_usage.py diff --git a/src/agnext/chat/__init__.py b/python/src/agnext/chat/__init__.py similarity index 100% rename from src/agnext/chat/__init__.py rename to python/src/agnext/chat/__init__.py diff --git a/src/agnext/chat/agents/__init__.py b/python/src/agnext/chat/agents/__init__.py similarity index 100% rename from src/agnext/chat/agents/__init__.py rename to python/src/agnext/chat/agents/__init__.py diff --git a/src/agnext/chat/agents/chat_completion_agent.py b/python/src/agnext/chat/agents/chat_completion_agent.py similarity index 100% rename from src/agnext/chat/agents/chat_completion_agent.py rename to python/src/agnext/chat/agents/chat_completion_agent.py diff --git a/src/agnext/chat/agents/image_generation_agent.py b/python/src/agnext/chat/agents/image_generation_agent.py similarity index 100% rename from src/agnext/chat/agents/image_generation_agent.py rename to python/src/agnext/chat/agents/image_generation_agent.py diff --git a/src/agnext/chat/agents/oai_assistant.py b/python/src/agnext/chat/agents/oai_assistant.py similarity index 100% rename from src/agnext/chat/agents/oai_assistant.py rename to python/src/agnext/chat/agents/oai_assistant.py diff --git a/src/agnext/chat/agents/user_proxy.py b/python/src/agnext/chat/agents/user_proxy.py similarity index 100% rename from src/agnext/chat/agents/user_proxy.py rename to python/src/agnext/chat/agents/user_proxy.py diff --git a/src/agnext/chat/memory/__init__.py b/python/src/agnext/chat/memory/__init__.py similarity index 100% rename from src/agnext/chat/memory/__init__.py rename to python/src/agnext/chat/memory/__init__.py diff --git a/src/agnext/chat/memory/_base.py b/python/src/agnext/chat/memory/_base.py similarity index 100% rename from src/agnext/chat/memory/_base.py rename to python/src/agnext/chat/memory/_base.py diff --git a/src/agnext/chat/memory/_buffered.py b/python/src/agnext/chat/memory/_buffered.py similarity index 100% rename from src/agnext/chat/memory/_buffered.py rename to python/src/agnext/chat/memory/_buffered.py diff --git a/src/agnext/chat/memory/_head_and_tail.py b/python/src/agnext/chat/memory/_head_and_tail.py similarity index 100% rename from src/agnext/chat/memory/_head_and_tail.py rename to python/src/agnext/chat/memory/_head_and_tail.py diff --git a/src/agnext/chat/patterns/__init__.py b/python/src/agnext/chat/patterns/__init__.py similarity index 100% rename from src/agnext/chat/patterns/__init__.py rename to python/src/agnext/chat/patterns/__init__.py diff --git a/src/agnext/chat/patterns/group_chat_manager.py b/python/src/agnext/chat/patterns/group_chat_manager.py similarity index 100% rename from src/agnext/chat/patterns/group_chat_manager.py rename to python/src/agnext/chat/patterns/group_chat_manager.py diff --git a/src/agnext/chat/patterns/group_chat_utils.py b/python/src/agnext/chat/patterns/group_chat_utils.py similarity index 100% rename from src/agnext/chat/patterns/group_chat_utils.py rename to python/src/agnext/chat/patterns/group_chat_utils.py diff --git a/src/agnext/chat/patterns/orchestrator_chat.py b/python/src/agnext/chat/patterns/orchestrator_chat.py similarity index 100% rename from src/agnext/chat/patterns/orchestrator_chat.py rename to python/src/agnext/chat/patterns/orchestrator_chat.py diff --git a/src/agnext/chat/types.py b/python/src/agnext/chat/types.py similarity index 100% rename from src/agnext/chat/types.py rename to python/src/agnext/chat/types.py diff --git a/src/agnext/chat/utils.py b/python/src/agnext/chat/utils.py similarity index 100% rename from src/agnext/chat/utils.py rename to python/src/agnext/chat/utils.py diff --git a/src/agnext/components/__init__.py b/python/src/agnext/components/__init__.py similarity index 100% rename from src/agnext/components/__init__.py rename to python/src/agnext/components/__init__.py diff --git a/src/agnext/components/_function_utils.py b/python/src/agnext/components/_function_utils.py similarity index 100% rename from src/agnext/components/_function_utils.py rename to python/src/agnext/components/_function_utils.py diff --git a/src/agnext/components/_image.py b/python/src/agnext/components/_image.py similarity index 100% rename from src/agnext/components/_image.py rename to python/src/agnext/components/_image.py diff --git a/src/agnext/components/_pydantic_compat.py b/python/src/agnext/components/_pydantic_compat.py similarity index 100% rename from src/agnext/components/_pydantic_compat.py rename to python/src/agnext/components/_pydantic_compat.py diff --git a/src/agnext/components/_type_routed_agent.py b/python/src/agnext/components/_type_routed_agent.py similarity index 100% rename from src/agnext/components/_type_routed_agent.py rename to python/src/agnext/components/_type_routed_agent.py diff --git a/src/agnext/components/_types.py b/python/src/agnext/components/_types.py similarity index 100% rename from src/agnext/components/_types.py rename to python/src/agnext/components/_types.py diff --git a/src/agnext/components/code_executor/__init__.py b/python/src/agnext/components/code_executor/__init__.py similarity index 100% rename from src/agnext/components/code_executor/__init__.py rename to python/src/agnext/components/code_executor/__init__.py diff --git a/src/agnext/components/code_executor/_base.py b/python/src/agnext/components/code_executor/_base.py similarity index 100% rename from src/agnext/components/code_executor/_base.py rename to python/src/agnext/components/code_executor/_base.py diff --git a/src/agnext/components/code_executor/_func_with_reqs.py b/python/src/agnext/components/code_executor/_func_with_reqs.py similarity index 100% rename from src/agnext/components/code_executor/_func_with_reqs.py rename to python/src/agnext/components/code_executor/_func_with_reqs.py diff --git a/src/agnext/components/code_executor/_impl/__init__.py b/python/src/agnext/components/code_executor/_impl/__init__.py similarity index 100% rename from src/agnext/components/code_executor/_impl/__init__.py rename to python/src/agnext/components/code_executor/_impl/__init__.py diff --git a/src/agnext/components/code_executor/_impl/command_line_code_result.py b/python/src/agnext/components/code_executor/_impl/command_line_code_result.py similarity index 100% rename from src/agnext/components/code_executor/_impl/command_line_code_result.py rename to python/src/agnext/components/code_executor/_impl/command_line_code_result.py diff --git a/src/agnext/components/code_executor/_impl/local_commandline_code_executor.py b/python/src/agnext/components/code_executor/_impl/local_commandline_code_executor.py similarity index 100% rename from src/agnext/components/code_executor/_impl/local_commandline_code_executor.py rename to python/src/agnext/components/code_executor/_impl/local_commandline_code_executor.py diff --git a/src/agnext/components/code_executor/_impl/utils.py b/python/src/agnext/components/code_executor/_impl/utils.py similarity index 100% rename from src/agnext/components/code_executor/_impl/utils.py rename to python/src/agnext/components/code_executor/_impl/utils.py diff --git a/src/agnext/components/models/__init__.py b/python/src/agnext/components/models/__init__.py similarity index 100% rename from src/agnext/components/models/__init__.py rename to python/src/agnext/components/models/__init__.py diff --git a/src/agnext/components/models/_model_client.py b/python/src/agnext/components/models/_model_client.py similarity index 100% rename from src/agnext/components/models/_model_client.py rename to python/src/agnext/components/models/_model_client.py diff --git a/src/agnext/components/models/_model_info.py b/python/src/agnext/components/models/_model_info.py similarity index 100% rename from src/agnext/components/models/_model_info.py rename to python/src/agnext/components/models/_model_info.py diff --git a/src/agnext/components/models/_openai_client.py b/python/src/agnext/components/models/_openai_client.py similarity index 100% rename from src/agnext/components/models/_openai_client.py rename to python/src/agnext/components/models/_openai_client.py diff --git a/src/agnext/components/models/_types.py b/python/src/agnext/components/models/_types.py similarity index 100% rename from src/agnext/components/models/_types.py rename to python/src/agnext/components/models/_types.py diff --git a/src/agnext/components/models/config/__init__.py b/python/src/agnext/components/models/config/__init__.py similarity index 100% rename from src/agnext/components/models/config/__init__.py rename to python/src/agnext/components/models/config/__init__.py diff --git a/src/agnext/components/tools/__init__.py b/python/src/agnext/components/tools/__init__.py similarity index 100% rename from src/agnext/components/tools/__init__.py rename to python/src/agnext/components/tools/__init__.py diff --git a/src/agnext/components/tools/_base.py b/python/src/agnext/components/tools/_base.py similarity index 100% rename from src/agnext/components/tools/_base.py rename to python/src/agnext/components/tools/_base.py diff --git a/src/agnext/components/tools/_code_execution.py b/python/src/agnext/components/tools/_code_execution.py similarity index 100% rename from src/agnext/components/tools/_code_execution.py rename to python/src/agnext/components/tools/_code_execution.py diff --git a/src/agnext/components/tools/_function_tool.py b/python/src/agnext/components/tools/_function_tool.py similarity index 100% rename from src/agnext/components/tools/_function_tool.py rename to python/src/agnext/components/tools/_function_tool.py diff --git a/src/agnext/core/__init__.py b/python/src/agnext/core/__init__.py similarity index 100% rename from src/agnext/core/__init__.py rename to python/src/agnext/core/__init__.py diff --git a/src/agnext/core/_agent.py b/python/src/agnext/core/_agent.py similarity index 100% rename from src/agnext/core/_agent.py rename to python/src/agnext/core/_agent.py diff --git a/src/agnext/core/_agent_id.py b/python/src/agnext/core/_agent_id.py similarity index 100% rename from src/agnext/core/_agent_id.py rename to python/src/agnext/core/_agent_id.py diff --git a/src/agnext/core/_agent_metadata.py b/python/src/agnext/core/_agent_metadata.py similarity index 100% rename from src/agnext/core/_agent_metadata.py rename to python/src/agnext/core/_agent_metadata.py diff --git a/src/agnext/core/_agent_props.py b/python/src/agnext/core/_agent_props.py similarity index 100% rename from src/agnext/core/_agent_props.py rename to python/src/agnext/core/_agent_props.py diff --git a/src/agnext/core/_agent_proxy.py b/python/src/agnext/core/_agent_proxy.py similarity index 100% rename from src/agnext/core/_agent_proxy.py rename to python/src/agnext/core/_agent_proxy.py diff --git a/src/agnext/core/_agent_runtime.py b/python/src/agnext/core/_agent_runtime.py similarity index 100% rename from src/agnext/core/_agent_runtime.py rename to python/src/agnext/core/_agent_runtime.py diff --git a/src/agnext/core/_base_agent.py b/python/src/agnext/core/_base_agent.py similarity index 100% rename from src/agnext/core/_base_agent.py rename to python/src/agnext/core/_base_agent.py diff --git a/src/agnext/core/_cancellation_token.py b/python/src/agnext/core/_cancellation_token.py similarity index 100% rename from src/agnext/core/_cancellation_token.py rename to python/src/agnext/core/_cancellation_token.py diff --git a/src/agnext/core/exceptions.py b/python/src/agnext/core/exceptions.py similarity index 100% rename from src/agnext/core/exceptions.py rename to python/src/agnext/core/exceptions.py diff --git a/src/agnext/core/intervention.py b/python/src/agnext/core/intervention.py similarity index 100% rename from src/agnext/core/intervention.py rename to python/src/agnext/core/intervention.py diff --git a/src/agnext/py.typed b/python/src/agnext/py.typed similarity index 100% rename from src/agnext/py.typed rename to python/src/agnext/py.typed diff --git a/tests/execution/test_commandline_code_executor.py b/python/tests/execution/test_commandline_code_executor.py similarity index 100% rename from tests/execution/test_commandline_code_executor.py rename to python/tests/execution/test_commandline_code_executor.py diff --git a/tests/execution/test_user_defined_functions.py b/python/tests/execution/test_user_defined_functions.py similarity index 100% rename from tests/execution/test_user_defined_functions.py rename to python/tests/execution/test_user_defined_functions.py diff --git a/tests/test_cancellation.py b/python/tests/test_cancellation.py similarity index 100% rename from tests/test_cancellation.py rename to python/tests/test_cancellation.py diff --git a/tests/test_intervention.py b/python/tests/test_intervention.py similarity index 100% rename from tests/test_intervention.py rename to python/tests/test_intervention.py diff --git a/tests/test_llm_usage.py b/python/tests/test_llm_usage.py similarity index 100% rename from tests/test_llm_usage.py rename to python/tests/test_llm_usage.py diff --git a/tests/test_runtime.py b/python/tests/test_runtime.py similarity index 100% rename from tests/test_runtime.py rename to python/tests/test_runtime.py diff --git a/tests/test_state.py b/python/tests/test_state.py similarity index 100% rename from tests/test_state.py rename to python/tests/test_state.py diff --git a/tests/test_tools.py b/python/tests/test_tools.py similarity index 100% rename from tests/test_tools.py rename to python/tests/test_tools.py diff --git a/tests/test_types.py b/python/tests/test_types.py similarity index 100% rename from tests/test_types.py rename to python/tests/test_types.py diff --git a/tests/test_utils/__init__.py b/python/tests/test_utils/__init__.py similarity index 100% rename from tests/test_utils/__init__.py rename to python/tests/test_utils/__init__.py