diff --git a/.github/workflows/benchmark-radix-tree.yml b/.github/workflows/benchmark-radix-tree.yml index cbafd696cb..8ea8086d89 100644 --- a/.github/workflows/benchmark-radix-tree.yml +++ b/.github/workflows/benchmark-radix-tree.yml @@ -5,18 +5,18 @@ on: branches: [ main ] paths: - 'model_gateway/benches/radix_tree_benchmark.rs' - - 'kv_index/**' - - '!kv_index/**/tests/**' - - '!kv_index/**/*_test.rs' - - '!kv_index/**/test_*.rs' + - 'crates/kv_index/**' + - '!crates/kv_index/**/tests/**' + - '!crates/kv_index/**/*_test.rs' + - '!crates/kv_index/**/test_*.rs' pull_request: branches: [ main ] paths: - 'model_gateway/benches/radix_tree_benchmark.rs' - - 'kv_index/**' - - '!kv_index/**/tests/**' - - '!kv_index/**/*_test.rs' - - '!kv_index/**/test_*.rs' + - 'crates/kv_index/**' + - '!crates/kv_index/**/tests/**' + - '!crates/kv_index/**/*_test.rs' + - '!crates/kv_index/**/test_*.rs' workflow_dispatch: schedule: - cron: '0 0 * * 0' diff --git a/.github/workflows/benchmark-tokenizer.yml b/.github/workflows/benchmark-tokenizer.yml index f1fa3d939c..c6ef0a491e 100644 --- a/.github/workflows/benchmark-tokenizer.yml +++ b/.github/workflows/benchmark-tokenizer.yml @@ -5,18 +5,18 @@ on: branches: [ main ] paths: - 'model_gateway/benches/tokenizer_benchmark.rs' - - 'tokenizer/**' - - '!tokenizer/**/tests/**' - - '!tokenizer/**/*_test.rs' - - '!tokenizer/**/test_*.rs' + - 'crates/tokenizer/**' + - '!crates/tokenizer/**/tests/**' + - '!crates/tokenizer/**/*_test.rs' + - '!crates/tokenizer/**/test_*.rs' pull_request: branches: [ main ] paths: - 'model_gateway/benches/tokenizer_benchmark.rs' - - 'tokenizer/**' - - '!tokenizer/**/tests/**' - - '!tokenizer/**/*_test.rs' - - '!tokenizer/**/test_*.rs' + - 'crates/tokenizer/**' + - '!crates/tokenizer/**/tests/**' + - '!crates/tokenizer/**/*_test.rs' + - '!crates/tokenizer/**/test_*.rs' workflow_dispatch: schedule: - cron: '0 0 * * 0' diff --git a/.github/workflows/benchmark-tool-parser.yml b/.github/workflows/benchmark-tool-parser.yml index db5a35ef84..5b4ddadec6 100644 --- a/.github/workflows/benchmark-tool-parser.yml +++ b/.github/workflows/benchmark-tool-parser.yml @@ -5,18 +5,18 @@ on: branches: [ main ] paths: - 'model_gateway/benches/tool_parser_benchmark.rs' - - 'tool_parser/**' - - '!tool_parser/**/tests/**' - - '!tool_parser/**/*_test.rs' - - '!tool_parser/**/test_*.rs' + - 'crates/tool_parser/**' + - '!crates/tool_parser/**/tests/**' + - '!crates/tool_parser/**/*_test.rs' + - '!crates/tool_parser/**/test_*.rs' pull_request: branches: [ main ] paths: - 'model_gateway/benches/tool_parser_benchmark.rs' - - 'tool_parser/**' - - '!tool_parser/**/tests/**' - - '!tool_parser/**/*_test.rs' - - '!tool_parser/**/test_*.rs' + - 'crates/tool_parser/**' + - '!crates/tool_parser/**/tests/**' + - '!crates/tool_parser/**/*_test.rs' + - '!crates/tool_parser/**/test_*.rs' workflow_dispatch: schedule: - cron: '0 0 * * 0' diff --git a/.github/workflows/nightly-benchmark.yml b/.github/workflows/nightly-benchmark.yml index cfb6786274..ab43996b38 100644 --- a/.github/workflows/nightly-benchmark.yml +++ b/.github/workflows/nightly-benchmark.yml @@ -48,7 +48,7 @@ jobs: path: | bindings/python/dist/*.whl clients/python/smg_client/types/_generated.py - key: nightly-wheel-${{ runner.os }}-${{ hashFiles('Cargo.lock', '**/Cargo.toml', 'auth/src/**', 'bindings/python/src/**', 'data_connector/src/**', 'grpc_client/src/**', 'kv_index/src/**', 'mcp/src/**', 'mesh/src/**', 'model_gateway/src/**', 'multimodal/src/**', 'protocols/src/**', 'reasoning_parser/src/**', 'tokenizer/src/**', 'tool_parser/src/**', 'wasm/src/**', 'workflow/src/**') }} + key: nightly-wheel-${{ runner.os }}-${{ hashFiles('Cargo.lock', '**/Cargo.toml', 'crates/auth/src/**', 'bindings/python/src/**', 'crates/data_connector/src/**', 'crates/grpc_client/src/**', 'crates/kv_index/src/**', 'crates/mcp/src/**', 'crates/mesh/src/**', 'model_gateway/src/**', 'crates/multimodal/src/**', 'crates/protocols/src/**', 'crates/reasoning_parser/src/**', 'crates/tokenizer/src/**', 'crates/tool_parser/src/**', 'crates/wasm/src/**', 'crates/workflow/src/**') }} restore-keys: | nightly-wheel-${{ runner.os }}- diff --git a/.github/workflows/pr-test-rust.yml b/.github/workflows/pr-test-rust.yml index 605ec3ba9e..7ca200f3fa 100644 --- a/.github/workflows/pr-test-rust.yml +++ b/.github/workflows/pr-test-rust.yml @@ -90,16 +90,16 @@ jobs: - name: Copy protos and build run: | - rm -f grpc_client/python/smg_grpc_proto/proto - mkdir -p grpc_client/python/smg_grpc_proto/proto - cp grpc_client/proto/*.proto grpc_client/python/smg_grpc_proto/proto/ + rm -f crates/grpc_client/python/smg_grpc_proto/proto + mkdir -p crates/grpc_client/python/smg_grpc_proto/proto + cp crates/grpc_client/proto/*.proto crates/grpc_client/python/smg_grpc_proto/proto/ pip install build grpcio-tools - rm -rf grpc_client/python/dist/ - cd grpc_client/python && python -m build + rm -rf crates/grpc_client/python/dist/ + cd crates/grpc_client/python && python -m build - name: Test import run: | - pip install grpc_client/python/dist/*.whl + pip install crates/grpc_client/python/dist/*.whl python -c "from smg_grpc_proto import sglang_scheduler_pb2; print('OK')" build-wheel: @@ -116,9 +116,9 @@ jobs: path: | bindings/python/dist/*.whl bindings/golang/target/release/libsmg_go.* - wasm/tests/fixtures/*.wasm + crates/wasm/tests/fixtures/*.wasm clients/python/smg_client/types/_generated.py - key: wheel-${{ runner.os }}-${{ hashFiles('Cargo.lock', '**/Cargo.toml', 'auth/src/**', 'bindings/python/src/**', 'data_connector/src/**', 'grpc_client/src/**', 'kv_index/src/**', 'mcp/src/**', 'mesh/src/**', 'model_gateway/src/**', 'multimodal/src/**', 'protocols/src/**', 'reasoning_parser/src/**', 'tokenizer/src/**', 'tool_parser/src/**', 'wasm/src/**', 'workflow/src/**', 'bindings/golang/src/**', 'examples/wasm/**') }} + key: wheel-${{ runner.os }}-${{ hashFiles('Cargo.lock', '**/Cargo.toml', 'crates/auth/src/**', 'bindings/python/src/**', 'crates/data_connector/src/**', 'crates/grpc_client/src/**', 'crates/kv_index/src/**', 'crates/mcp/src/**', 'crates/mesh/src/**', 'model_gateway/src/**', 'crates/multimodal/src/**', 'crates/protocols/src/**', 'crates/reasoning_parser/src/**', 'crates/tokenizer/src/**', 'crates/tool_parser/src/**', 'crates/wasm/src/**', 'crates/workflow/src/**', 'bindings/golang/src/**', 'examples/wasm/**') }} restore-keys: | wheel-${{ runner.os }}- @@ -157,7 +157,7 @@ jobs: if: steps.cache-wheel.outputs.cache-hit != 'true' run: | source "$HOME/.cargo/env" - bash wasm/tests/fixtures/build_fixtures.sh + bash crates/wasm/tests/fixtures/build_fixtures.sh - name: Upload wheel artifact uses: actions/upload-artifact@v7 @@ -184,7 +184,7 @@ jobs: uses: actions/upload-artifact@v7 with: name: wasm-test-fixtures - path: wasm/tests/fixtures/*.wasm + path: crates/wasm/tests/fixtures/*.wasm retention-days: 1 if-no-files-found: ignore @@ -250,7 +250,7 @@ jobs: - name: Build WASM test fixtures run: | source "$HOME/.cargo/env" - bash wasm/tests/fixtures/build_fixtures.sh + bash crates/wasm/tests/fixtures/build_fixtures.sh - name: Run lint run: | @@ -270,7 +270,7 @@ jobs: pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu pip install transformers pillow numpy scipy - python multimodal/scripts/generate_vision_golden.py + python crates/multimodal/scripts/generate_vision_golden.py - name: Run Rust tests timeout-minutes: 30 @@ -300,7 +300,7 @@ jobs: filters: | common: - 'model_gateway/**' - - 'protocols/**' + - 'crates/protocols/**' - 'bindings/**' - 'e2e_test/conftest.py' - 'e2e_test/infra/**' @@ -311,20 +311,20 @@ jobs: - 'scripts/ci_setup_python_venv.sh' - 'scripts/ci_install_sglang.sh' - 'scripts/ci_build_wheel.sh' - - 'tokenizer/**' - - 'tool_parser/**' + - 'crates/tokenizer/**' + - 'crates/tool_parser/**' chat-completions: - - 'reasoning_parser/**' - - 'multimodal/**' - - 'grpc_client/**' + - 'crates/reasoning_parser/**' + - 'crates/multimodal/**' + - 'crates/grpc_client/**' - 'grpc_servicer/**' - 'e2e_test/chat_completions/**' - 'e2e_test/router/test_pd_mmlu.py' - 'scripts/ci_install_vllm.sh' - 'scripts/ci_install_trtllm.sh' agentic: - - 'mcp/**' - - 'data_connector/**' + - 'crates/mcp/**' + - 'crates/data_connector/**' - 'e2e_test/responses/**' - 'e2e_test/messages/**' - 'scripts/ci_agentic_svc_deps.sh' @@ -388,7 +388,7 @@ jobs: uses: actions/download-artifact@v8 with: name: wasm-test-fixtures - path: wasm/tests/fixtures/ + path: crates/wasm/tests/fixtures/ continue-on-error: true - name: Download Python client types @@ -512,7 +512,7 @@ jobs: uses: actions/download-artifact@v8 with: name: wasm-test-fixtures - path: wasm/tests/fixtures/ + path: crates/wasm/tests/fixtures/ continue-on-error: true - name: Download Python client types @@ -588,7 +588,7 @@ jobs: uses: actions/download-artifact@v8 with: name: wasm-test-fixtures - path: wasm/tests/fixtures/ + path: crates/wasm/tests/fixtures/ continue-on-error: true - name: Download Python client types diff --git a/.github/workflows/release-crates.yml b/.github/workflows/release-crates.yml index b952bd3dec..8402339a69 100644 --- a/.github/workflows/release-crates.yml +++ b/.github/workflows/release-crates.yml @@ -22,21 +22,21 @@ jobs: matrix: include: - crate: openai-protocol - path: protocols + path: crates/protocols - crate: reasoning-parser - path: reasoning_parser + path: crates/reasoning_parser - crate: kv-index - path: kv_index + path: crates/kv_index - crate: data-connector - path: data_connector + path: crates/data_connector - crate: wfaas - path: workflow + path: crates/workflow - crate: smg-wasm - path: wasm + path: crates/wasm - crate: smg-auth - path: auth + path: crates/auth - crate: llm-tokenizer - path: tokenizer + path: crates/tokenizer steps: - uses: actions/checkout@v6 - uses: ./.github/actions/publish-crate @@ -54,15 +54,15 @@ jobs: matrix: include: - crate: tool-parser - path: tool_parser + path: crates/tool_parser - crate: smg-mcp - path: mcp + path: crates/mcp - crate: smg-grpc-client - path: grpc_client + path: crates/grpc_client - crate: llm-multimodal - path: multimodal + path: crates/multimodal - crate: smg-mesh - path: mesh + path: crates/mesh steps: - uses: actions/checkout@v6 - uses: ./.github/actions/publish-crate diff --git a/.github/workflows/release-grpc.yml b/.github/workflows/release-grpc.yml index d9a5ecef06..5069135dce 100644 --- a/.github/workflows/release-grpc.yml +++ b/.github/workflows/release-grpc.yml @@ -5,7 +5,7 @@ on: branches: - main paths: - - grpc_client/python/pyproject.toml + - crates/grpc_client/python/pyproject.toml - grpc_servicer/pyproject.toml workflow_dispatch: @@ -35,7 +35,7 @@ jobs: base="${{ github.event.before }}" head="${{ github.sha }}" changed="$(git diff --name-only "$base" "$head")" - proto=$(echo "$changed" | grep -q '^grpc_client/python/pyproject.toml$' && echo true || echo false) + proto=$(echo "$changed" | grep -q '^crates/grpc_client/python/pyproject.toml$' && echo true || echo false) servicer=$(echo "$changed" | grep -q '^grpc_servicer/pyproject.toml$' && echo true || echo false) echo "proto=$proto" >> "$GITHUB_OUTPUT" echo "servicer=$servicer" >> "$GITHUB_OUTPUT" @@ -60,20 +60,20 @@ jobs: - name: Copy proto files (replace symlink with real files) run: | - rm -f grpc_client/python/smg_grpc_proto/proto - mkdir -p grpc_client/python/smg_grpc_proto/proto - cp grpc_client/proto/*.proto grpc_client/python/smg_grpc_proto/proto/ + rm -f crates/grpc_client/python/smg_grpc_proto/proto + mkdir -p crates/grpc_client/python/smg_grpc_proto/proto + cp crates/grpc_client/proto/*.proto crates/grpc_client/python/smg_grpc_proto/proto/ - name: Build package - run: cd grpc_client/python && python -m build + run: cd crates/grpc_client/python && python -m build - name: Check package - run: twine check --strict grpc_client/python/dist/* + run: twine check --strict crates/grpc_client/python/dist/* - uses: actions/upload-artifact@v7 with: name: grpc-proto-dist - path: grpc_client/python/dist/ + path: crates/grpc_client/python/dist/ upload-proto: name: Upload proto to PyPI diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4ca7b457b1..ede9ad1c73 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -31,7 +31,7 @@ repos: src/proto/.*\.proto$| src/mesh/proto/.*\.proto$| src/tokenizer/chat_template\.rs| - multimodal/tests/fixtures/.*| + crates/multimodal/tests/fixtures/.*| target/.* )$ diff --git a/Cargo.toml b/Cargo.toml index bcc5704f29..18e1716c0f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,22 +1,22 @@ [workspace] -members = ["model_gateway", "protocols", "reasoning_parser", "tool_parser", "workflow", "tokenizer", "auth", "mcp", "kv_index", "data_connector", "multimodal", "wasm", "mesh", "grpc_client", "bindings/python", "bindings/golang", "clients/rust", "clients/openapi-gen"] +members = ["model_gateway", "crates/protocols", "crates/reasoning_parser", "crates/tool_parser", "crates/workflow", "crates/tokenizer", "crates/auth", "crates/mcp", "crates/kv_index", "crates/data_connector", "crates/multimodal", "crates/wasm", "crates/mesh", "crates/grpc_client", "bindings/python", "bindings/golang", "clients/rust", "clients/openapi-gen"] resolver = "2" [workspace.dependencies] # Internal workspace crates -openai-protocol = { version = "1.2.0", path = "protocols" } -reasoning-parser = { version = "1.2.0", path = "reasoning_parser" } -tool-parser = { version = "1.1.1", path = "tool_parser" } -wfaas = { version = "1.0.2", path = "workflow" } -llm-tokenizer = { version = "1.2.0", path = "tokenizer" } -smg-auth = { version = "1.1.1", path = "auth" } -smg-mcp = { version = "2.1.0", path = "mcp" } -kv-index = { version = "1.0.1", path = "kv_index" } -smg-data-connector = { version = "2.0.0", path = "data_connector", package = "data-connector" } -llm-multimodal = { version = "1.2.0", path = "multimodal" } -smg-wasm = { version = "1.0.1", path = "wasm", package = "smg-wasm" } -smg-mesh = { version = "1.1.1", path = "mesh", package = "smg-mesh" } -smg-grpc-client = { version = "1.2.0", path = "grpc_client" } +openai-protocol = { version = "1.2.0", path = "crates/protocols" } +reasoning-parser = { version = "1.2.0", path = "crates/reasoning_parser" } +tool-parser = { version = "1.1.1", path = "crates/tool_parser" } +wfaas = { version = "1.0.2", path = "crates/workflow" } +llm-tokenizer = { version = "1.2.0", path = "crates/tokenizer" } +smg-auth = { version = "1.1.1", path = "crates/auth" } +smg-mcp = { version = "2.1.0", path = "crates/mcp" } +kv-index = { version = "1.0.1", path = "crates/kv_index" } +smg-data-connector = { version = "2.0.0", path = "crates/data_connector", package = "data-connector" } +llm-multimodal = { version = "1.2.0", path = "crates/multimodal" } +smg-wasm = { version = "1.0.1", path = "crates/wasm", package = "smg-wasm" } +smg-mesh = { version = "1.1.1", path = "crates/mesh", package = "smg-mesh" } +smg-grpc-client = { version = "1.2.0", path = "crates/grpc_client" } # Shared dependencies anyhow = "1.0" diff --git a/bindings/golang/Cargo.toml b/bindings/golang/Cargo.toml index b5512553e2..aef6edfdd8 100644 --- a/bindings/golang/Cargo.toml +++ b/bindings/golang/Cargo.toml @@ -28,10 +28,10 @@ default-features = true workspace = true [dependencies.llm-tokenizer] -path = "../../tokenizer" +path = "../../crates/tokenizer" [dependencies.tool-parser] -path = "../../tool_parser" +path = "../../crates/tool_parser" [dependencies.smg-grpc-client] workspace = true diff --git a/bindings/python/Cargo.toml b/bindings/python/Cargo.toml index 964f673f41..82111d6be6 100644 --- a/bindings/python/Cargo.toml +++ b/bindings/python/Cargo.toml @@ -18,10 +18,10 @@ path = "../../model_gateway" default-features = true [dependencies.smg-auth] -path = "../../auth" +path = "../../crates/auth" [dependencies.tool-parser] -path = "../../tool_parser" +path = "../../crates/tool_parser" [features] default = ["pyo3/extension-module"] diff --git a/clients/openapi-gen/Cargo.toml b/clients/openapi-gen/Cargo.toml index fd4fa56ddb..5b2a22edd7 100644 --- a/clients/openapi-gen/Cargo.toml +++ b/clients/openapi-gen/Cargo.toml @@ -7,7 +7,7 @@ publish = false [dependencies] anyhow = { workspace = true } -openai-protocol = { path = "../../protocols" } +openai-protocol = { path = "../../crates/protocols" } schemars = { workspace = true } serde = { workspace = true, features = ["derive"] } serde_json = { workspace = true } diff --git a/auth/Cargo.toml b/crates/auth/Cargo.toml similarity index 100% rename from auth/Cargo.toml rename to crates/auth/Cargo.toml diff --git a/auth/src/audit.rs b/crates/auth/src/audit.rs similarity index 100% rename from auth/src/audit.rs rename to crates/auth/src/audit.rs diff --git a/auth/src/config.rs b/crates/auth/src/config.rs similarity index 100% rename from auth/src/config.rs rename to crates/auth/src/config.rs diff --git a/auth/src/jwks.rs b/crates/auth/src/jwks.rs similarity index 100% rename from auth/src/jwks.rs rename to crates/auth/src/jwks.rs diff --git a/auth/src/jwt.rs b/crates/auth/src/jwt.rs similarity index 100% rename from auth/src/jwt.rs rename to crates/auth/src/jwt.rs diff --git a/auth/src/lib.rs b/crates/auth/src/lib.rs similarity index 100% rename from auth/src/lib.rs rename to crates/auth/src/lib.rs diff --git a/auth/src/middleware.rs b/crates/auth/src/middleware.rs similarity index 100% rename from auth/src/middleware.rs rename to crates/auth/src/middleware.rs diff --git a/data_connector/Cargo.toml b/crates/data_connector/Cargo.toml similarity index 100% rename from data_connector/Cargo.toml rename to crates/data_connector/Cargo.toml diff --git a/data_connector/README.md b/crates/data_connector/README.md similarity index 100% rename from data_connector/README.md rename to crates/data_connector/README.md diff --git a/data_connector/src/common.rs b/crates/data_connector/src/common.rs similarity index 100% rename from data_connector/src/common.rs rename to crates/data_connector/src/common.rs diff --git a/data_connector/src/config.rs b/crates/data_connector/src/config.rs similarity index 100% rename from data_connector/src/config.rs rename to crates/data_connector/src/config.rs diff --git a/data_connector/src/context.rs b/crates/data_connector/src/context.rs similarity index 100% rename from data_connector/src/context.rs rename to crates/data_connector/src/context.rs diff --git a/data_connector/src/core.rs b/crates/data_connector/src/core.rs similarity index 100% rename from data_connector/src/core.rs rename to crates/data_connector/src/core.rs diff --git a/data_connector/src/factory.rs b/crates/data_connector/src/factory.rs similarity index 100% rename from data_connector/src/factory.rs rename to crates/data_connector/src/factory.rs diff --git a/data_connector/src/hooked.rs b/crates/data_connector/src/hooked.rs similarity index 100% rename from data_connector/src/hooked.rs rename to crates/data_connector/src/hooked.rs diff --git a/data_connector/src/hooks.rs b/crates/data_connector/src/hooks.rs similarity index 100% rename from data_connector/src/hooks.rs rename to crates/data_connector/src/hooks.rs diff --git a/data_connector/src/lib.rs b/crates/data_connector/src/lib.rs similarity index 100% rename from data_connector/src/lib.rs rename to crates/data_connector/src/lib.rs diff --git a/data_connector/src/memory.rs b/crates/data_connector/src/memory.rs similarity index 100% rename from data_connector/src/memory.rs rename to crates/data_connector/src/memory.rs diff --git a/data_connector/src/noop.rs b/crates/data_connector/src/noop.rs similarity index 100% rename from data_connector/src/noop.rs rename to crates/data_connector/src/noop.rs diff --git a/data_connector/src/oracle.rs b/crates/data_connector/src/oracle.rs similarity index 100% rename from data_connector/src/oracle.rs rename to crates/data_connector/src/oracle.rs diff --git a/data_connector/src/oracle_migrations.rs b/crates/data_connector/src/oracle_migrations.rs similarity index 100% rename from data_connector/src/oracle_migrations.rs rename to crates/data_connector/src/oracle_migrations.rs diff --git a/data_connector/src/postgres.rs b/crates/data_connector/src/postgres.rs similarity index 100% rename from data_connector/src/postgres.rs rename to crates/data_connector/src/postgres.rs diff --git a/data_connector/src/postgres_migrations.rs b/crates/data_connector/src/postgres_migrations.rs similarity index 100% rename from data_connector/src/postgres_migrations.rs rename to crates/data_connector/src/postgres_migrations.rs diff --git a/data_connector/src/redis.rs b/crates/data_connector/src/redis.rs similarity index 100% rename from data_connector/src/redis.rs rename to crates/data_connector/src/redis.rs diff --git a/data_connector/src/schema.rs b/crates/data_connector/src/schema.rs similarity index 100% rename from data_connector/src/schema.rs rename to crates/data_connector/src/schema.rs diff --git a/data_connector/src/versioning.rs b/crates/data_connector/src/versioning.rs similarity index 100% rename from data_connector/src/versioning.rs rename to crates/data_connector/src/versioning.rs diff --git a/grpc_client/Cargo.toml b/crates/grpc_client/Cargo.toml similarity index 100% rename from grpc_client/Cargo.toml rename to crates/grpc_client/Cargo.toml diff --git a/grpc_client/build.rs b/crates/grpc_client/build.rs similarity index 100% rename from grpc_client/build.rs rename to crates/grpc_client/build.rs diff --git a/grpc_client/proto/common.proto b/crates/grpc_client/proto/common.proto similarity index 100% rename from grpc_client/proto/common.proto rename to crates/grpc_client/proto/common.proto diff --git a/grpc_client/proto/sglang_encoder.proto b/crates/grpc_client/proto/sglang_encoder.proto similarity index 100% rename from grpc_client/proto/sglang_encoder.proto rename to crates/grpc_client/proto/sglang_encoder.proto diff --git a/grpc_client/proto/sglang_scheduler.proto b/crates/grpc_client/proto/sglang_scheduler.proto similarity index 100% rename from grpc_client/proto/sglang_scheduler.proto rename to crates/grpc_client/proto/sglang_scheduler.proto diff --git a/grpc_client/proto/trtllm_service.proto b/crates/grpc_client/proto/trtllm_service.proto similarity index 100% rename from grpc_client/proto/trtllm_service.proto rename to crates/grpc_client/proto/trtllm_service.proto diff --git a/grpc_client/proto/vllm_engine.proto b/crates/grpc_client/proto/vllm_engine.proto similarity index 100% rename from grpc_client/proto/vllm_engine.proto rename to crates/grpc_client/proto/vllm_engine.proto diff --git a/grpc_client/python/.gitignore b/crates/grpc_client/python/.gitignore similarity index 100% rename from grpc_client/python/.gitignore rename to crates/grpc_client/python/.gitignore diff --git a/grpc_client/python/README.md b/crates/grpc_client/python/README.md similarity index 100% rename from grpc_client/python/README.md rename to crates/grpc_client/python/README.md diff --git a/grpc_client/python/pyproject.toml b/crates/grpc_client/python/pyproject.toml similarity index 100% rename from grpc_client/python/pyproject.toml rename to crates/grpc_client/python/pyproject.toml diff --git a/grpc_client/python/setup.py b/crates/grpc_client/python/setup.py similarity index 100% rename from grpc_client/python/setup.py rename to crates/grpc_client/python/setup.py diff --git a/grpc_client/python/smg_grpc_proto/__init__.py b/crates/grpc_client/python/smg_grpc_proto/__init__.py similarity index 100% rename from grpc_client/python/smg_grpc_proto/__init__.py rename to crates/grpc_client/python/smg_grpc_proto/__init__.py diff --git a/grpc_client/python/smg_grpc_proto/proto b/crates/grpc_client/python/smg_grpc_proto/proto similarity index 100% rename from grpc_client/python/smg_grpc_proto/proto rename to crates/grpc_client/python/smg_grpc_proto/proto diff --git a/grpc_client/src/lib.rs b/crates/grpc_client/src/lib.rs similarity index 100% rename from grpc_client/src/lib.rs rename to crates/grpc_client/src/lib.rs diff --git a/grpc_client/src/sglang_scheduler.rs b/crates/grpc_client/src/sglang_scheduler.rs similarity index 100% rename from grpc_client/src/sglang_scheduler.rs rename to crates/grpc_client/src/sglang_scheduler.rs diff --git a/grpc_client/src/tokenizer_bundle.rs b/crates/grpc_client/src/tokenizer_bundle.rs similarity index 100% rename from grpc_client/src/tokenizer_bundle.rs rename to crates/grpc_client/src/tokenizer_bundle.rs diff --git a/grpc_client/src/trtllm_service.rs b/crates/grpc_client/src/trtllm_service.rs similarity index 100% rename from grpc_client/src/trtllm_service.rs rename to crates/grpc_client/src/trtllm_service.rs diff --git a/grpc_client/src/vllm_engine.rs b/crates/grpc_client/src/vllm_engine.rs similarity index 100% rename from grpc_client/src/vllm_engine.rs rename to crates/grpc_client/src/vllm_engine.rs diff --git a/kv_index/Cargo.toml b/crates/kv_index/Cargo.toml similarity index 100% rename from kv_index/Cargo.toml rename to crates/kv_index/Cargo.toml diff --git a/kv_index/benches/throughput_bench.rs b/crates/kv_index/benches/throughput_bench.rs similarity index 100% rename from kv_index/benches/throughput_bench.rs rename to crates/kv_index/benches/throughput_bench.rs diff --git a/kv_index/src/common.rs b/crates/kv_index/src/common.rs similarity index 100% rename from kv_index/src/common.rs rename to crates/kv_index/src/common.rs diff --git a/kv_index/src/event_tree.rs b/crates/kv_index/src/event_tree.rs similarity index 100% rename from kv_index/src/event_tree.rs rename to crates/kv_index/src/event_tree.rs diff --git a/kv_index/src/lib.rs b/crates/kv_index/src/lib.rs similarity index 100% rename from kv_index/src/lib.rs rename to crates/kv_index/src/lib.rs diff --git a/kv_index/src/string_tree.rs b/crates/kv_index/src/string_tree.rs similarity index 100% rename from kv_index/src/string_tree.rs rename to crates/kv_index/src/string_tree.rs diff --git a/kv_index/src/token_tree.rs b/crates/kv_index/src/token_tree.rs similarity index 100% rename from kv_index/src/token_tree.rs rename to crates/kv_index/src/token_tree.rs diff --git a/mcp/Cargo.toml b/crates/mcp/Cargo.toml similarity index 100% rename from mcp/Cargo.toml rename to crates/mcp/Cargo.toml diff --git a/mcp/README.md b/crates/mcp/README.md similarity index 100% rename from mcp/README.md rename to crates/mcp/README.md diff --git a/mcp/src/annotations.rs b/crates/mcp/src/annotations.rs similarity index 100% rename from mcp/src/annotations.rs rename to crates/mcp/src/annotations.rs diff --git a/mcp/src/approval/audit.rs b/crates/mcp/src/approval/audit.rs similarity index 100% rename from mcp/src/approval/audit.rs rename to crates/mcp/src/approval/audit.rs diff --git a/mcp/src/approval/manager.rs b/crates/mcp/src/approval/manager.rs similarity index 100% rename from mcp/src/approval/manager.rs rename to crates/mcp/src/approval/manager.rs diff --git a/mcp/src/approval/mod.rs b/crates/mcp/src/approval/mod.rs similarity index 100% rename from mcp/src/approval/mod.rs rename to crates/mcp/src/approval/mod.rs diff --git a/mcp/src/approval/policy.rs b/crates/mcp/src/approval/policy.rs similarity index 100% rename from mcp/src/approval/policy.rs rename to crates/mcp/src/approval/policy.rs diff --git a/mcp/src/core/config.rs b/crates/mcp/src/core/config.rs similarity index 100% rename from mcp/src/core/config.rs rename to crates/mcp/src/core/config.rs diff --git a/mcp/src/core/handler.rs b/crates/mcp/src/core/handler.rs similarity index 100% rename from mcp/src/core/handler.rs rename to crates/mcp/src/core/handler.rs diff --git a/mcp/src/core/metrics.rs b/crates/mcp/src/core/metrics.rs similarity index 100% rename from mcp/src/core/metrics.rs rename to crates/mcp/src/core/metrics.rs diff --git a/mcp/src/core/mod.rs b/crates/mcp/src/core/mod.rs similarity index 100% rename from mcp/src/core/mod.rs rename to crates/mcp/src/core/mod.rs diff --git a/mcp/src/core/oauth.rs b/crates/mcp/src/core/oauth.rs similarity index 100% rename from mcp/src/core/oauth.rs rename to crates/mcp/src/core/oauth.rs diff --git a/mcp/src/core/orchestrator.rs b/crates/mcp/src/core/orchestrator.rs similarity index 100% rename from mcp/src/core/orchestrator.rs rename to crates/mcp/src/core/orchestrator.rs diff --git a/mcp/src/core/pool.rs b/crates/mcp/src/core/pool.rs similarity index 100% rename from mcp/src/core/pool.rs rename to crates/mcp/src/core/pool.rs diff --git a/mcp/src/core/proxy.rs b/crates/mcp/src/core/proxy.rs similarity index 100% rename from mcp/src/core/proxy.rs rename to crates/mcp/src/core/proxy.rs diff --git a/mcp/src/core/reconnect.rs b/crates/mcp/src/core/reconnect.rs similarity index 100% rename from mcp/src/core/reconnect.rs rename to crates/mcp/src/core/reconnect.rs diff --git a/mcp/src/core/session.rs b/crates/mcp/src/core/session.rs similarity index 100% rename from mcp/src/core/session.rs rename to crates/mcp/src/core/session.rs diff --git a/mcp/src/error.rs b/crates/mcp/src/error.rs similarity index 100% rename from mcp/src/error.rs rename to crates/mcp/src/error.rs diff --git a/mcp/src/inventory/index.rs b/crates/mcp/src/inventory/index.rs similarity index 100% rename from mcp/src/inventory/index.rs rename to crates/mcp/src/inventory/index.rs diff --git a/mcp/src/inventory/mod.rs b/crates/mcp/src/inventory/mod.rs similarity index 100% rename from mcp/src/inventory/mod.rs rename to crates/mcp/src/inventory/mod.rs diff --git a/mcp/src/inventory/types.rs b/crates/mcp/src/inventory/types.rs similarity index 100% rename from mcp/src/inventory/types.rs rename to crates/mcp/src/inventory/types.rs diff --git a/mcp/src/lib.rs b/crates/mcp/src/lib.rs similarity index 100% rename from mcp/src/lib.rs rename to crates/mcp/src/lib.rs diff --git a/mcp/src/responses_bridge.rs b/crates/mcp/src/responses_bridge.rs similarity index 100% rename from mcp/src/responses_bridge.rs rename to crates/mcp/src/responses_bridge.rs diff --git a/mcp/src/tenant.rs b/crates/mcp/src/tenant.rs similarity index 100% rename from mcp/src/tenant.rs rename to crates/mcp/src/tenant.rs diff --git a/mcp/src/transform/mod.rs b/crates/mcp/src/transform/mod.rs similarity index 100% rename from mcp/src/transform/mod.rs rename to crates/mcp/src/transform/mod.rs diff --git a/mcp/src/transform/transformer.rs b/crates/mcp/src/transform/transformer.rs similarity index 100% rename from mcp/src/transform/transformer.rs rename to crates/mcp/src/transform/transformer.rs diff --git a/mcp/src/transform/types.rs b/crates/mcp/src/transform/types.rs similarity index 100% rename from mcp/src/transform/types.rs rename to crates/mcp/src/transform/types.rs diff --git a/mesh/Cargo.toml b/crates/mesh/Cargo.toml similarity index 100% rename from mesh/Cargo.toml rename to crates/mesh/Cargo.toml diff --git a/mesh/build.rs b/crates/mesh/build.rs similarity index 100% rename from mesh/build.rs rename to crates/mesh/build.rs diff --git a/mesh/src/README.md b/crates/mesh/src/README.md similarity index 100% rename from mesh/src/README.md rename to crates/mesh/src/README.md diff --git a/mesh/src/consistent_hash.rs b/crates/mesh/src/consistent_hash.rs similarity index 100% rename from mesh/src/consistent_hash.rs rename to crates/mesh/src/consistent_hash.rs diff --git a/mesh/src/controller.rs b/crates/mesh/src/controller.rs similarity index 100% rename from mesh/src/controller.rs rename to crates/mesh/src/controller.rs diff --git a/mesh/src/crdt_kv/crdt.rs b/crates/mesh/src/crdt_kv/crdt.rs similarity index 100% rename from mesh/src/crdt_kv/crdt.rs rename to crates/mesh/src/crdt_kv/crdt.rs diff --git a/mesh/src/crdt_kv/kv_store.rs b/crates/mesh/src/crdt_kv/kv_store.rs similarity index 100% rename from mesh/src/crdt_kv/kv_store.rs rename to crates/mesh/src/crdt_kv/kv_store.rs diff --git a/mesh/src/crdt_kv/mod.rs b/crates/mesh/src/crdt_kv/mod.rs similarity index 100% rename from mesh/src/crdt_kv/mod.rs rename to crates/mesh/src/crdt_kv/mod.rs diff --git a/mesh/src/crdt_kv/operation.rs b/crates/mesh/src/crdt_kv/operation.rs similarity index 100% rename from mesh/src/crdt_kv/operation.rs rename to crates/mesh/src/crdt_kv/operation.rs diff --git a/mesh/src/crdt_kv/replica.rs b/crates/mesh/src/crdt_kv/replica.rs similarity index 100% rename from mesh/src/crdt_kv/replica.rs rename to crates/mesh/src/crdt_kv/replica.rs diff --git a/mesh/src/crdt_kv/tests.rs b/crates/mesh/src/crdt_kv/tests.rs similarity index 100% rename from mesh/src/crdt_kv/tests.rs rename to crates/mesh/src/crdt_kv/tests.rs diff --git a/mesh/src/flow_control.rs b/crates/mesh/src/flow_control.rs similarity index 100% rename from mesh/src/flow_control.rs rename to crates/mesh/src/flow_control.rs diff --git a/mesh/src/incremental.rs b/crates/mesh/src/incremental.rs similarity index 100% rename from mesh/src/incremental.rs rename to crates/mesh/src/incremental.rs diff --git a/mesh/src/lib.rs b/crates/mesh/src/lib.rs similarity index 100% rename from mesh/src/lib.rs rename to crates/mesh/src/lib.rs diff --git a/mesh/src/metrics.rs b/crates/mesh/src/metrics.rs similarity index 100% rename from mesh/src/metrics.rs rename to crates/mesh/src/metrics.rs diff --git a/mesh/src/mtls.rs b/crates/mesh/src/mtls.rs similarity index 100% rename from mesh/src/mtls.rs rename to crates/mesh/src/mtls.rs diff --git a/mesh/src/node_state_machine.rs b/crates/mesh/src/node_state_machine.rs similarity index 100% rename from mesh/src/node_state_machine.rs rename to crates/mesh/src/node_state_machine.rs diff --git a/mesh/src/partition.rs b/crates/mesh/src/partition.rs similarity index 100% rename from mesh/src/partition.rs rename to crates/mesh/src/partition.rs diff --git a/mesh/src/ping_server.rs b/crates/mesh/src/ping_server.rs similarity index 100% rename from mesh/src/ping_server.rs rename to crates/mesh/src/ping_server.rs diff --git a/mesh/src/proto/gossip.proto b/crates/mesh/src/proto/gossip.proto similarity index 100% rename from mesh/src/proto/gossip.proto rename to crates/mesh/src/proto/gossip.proto diff --git a/mesh/src/rate_limit_window.rs b/crates/mesh/src/rate_limit_window.rs similarity index 100% rename from mesh/src/rate_limit_window.rs rename to crates/mesh/src/rate_limit_window.rs diff --git a/mesh/src/service.rs b/crates/mesh/src/service.rs similarity index 100% rename from mesh/src/service.rs rename to crates/mesh/src/service.rs diff --git a/mesh/src/stores.rs b/crates/mesh/src/stores.rs similarity index 100% rename from mesh/src/stores.rs rename to crates/mesh/src/stores.rs diff --git a/mesh/src/sync.rs b/crates/mesh/src/sync.rs similarity index 100% rename from mesh/src/sync.rs rename to crates/mesh/src/sync.rs diff --git a/mesh/src/tests/comprehensive.rs b/crates/mesh/src/tests/comprehensive.rs similarity index 100% rename from mesh/src/tests/comprehensive.rs rename to crates/mesh/src/tests/comprehensive.rs diff --git a/mesh/src/tests/mod.rs b/crates/mesh/src/tests/mod.rs similarity index 100% rename from mesh/src/tests/mod.rs rename to crates/mesh/src/tests/mod.rs diff --git a/mesh/src/tests/test_utils.rs b/crates/mesh/src/tests/test_utils.rs similarity index 100% rename from mesh/src/tests/test_utils.rs rename to crates/mesh/src/tests/test_utils.rs diff --git a/mesh/src/topology.rs b/crates/mesh/src/topology.rs similarity index 100% rename from mesh/src/topology.rs rename to crates/mesh/src/topology.rs diff --git a/mesh/src/tree_ops.rs b/crates/mesh/src/tree_ops.rs similarity index 100% rename from mesh/src/tree_ops.rs rename to crates/mesh/src/tree_ops.rs diff --git a/multimodal/Cargo.toml b/crates/multimodal/Cargo.toml similarity index 100% rename from multimodal/Cargo.toml rename to crates/multimodal/Cargo.toml diff --git a/multimodal/scripts/generate_vision_golden.py b/crates/multimodal/scripts/generate_vision_golden.py similarity index 96% rename from multimodal/scripts/generate_vision_golden.py rename to crates/multimodal/scripts/generate_vision_golden.py index 0ea960068a..a3f29a653f 100755 --- a/multimodal/scripts/generate_vision_golden.py +++ b/crates/multimodal/scripts/generate_vision_golden.py @@ -6,13 +6,14 @@ Usage: # Generate all golden outputs - python multimodal/scripts/generate_vision_golden.py + python crates/multimodal/scripts/generate_vision_golden.py # Generate for specific model - python multimodal/scripts/generate_vision_golden.py --model llava + python crates/multimodal/scripts/generate_vision_golden.py --model llava # Use specific image - python multimodal/scripts/generate_vision_golden.py --image multimodal/tests/fixtures/images/square.jpg + python crates/multimodal/scripts/generate_vision_golden.py \ + --image crates/multimodal/tests/fixtures/images/square.jpg """ import argparse @@ -75,16 +76,16 @@ # Default test images DEFAULT_IMAGES = [ - "multimodal/tests/fixtures/images/square.jpg", - "multimodal/tests/fixtures/images/tall.jpg", - "multimodal/tests/fixtures/images/wide.jpg", - "multimodal/tests/fixtures/images/small.jpg", - "multimodal/tests/fixtures/images/tiny.jpg", - "multimodal/tests/fixtures/images/very_tall.jpg", - "multimodal/tests/fixtures/images/very_wide.jpg", - "multimodal/tests/fixtures/images/large.jpg", - "multimodal/tests/fixtures/images/odd_dims.jpg", - "multimodal/tests/fixtures/images/grayscale.jpg", + "crates/multimodal/tests/fixtures/images/square.jpg", + "crates/multimodal/tests/fixtures/images/tall.jpg", + "crates/multimodal/tests/fixtures/images/wide.jpg", + "crates/multimodal/tests/fixtures/images/small.jpg", + "crates/multimodal/tests/fixtures/images/tiny.jpg", + "crates/multimodal/tests/fixtures/images/very_tall.jpg", + "crates/multimodal/tests/fixtures/images/very_wide.jpg", + "crates/multimodal/tests/fixtures/images/large.jpg", + "crates/multimodal/tests/fixtures/images/odd_dims.jpg", + "crates/multimodal/tests/fixtures/images/grayscale.jpg", ] @@ -655,7 +656,7 @@ def main(): parser.add_argument( "--output-dir", "-o", - default="multimodal/tests/fixtures/golden", + default="crates/multimodal/tests/fixtures/golden", help="Output directory for golden files", ) args = parser.parse_args() diff --git a/multimodal/src/error.rs b/crates/multimodal/src/error.rs similarity index 100% rename from multimodal/src/error.rs rename to crates/multimodal/src/error.rs diff --git a/multimodal/src/hasher.rs b/crates/multimodal/src/hasher.rs similarity index 100% rename from multimodal/src/hasher.rs rename to crates/multimodal/src/hasher.rs diff --git a/multimodal/src/lib.rs b/crates/multimodal/src/lib.rs similarity index 100% rename from multimodal/src/lib.rs rename to crates/multimodal/src/lib.rs diff --git a/multimodal/src/media.rs b/crates/multimodal/src/media.rs similarity index 100% rename from multimodal/src/media.rs rename to crates/multimodal/src/media.rs diff --git a/multimodal/src/registry/llama4.rs b/crates/multimodal/src/registry/llama4.rs similarity index 100% rename from multimodal/src/registry/llama4.rs rename to crates/multimodal/src/registry/llama4.rs diff --git a/multimodal/src/registry/llava.rs b/crates/multimodal/src/registry/llava.rs similarity index 100% rename from multimodal/src/registry/llava.rs rename to crates/multimodal/src/registry/llava.rs diff --git a/multimodal/src/registry/mod.rs b/crates/multimodal/src/registry/mod.rs similarity index 100% rename from multimodal/src/registry/mod.rs rename to crates/multimodal/src/registry/mod.rs diff --git a/multimodal/src/registry/phi3_v.rs b/crates/multimodal/src/registry/phi3_v.rs similarity index 100% rename from multimodal/src/registry/phi3_v.rs rename to crates/multimodal/src/registry/phi3_v.rs diff --git a/multimodal/src/registry/qwen3_vl.rs b/crates/multimodal/src/registry/qwen3_vl.rs similarity index 100% rename from multimodal/src/registry/qwen3_vl.rs rename to crates/multimodal/src/registry/qwen3_vl.rs diff --git a/multimodal/src/registry/qwen_vl.rs b/crates/multimodal/src/registry/qwen_vl.rs similarity index 100% rename from multimodal/src/registry/qwen_vl.rs rename to crates/multimodal/src/registry/qwen_vl.rs diff --git a/multimodal/src/registry/traits.rs b/crates/multimodal/src/registry/traits.rs similarity index 100% rename from multimodal/src/registry/traits.rs rename to crates/multimodal/src/registry/traits.rs diff --git a/multimodal/src/tracker.rs b/crates/multimodal/src/tracker.rs similarity index 100% rename from multimodal/src/tracker.rs rename to crates/multimodal/src/tracker.rs diff --git a/multimodal/src/types.rs b/crates/multimodal/src/types.rs similarity index 100% rename from multimodal/src/types.rs rename to crates/multimodal/src/types.rs diff --git a/multimodal/src/vision/image_processor.rs b/crates/multimodal/src/vision/image_processor.rs similarity index 100% rename from multimodal/src/vision/image_processor.rs rename to crates/multimodal/src/vision/image_processor.rs diff --git a/multimodal/src/vision/mod.rs b/crates/multimodal/src/vision/mod.rs similarity index 100% rename from multimodal/src/vision/mod.rs rename to crates/multimodal/src/vision/mod.rs diff --git a/multimodal/src/vision/preprocessor_config.rs b/crates/multimodal/src/vision/preprocessor_config.rs similarity index 100% rename from multimodal/src/vision/preprocessor_config.rs rename to crates/multimodal/src/vision/preprocessor_config.rs diff --git a/multimodal/src/vision/processors/llama4_vision.rs b/crates/multimodal/src/vision/processors/llama4_vision.rs similarity index 100% rename from multimodal/src/vision/processors/llama4_vision.rs rename to crates/multimodal/src/vision/processors/llama4_vision.rs diff --git a/multimodal/src/vision/processors/llava.rs b/crates/multimodal/src/vision/processors/llava.rs similarity index 100% rename from multimodal/src/vision/processors/llava.rs rename to crates/multimodal/src/vision/processors/llava.rs diff --git a/multimodal/src/vision/processors/mod.rs b/crates/multimodal/src/vision/processors/mod.rs similarity index 100% rename from multimodal/src/vision/processors/mod.rs rename to crates/multimodal/src/vision/processors/mod.rs diff --git a/multimodal/src/vision/processors/phi3_vision.rs b/crates/multimodal/src/vision/processors/phi3_vision.rs similarity index 100% rename from multimodal/src/vision/processors/phi3_vision.rs rename to crates/multimodal/src/vision/processors/phi3_vision.rs diff --git a/multimodal/src/vision/processors/phi4_vision.rs b/crates/multimodal/src/vision/processors/phi4_vision.rs similarity index 100% rename from multimodal/src/vision/processors/phi4_vision.rs rename to crates/multimodal/src/vision/processors/phi4_vision.rs diff --git a/multimodal/src/vision/processors/pixtral.rs b/crates/multimodal/src/vision/processors/pixtral.rs similarity index 100% rename from multimodal/src/vision/processors/pixtral.rs rename to crates/multimodal/src/vision/processors/pixtral.rs diff --git a/multimodal/src/vision/processors/qwen2_vl.rs b/crates/multimodal/src/vision/processors/qwen2_vl.rs similarity index 100% rename from multimodal/src/vision/processors/qwen2_vl.rs rename to crates/multimodal/src/vision/processors/qwen2_vl.rs diff --git a/multimodal/src/vision/processors/qwen3_vl.rs b/crates/multimodal/src/vision/processors/qwen3_vl.rs similarity index 100% rename from multimodal/src/vision/processors/qwen3_vl.rs rename to crates/multimodal/src/vision/processors/qwen3_vl.rs diff --git a/multimodal/src/vision/processors/qwen_vl_base.rs b/crates/multimodal/src/vision/processors/qwen_vl_base.rs similarity index 100% rename from multimodal/src/vision/processors/qwen_vl_base.rs rename to crates/multimodal/src/vision/processors/qwen_vl_base.rs diff --git a/multimodal/src/vision/transforms.rs b/crates/multimodal/src/vision/transforms.rs similarity index 100% rename from multimodal/src/vision/transforms.rs rename to crates/multimodal/src/vision/transforms.rs diff --git a/multimodal/tests/fixtures/images/grayscale.jpg b/crates/multimodal/tests/fixtures/images/grayscale.jpg similarity index 100% rename from multimodal/tests/fixtures/images/grayscale.jpg rename to crates/multimodal/tests/fixtures/images/grayscale.jpg diff --git a/multimodal/tests/fixtures/images/large.jpg b/crates/multimodal/tests/fixtures/images/large.jpg similarity index 100% rename from multimodal/tests/fixtures/images/large.jpg rename to crates/multimodal/tests/fixtures/images/large.jpg diff --git a/multimodal/tests/fixtures/images/odd_dims.jpg b/crates/multimodal/tests/fixtures/images/odd_dims.jpg similarity index 100% rename from multimodal/tests/fixtures/images/odd_dims.jpg rename to crates/multimodal/tests/fixtures/images/odd_dims.jpg diff --git a/multimodal/tests/fixtures/images/small.jpg b/crates/multimodal/tests/fixtures/images/small.jpg similarity index 100% rename from multimodal/tests/fixtures/images/small.jpg rename to crates/multimodal/tests/fixtures/images/small.jpg diff --git a/multimodal/tests/fixtures/images/square.jpg b/crates/multimodal/tests/fixtures/images/square.jpg similarity index 100% rename from multimodal/tests/fixtures/images/square.jpg rename to crates/multimodal/tests/fixtures/images/square.jpg diff --git a/multimodal/tests/fixtures/images/tall.jpg b/crates/multimodal/tests/fixtures/images/tall.jpg similarity index 100% rename from multimodal/tests/fixtures/images/tall.jpg rename to crates/multimodal/tests/fixtures/images/tall.jpg diff --git a/multimodal/tests/fixtures/images/tiny.jpg b/crates/multimodal/tests/fixtures/images/tiny.jpg similarity index 100% rename from multimodal/tests/fixtures/images/tiny.jpg rename to crates/multimodal/tests/fixtures/images/tiny.jpg diff --git a/multimodal/tests/fixtures/images/very_tall.jpg b/crates/multimodal/tests/fixtures/images/very_tall.jpg similarity index 100% rename from multimodal/tests/fixtures/images/very_tall.jpg rename to crates/multimodal/tests/fixtures/images/very_tall.jpg diff --git a/multimodal/tests/fixtures/images/very_wide.jpg b/crates/multimodal/tests/fixtures/images/very_wide.jpg similarity index 100% rename from multimodal/tests/fixtures/images/very_wide.jpg rename to crates/multimodal/tests/fixtures/images/very_wide.jpg diff --git a/multimodal/tests/fixtures/images/wide.jpg b/crates/multimodal/tests/fixtures/images/wide.jpg similarity index 100% rename from multimodal/tests/fixtures/images/wide.jpg rename to crates/multimodal/tests/fixtures/images/wide.jpg diff --git a/multimodal/tests/multimodal_tracker_test.rs b/crates/multimodal/tests/multimodal_tracker_test.rs similarity index 100% rename from multimodal/tests/multimodal_tracker_test.rs rename to crates/multimodal/tests/multimodal_tracker_test.rs diff --git a/multimodal/tests/vision_golden_tests.rs b/crates/multimodal/tests/vision_golden_tests.rs similarity index 95% rename from multimodal/tests/vision_golden_tests.rs rename to crates/multimodal/tests/vision_golden_tests.rs index 53dc066a6b..cd6e500fee 100644 --- a/multimodal/tests/vision_golden_tests.rs +++ b/crates/multimodal/tests/vision_golden_tests.rs @@ -11,7 +11,7 @@ //! //! To regenerate golden outputs: //! ```bash -//! python multimodal/scripts/generate_vision_golden.py +//! python crates/multimodal/scripts/generate_vision_golden.py //! ``` #![expect( @@ -128,13 +128,13 @@ fn load_golden_num_tokens(path: &Path) -> usize { /// * `mode` - Either "llava" (standard CLIP) or "llava_pad" (expand-to-square mode) /// * `image_name` - Name of the test image (e.g., "square", "tall", "wide", "small") fn run_golden_test(mode: &str, image_name: &str) { - let golden_dir = Path::new("multimodal/tests/fixtures/golden").join(mode); + let golden_dir = Path::new("crates/multimodal/tests/fixtures/golden").join(mode); let image_path = - Path::new("multimodal/tests/fixtures/images").join(format!("{image_name}.jpg")); + Path::new("crates/multimodal/tests/fixtures/images").join(format!("{image_name}.jpg")); if !golden_dir.exists() || !image_path.exists() { eprintln!("Golden test fixtures for {mode}/{image_name} not found, skipping test"); - eprintln!("Run: python multimodal/scripts/generate_vision_golden.py"); + eprintln!("Run: python crates/multimodal/scripts/generate_vision_golden.py"); return; } @@ -279,7 +279,7 @@ fn test_llava_pad_golden_grayscale() { #[test] fn test_llava_token_count() { - let golden_dir = Path::new("multimodal/tests/fixtures/golden/llava"); + let golden_dir = Path::new("crates/multimodal/tests/fixtures/golden/llava"); if !golden_dir.exists() { eprintln!("Golden test fixtures not found, skipping test"); @@ -326,13 +326,15 @@ fn load_golden_qwen2_vl_pixels(path: &Path) -> (Vec, (usize, usize)) { /// 2. num_tokens calculation is correct /// 3. Pixel values match after reshaping to patch format fn run_qwen2_vl_golden_test(image_name: &str) { - let golden_dir = Path::new("multimodal/tests/fixtures/golden/qwen2_vl"); + let golden_dir = Path::new("crates/multimodal/tests/fixtures/golden/qwen2_vl"); let image_path = - Path::new("multimodal/tests/fixtures/images").join(format!("{image_name}.jpg")); + Path::new("crates/multimodal/tests/fixtures/images").join(format!("{image_name}.jpg")); if !golden_dir.exists() || !image_path.exists() { eprintln!("Golden test fixtures for qwen2_vl/{image_name} not found, skipping test"); - eprintln!("Run: python multimodal/scripts/generate_vision_golden.py --model qwen2_vl"); + eprintln!( + "Run: python crates/multimodal/scripts/generate_vision_golden.py --model qwen2_vl" + ); return; } @@ -475,13 +477,15 @@ fn test_qwen2_vl_golden_grayscale() { /// - factor: 32 (vs 28) /// - normalization: [0.5, 0.5, 0.5] (vs CLIP) fn run_qwen3_vl_golden_test(image_name: &str) { - let golden_dir = Path::new("multimodal/tests/fixtures/golden/qwen3_vl"); + let golden_dir = Path::new("crates/multimodal/tests/fixtures/golden/qwen3_vl"); let image_path = - Path::new("multimodal/tests/fixtures/images").join(format!("{image_name}.jpg")); + Path::new("crates/multimodal/tests/fixtures/images").join(format!("{image_name}.jpg")); if !golden_dir.exists() || !image_path.exists() { eprintln!("Golden test fixtures for qwen3_vl/{image_name} not found, skipping test"); - eprintln!("Run: python multimodal/scripts/generate_vision_golden.py --model qwen3_vl"); + eprintln!( + "Run: python crates/multimodal/scripts/generate_vision_golden.py --model qwen3_vl" + ); return; } @@ -735,13 +739,15 @@ fn find_max_diff_location_5d( /// 3. num_img_tokens matches HuggingFace output /// 4. Pixel values match within tolerance fn run_phi3_vision_golden_test(image_name: &str) { - let golden_dir = Path::new("multimodal/tests/fixtures/golden/phi3_vision"); + let golden_dir = Path::new("crates/multimodal/tests/fixtures/golden/phi3_vision"); let image_path = - Path::new("multimodal/tests/fixtures/images").join(format!("{image_name}.jpg")); + Path::new("crates/multimodal/tests/fixtures/images").join(format!("{image_name}.jpg")); if !golden_dir.exists() || !image_path.exists() { eprintln!("Golden test fixtures for phi3_vision/{image_name} not found, skipping test"); - eprintln!("Run: python multimodal/scripts/generate_vision_golden.py --model phi3_vision"); + eprintln!( + "Run: python crates/multimodal/scripts/generate_vision_golden.py --model phi3_vision" + ); return; } @@ -936,13 +942,15 @@ fn load_phi4_image_sizes(path: &Path) -> Vec<(i64, i64)> { /// - Normalization: [0.5, 0.5, 0.5] (vs CLIP) /// - Default dynamic_hd: 36 (vs 16) fn run_phi4_vision_golden_test(image_name: &str) { - let golden_dir = Path::new("multimodal/tests/fixtures/golden/phi4_vision"); + let golden_dir = Path::new("crates/multimodal/tests/fixtures/golden/phi4_vision"); let image_path = - Path::new("multimodal/tests/fixtures/images").join(format!("{image_name}.jpg")); + Path::new("crates/multimodal/tests/fixtures/images").join(format!("{image_name}.jpg")); if !golden_dir.exists() || !image_path.exists() { eprintln!("Golden test fixtures for phi4_vision/{image_name} not found, skipping test"); - eprintln!("Run: python multimodal/scripts/generate_vision_golden.py --model phi4_vision"); + eprintln!( + "Run: python crates/multimodal/scripts/generate_vision_golden.py --model phi4_vision" + ); return; } @@ -1140,13 +1148,15 @@ fn load_llama4_pixels(path: &Path) -> (Vec, Vec) { /// - Normalization: [0.5, 0.5, 0.5] mean/std /// - Global tile added when num_tiles > 1 fn run_llama4_vision_golden_test(image_name: &str) { - let golden_dir = Path::new("multimodal/tests/fixtures/golden/llama4_vision"); + let golden_dir = Path::new("crates/multimodal/tests/fixtures/golden/llama4_vision"); let image_path = - Path::new("multimodal/tests/fixtures/images").join(format!("{image_name}.jpg")); + Path::new("crates/multimodal/tests/fixtures/images").join(format!("{image_name}.jpg")); if !golden_dir.exists() || !image_path.exists() { eprintln!("Golden test fixtures for llama4_vision/{image_name} not found, skipping test"); - eprintln!("Run: python multimodal/scripts/generate_vision_golden.py --model llama4_vision"); + eprintln!( + "Run: python crates/multimodal/scripts/generate_vision_golden.py --model llama4_vision" + ); return; } @@ -1323,13 +1333,15 @@ fn load_pixtral_image_sizes(path: &Path) -> Vec<(usize, usize)> { /// - Normalization: CLIP mean/std /// - No tiling - single output per image fn run_pixtral_golden_test(image_name: &str) { - let golden_dir = Path::new("multimodal/tests/fixtures/golden/pixtral"); + let golden_dir = Path::new("crates/multimodal/tests/fixtures/golden/pixtral"); let image_path = - Path::new("multimodal/tests/fixtures/images").join(format!("{image_name}.jpg")); + Path::new("crates/multimodal/tests/fixtures/images").join(format!("{image_name}.jpg")); if !golden_dir.exists() || !image_path.exists() { eprintln!("Golden test fixtures for pixtral/{image_name} not found, skipping test"); - eprintln!("Run: python multimodal/scripts/generate_vision_golden.py --model pixtral"); + eprintln!( + "Run: python crates/multimodal/scripts/generate_vision_golden.py --model pixtral" + ); return; } diff --git a/protocols/Cargo.toml b/crates/protocols/Cargo.toml similarity index 100% rename from protocols/Cargo.toml rename to crates/protocols/Cargo.toml diff --git a/protocols/src/builders/chat/mod.rs b/crates/protocols/src/builders/chat/mod.rs similarity index 100% rename from protocols/src/builders/chat/mod.rs rename to crates/protocols/src/builders/chat/mod.rs diff --git a/protocols/src/builders/chat/response.rs b/crates/protocols/src/builders/chat/response.rs similarity index 100% rename from protocols/src/builders/chat/response.rs rename to crates/protocols/src/builders/chat/response.rs diff --git a/protocols/src/builders/chat/stream_response.rs b/crates/protocols/src/builders/chat/stream_response.rs similarity index 100% rename from protocols/src/builders/chat/stream_response.rs rename to crates/protocols/src/builders/chat/stream_response.rs diff --git a/protocols/src/builders/mod.rs b/crates/protocols/src/builders/mod.rs similarity index 100% rename from protocols/src/builders/mod.rs rename to crates/protocols/src/builders/mod.rs diff --git a/protocols/src/builders/realtime/client_event.rs b/crates/protocols/src/builders/realtime/client_event.rs similarity index 100% rename from protocols/src/builders/realtime/client_event.rs rename to crates/protocols/src/builders/realtime/client_event.rs diff --git a/protocols/src/builders/realtime/mod.rs b/crates/protocols/src/builders/realtime/mod.rs similarity index 100% rename from protocols/src/builders/realtime/mod.rs rename to crates/protocols/src/builders/realtime/mod.rs diff --git a/protocols/src/builders/realtime/response.rs b/crates/protocols/src/builders/realtime/response.rs similarity index 100% rename from protocols/src/builders/realtime/response.rs rename to crates/protocols/src/builders/realtime/response.rs diff --git a/protocols/src/builders/realtime/server_event.rs b/crates/protocols/src/builders/realtime/server_event.rs similarity index 100% rename from protocols/src/builders/realtime/server_event.rs rename to crates/protocols/src/builders/realtime/server_event.rs diff --git a/protocols/src/builders/responses/mod.rs b/crates/protocols/src/builders/responses/mod.rs similarity index 100% rename from protocols/src/builders/responses/mod.rs rename to crates/protocols/src/builders/responses/mod.rs diff --git a/protocols/src/builders/responses/response.rs b/crates/protocols/src/builders/responses/response.rs similarity index 100% rename from protocols/src/builders/responses/response.rs rename to crates/protocols/src/builders/responses/response.rs diff --git a/protocols/src/chat.rs b/crates/protocols/src/chat.rs similarity index 100% rename from protocols/src/chat.rs rename to crates/protocols/src/chat.rs diff --git a/protocols/src/classify.rs b/crates/protocols/src/classify.rs similarity index 100% rename from protocols/src/classify.rs rename to crates/protocols/src/classify.rs diff --git a/protocols/src/common.rs b/crates/protocols/src/common.rs similarity index 100% rename from protocols/src/common.rs rename to crates/protocols/src/common.rs diff --git a/protocols/src/completion.rs b/crates/protocols/src/completion.rs similarity index 100% rename from protocols/src/completion.rs rename to crates/protocols/src/completion.rs diff --git a/protocols/src/embedding.rs b/crates/protocols/src/embedding.rs similarity index 100% rename from protocols/src/embedding.rs rename to crates/protocols/src/embedding.rs diff --git a/protocols/src/event_types.rs b/crates/protocols/src/event_types.rs similarity index 100% rename from protocols/src/event_types.rs rename to crates/protocols/src/event_types.rs diff --git a/protocols/src/generate.rs b/crates/protocols/src/generate.rs similarity index 100% rename from protocols/src/generate.rs rename to crates/protocols/src/generate.rs diff --git a/protocols/src/interactions.rs b/crates/protocols/src/interactions.rs similarity index 100% rename from protocols/src/interactions.rs rename to crates/protocols/src/interactions.rs diff --git a/protocols/src/lib.rs b/crates/protocols/src/lib.rs similarity index 100% rename from protocols/src/lib.rs rename to crates/protocols/src/lib.rs diff --git a/protocols/src/messages.rs b/crates/protocols/src/messages.rs similarity index 100% rename from protocols/src/messages.rs rename to crates/protocols/src/messages.rs diff --git a/protocols/src/model_card.rs b/crates/protocols/src/model_card.rs similarity index 100% rename from protocols/src/model_card.rs rename to crates/protocols/src/model_card.rs diff --git a/protocols/src/model_type.rs b/crates/protocols/src/model_type.rs similarity index 100% rename from protocols/src/model_type.rs rename to crates/protocols/src/model_type.rs diff --git a/protocols/src/parser.rs b/crates/protocols/src/parser.rs similarity index 100% rename from protocols/src/parser.rs rename to crates/protocols/src/parser.rs diff --git a/protocols/src/realtime_conversation.rs b/crates/protocols/src/realtime_conversation.rs similarity index 100% rename from protocols/src/realtime_conversation.rs rename to crates/protocols/src/realtime_conversation.rs diff --git a/protocols/src/realtime_events.rs b/crates/protocols/src/realtime_events.rs similarity index 100% rename from protocols/src/realtime_events.rs rename to crates/protocols/src/realtime_events.rs diff --git a/protocols/src/realtime_response.rs b/crates/protocols/src/realtime_response.rs similarity index 100% rename from protocols/src/realtime_response.rs rename to crates/protocols/src/realtime_response.rs diff --git a/protocols/src/realtime_session.rs b/crates/protocols/src/realtime_session.rs similarity index 100% rename from protocols/src/realtime_session.rs rename to crates/protocols/src/realtime_session.rs diff --git a/protocols/src/rerank.rs b/crates/protocols/src/rerank.rs similarity index 100% rename from protocols/src/rerank.rs rename to crates/protocols/src/rerank.rs diff --git a/protocols/src/responses.rs b/crates/protocols/src/responses.rs similarity index 100% rename from protocols/src/responses.rs rename to crates/protocols/src/responses.rs diff --git a/protocols/src/sampling_params.rs b/crates/protocols/src/sampling_params.rs similarity index 100% rename from protocols/src/sampling_params.rs rename to crates/protocols/src/sampling_params.rs diff --git a/protocols/src/tokenize.rs b/crates/protocols/src/tokenize.rs similarity index 100% rename from protocols/src/tokenize.rs rename to crates/protocols/src/tokenize.rs diff --git a/protocols/src/validated.rs b/crates/protocols/src/validated.rs similarity index 100% rename from protocols/src/validated.rs rename to crates/protocols/src/validated.rs diff --git a/protocols/src/worker.rs b/crates/protocols/src/worker.rs similarity index 100% rename from protocols/src/worker.rs rename to crates/protocols/src/worker.rs diff --git a/reasoning_parser/Cargo.toml b/crates/reasoning_parser/Cargo.toml similarity index 100% rename from reasoning_parser/Cargo.toml rename to crates/reasoning_parser/Cargo.toml diff --git a/reasoning_parser/README.md b/crates/reasoning_parser/README.md similarity index 100% rename from reasoning_parser/README.md rename to crates/reasoning_parser/README.md diff --git a/reasoning_parser/src/README.md b/crates/reasoning_parser/src/README.md similarity index 100% rename from reasoning_parser/src/README.md rename to crates/reasoning_parser/src/README.md diff --git a/reasoning_parser/src/factory.rs b/crates/reasoning_parser/src/factory.rs similarity index 100% rename from reasoning_parser/src/factory.rs rename to crates/reasoning_parser/src/factory.rs diff --git a/reasoning_parser/src/lib.rs b/crates/reasoning_parser/src/lib.rs similarity index 100% rename from reasoning_parser/src/lib.rs rename to crates/reasoning_parser/src/lib.rs diff --git a/reasoning_parser/src/parsers/base.rs b/crates/reasoning_parser/src/parsers/base.rs similarity index 100% rename from reasoning_parser/src/parsers/base.rs rename to crates/reasoning_parser/src/parsers/base.rs diff --git a/reasoning_parser/src/parsers/cohere_cmd.rs b/crates/reasoning_parser/src/parsers/cohere_cmd.rs similarity index 100% rename from reasoning_parser/src/parsers/cohere_cmd.rs rename to crates/reasoning_parser/src/parsers/cohere_cmd.rs diff --git a/reasoning_parser/src/parsers/deepseek_r1.rs b/crates/reasoning_parser/src/parsers/deepseek_r1.rs similarity index 100% rename from reasoning_parser/src/parsers/deepseek_r1.rs rename to crates/reasoning_parser/src/parsers/deepseek_r1.rs diff --git a/reasoning_parser/src/parsers/glm45.rs b/crates/reasoning_parser/src/parsers/glm45.rs similarity index 100% rename from reasoning_parser/src/parsers/glm45.rs rename to crates/reasoning_parser/src/parsers/glm45.rs diff --git a/reasoning_parser/src/parsers/kimi.rs b/crates/reasoning_parser/src/parsers/kimi.rs similarity index 100% rename from reasoning_parser/src/parsers/kimi.rs rename to crates/reasoning_parser/src/parsers/kimi.rs diff --git a/reasoning_parser/src/parsers/minimax.rs b/crates/reasoning_parser/src/parsers/minimax.rs similarity index 100% rename from reasoning_parser/src/parsers/minimax.rs rename to crates/reasoning_parser/src/parsers/minimax.rs diff --git a/reasoning_parser/src/parsers/mod.rs b/crates/reasoning_parser/src/parsers/mod.rs similarity index 100% rename from reasoning_parser/src/parsers/mod.rs rename to crates/reasoning_parser/src/parsers/mod.rs diff --git a/reasoning_parser/src/parsers/nano_v3.rs b/crates/reasoning_parser/src/parsers/nano_v3.rs similarity index 100% rename from reasoning_parser/src/parsers/nano_v3.rs rename to crates/reasoning_parser/src/parsers/nano_v3.rs diff --git a/reasoning_parser/src/parsers/qwen3.rs b/crates/reasoning_parser/src/parsers/qwen3.rs similarity index 100% rename from reasoning_parser/src/parsers/qwen3.rs rename to crates/reasoning_parser/src/parsers/qwen3.rs diff --git a/reasoning_parser/src/parsers/step3.rs b/crates/reasoning_parser/src/parsers/step3.rs similarity index 100% rename from reasoning_parser/src/parsers/step3.rs rename to crates/reasoning_parser/src/parsers/step3.rs diff --git a/reasoning_parser/src/traits.rs b/crates/reasoning_parser/src/traits.rs similarity index 100% rename from reasoning_parser/src/traits.rs rename to crates/reasoning_parser/src/traits.rs diff --git a/tokenizer/Cargo.toml b/crates/tokenizer/Cargo.toml similarity index 100% rename from tokenizer/Cargo.toml rename to crates/tokenizer/Cargo.toml diff --git a/tokenizer/README.md b/crates/tokenizer/README.md similarity index 100% rename from tokenizer/README.md rename to crates/tokenizer/README.md diff --git a/tokenizer/benches/stop_sequence_search.rs b/crates/tokenizer/benches/stop_sequence_search.rs similarity index 100% rename from tokenizer/benches/stop_sequence_search.rs rename to crates/tokenizer/benches/stop_sequence_search.rs diff --git a/tokenizer/src/cache/fingerprint.rs b/crates/tokenizer/src/cache/fingerprint.rs similarity index 100% rename from tokenizer/src/cache/fingerprint.rs rename to crates/tokenizer/src/cache/fingerprint.rs diff --git a/tokenizer/src/cache/l0.rs b/crates/tokenizer/src/cache/l0.rs similarity index 100% rename from tokenizer/src/cache/l0.rs rename to crates/tokenizer/src/cache/l0.rs diff --git a/tokenizer/src/cache/l1.rs b/crates/tokenizer/src/cache/l1.rs similarity index 100% rename from tokenizer/src/cache/l1.rs rename to crates/tokenizer/src/cache/l1.rs diff --git a/tokenizer/src/cache/mod.rs b/crates/tokenizer/src/cache/mod.rs similarity index 100% rename from tokenizer/src/cache/mod.rs rename to crates/tokenizer/src/cache/mod.rs diff --git a/tokenizer/src/chat_template.rs b/crates/tokenizer/src/chat_template.rs similarity index 100% rename from tokenizer/src/chat_template.rs rename to crates/tokenizer/src/chat_template.rs diff --git a/tokenizer/src/factory.rs b/crates/tokenizer/src/factory.rs similarity index 100% rename from tokenizer/src/factory.rs rename to crates/tokenizer/src/factory.rs diff --git a/tokenizer/src/hub.rs b/crates/tokenizer/src/hub.rs similarity index 100% rename from tokenizer/src/hub.rs rename to crates/tokenizer/src/hub.rs diff --git a/tokenizer/src/huggingface.rs b/crates/tokenizer/src/huggingface.rs similarity index 100% rename from tokenizer/src/huggingface.rs rename to crates/tokenizer/src/huggingface.rs diff --git a/tokenizer/src/lib.rs b/crates/tokenizer/src/lib.rs similarity index 100% rename from tokenizer/src/lib.rs rename to crates/tokenizer/src/lib.rs diff --git a/tokenizer/src/mock.rs b/crates/tokenizer/src/mock.rs similarity index 100% rename from tokenizer/src/mock.rs rename to crates/tokenizer/src/mock.rs diff --git a/tokenizer/src/registry.rs b/crates/tokenizer/src/registry.rs similarity index 100% rename from tokenizer/src/registry.rs rename to crates/tokenizer/src/registry.rs diff --git a/tokenizer/src/sequence.rs b/crates/tokenizer/src/sequence.rs similarity index 100% rename from tokenizer/src/sequence.rs rename to crates/tokenizer/src/sequence.rs diff --git a/tokenizer/src/stop.rs b/crates/tokenizer/src/stop.rs similarity index 100% rename from tokenizer/src/stop.rs rename to crates/tokenizer/src/stop.rs diff --git a/tokenizer/src/stream.rs b/crates/tokenizer/src/stream.rs similarity index 100% rename from tokenizer/src/stream.rs rename to crates/tokenizer/src/stream.rs diff --git a/tokenizer/src/tests.rs b/crates/tokenizer/src/tests.rs similarity index 100% rename from tokenizer/src/tests.rs rename to crates/tokenizer/src/tests.rs diff --git a/tokenizer/src/tiktoken.rs b/crates/tokenizer/src/tiktoken.rs similarity index 100% rename from tokenizer/src/tiktoken.rs rename to crates/tokenizer/src/tiktoken.rs diff --git a/tokenizer/src/traits.rs b/crates/tokenizer/src/traits.rs similarity index 100% rename from tokenizer/src/traits.rs rename to crates/tokenizer/src/traits.rs diff --git a/tokenizer/tests/chat_template_format_detection.rs b/crates/tokenizer/tests/chat_template_format_detection.rs similarity index 100% rename from tokenizer/tests/chat_template_format_detection.rs rename to crates/tokenizer/tests/chat_template_format_detection.rs diff --git a/tokenizer/tests/chat_template_integration.rs b/crates/tokenizer/tests/chat_template_integration.rs similarity index 100% rename from tokenizer/tests/chat_template_integration.rs rename to crates/tokenizer/tests/chat_template_integration.rs diff --git a/tokenizer/tests/chat_template_loading.rs b/crates/tokenizer/tests/chat_template_loading.rs similarity index 100% rename from tokenizer/tests/chat_template_loading.rs rename to crates/tokenizer/tests/chat_template_loading.rs diff --git a/tokenizer/tests/common/mod.rs b/crates/tokenizer/tests/common/mod.rs similarity index 100% rename from tokenizer/tests/common/mod.rs rename to crates/tokenizer/tests/common/mod.rs diff --git a/tokenizer/tests/tiktoken_integration.rs b/crates/tokenizer/tests/tiktoken_integration.rs similarity index 100% rename from tokenizer/tests/tiktoken_integration.rs rename to crates/tokenizer/tests/tiktoken_integration.rs diff --git a/tokenizer/tests/tokenizer_cache_correctness_test.rs b/crates/tokenizer/tests/tokenizer_cache_correctness_test.rs similarity index 100% rename from tokenizer/tests/tokenizer_cache_correctness_test.rs rename to crates/tokenizer/tests/tokenizer_cache_correctness_test.rs diff --git a/tokenizer/tests/tokenizer_integration.rs b/crates/tokenizer/tests/tokenizer_integration.rs similarity index 100% rename from tokenizer/tests/tokenizer_integration.rs rename to crates/tokenizer/tests/tokenizer_integration.rs diff --git a/tool_parser/Cargo.toml b/crates/tool_parser/Cargo.toml similarity index 100% rename from tool_parser/Cargo.toml rename to crates/tool_parser/Cargo.toml diff --git a/tool_parser/README.md b/crates/tool_parser/README.md similarity index 100% rename from tool_parser/README.md rename to crates/tool_parser/README.md diff --git a/tool_parser/src/errors.rs b/crates/tool_parser/src/errors.rs similarity index 100% rename from tool_parser/src/errors.rs rename to crates/tool_parser/src/errors.rs diff --git a/tool_parser/src/factory.rs b/crates/tool_parser/src/factory.rs similarity index 100% rename from tool_parser/src/factory.rs rename to crates/tool_parser/src/factory.rs diff --git a/tool_parser/src/lib.rs b/crates/tool_parser/src/lib.rs similarity index 100% rename from tool_parser/src/lib.rs rename to crates/tool_parser/src/lib.rs diff --git a/tool_parser/src/parsers/cohere.rs b/crates/tool_parser/src/parsers/cohere.rs similarity index 100% rename from tool_parser/src/parsers/cohere.rs rename to crates/tool_parser/src/parsers/cohere.rs diff --git a/tool_parser/src/parsers/deepseek.rs b/crates/tool_parser/src/parsers/deepseek.rs similarity index 100% rename from tool_parser/src/parsers/deepseek.rs rename to crates/tool_parser/src/parsers/deepseek.rs diff --git a/tool_parser/src/parsers/glm4_moe.rs b/crates/tool_parser/src/parsers/glm4_moe.rs similarity index 100% rename from tool_parser/src/parsers/glm4_moe.rs rename to crates/tool_parser/src/parsers/glm4_moe.rs diff --git a/tool_parser/src/parsers/helpers.rs b/crates/tool_parser/src/parsers/helpers.rs similarity index 100% rename from tool_parser/src/parsers/helpers.rs rename to crates/tool_parser/src/parsers/helpers.rs diff --git a/tool_parser/src/parsers/json.rs b/crates/tool_parser/src/parsers/json.rs similarity index 100% rename from tool_parser/src/parsers/json.rs rename to crates/tool_parser/src/parsers/json.rs diff --git a/tool_parser/src/parsers/kimik2.rs b/crates/tool_parser/src/parsers/kimik2.rs similarity index 100% rename from tool_parser/src/parsers/kimik2.rs rename to crates/tool_parser/src/parsers/kimik2.rs diff --git a/tool_parser/src/parsers/llama.rs b/crates/tool_parser/src/parsers/llama.rs similarity index 100% rename from tool_parser/src/parsers/llama.rs rename to crates/tool_parser/src/parsers/llama.rs diff --git a/tool_parser/src/parsers/minimax_m2.rs b/crates/tool_parser/src/parsers/minimax_m2.rs similarity index 100% rename from tool_parser/src/parsers/minimax_m2.rs rename to crates/tool_parser/src/parsers/minimax_m2.rs diff --git a/tool_parser/src/parsers/mistral.rs b/crates/tool_parser/src/parsers/mistral.rs similarity index 100% rename from tool_parser/src/parsers/mistral.rs rename to crates/tool_parser/src/parsers/mistral.rs diff --git a/tool_parser/src/parsers/mod.rs b/crates/tool_parser/src/parsers/mod.rs similarity index 100% rename from tool_parser/src/parsers/mod.rs rename to crates/tool_parser/src/parsers/mod.rs diff --git a/tool_parser/src/parsers/passthrough.rs b/crates/tool_parser/src/parsers/passthrough.rs similarity index 100% rename from tool_parser/src/parsers/passthrough.rs rename to crates/tool_parser/src/parsers/passthrough.rs diff --git a/tool_parser/src/parsers/pythonic.rs b/crates/tool_parser/src/parsers/pythonic.rs similarity index 100% rename from tool_parser/src/parsers/pythonic.rs rename to crates/tool_parser/src/parsers/pythonic.rs diff --git a/tool_parser/src/parsers/qwen.rs b/crates/tool_parser/src/parsers/qwen.rs similarity index 100% rename from tool_parser/src/parsers/qwen.rs rename to crates/tool_parser/src/parsers/qwen.rs diff --git a/tool_parser/src/parsers/qwen_coder.rs b/crates/tool_parser/src/parsers/qwen_coder.rs similarity index 100% rename from tool_parser/src/parsers/qwen_coder.rs rename to crates/tool_parser/src/parsers/qwen_coder.rs diff --git a/tool_parser/src/parsers/step3.rs b/crates/tool_parser/src/parsers/step3.rs similarity index 100% rename from tool_parser/src/parsers/step3.rs rename to crates/tool_parser/src/parsers/step3.rs diff --git a/tool_parser/src/partial_json.rs b/crates/tool_parser/src/partial_json.rs similarity index 100% rename from tool_parser/src/partial_json.rs rename to crates/tool_parser/src/partial_json.rs diff --git a/tool_parser/src/tests.rs b/crates/tool_parser/src/tests.rs similarity index 100% rename from tool_parser/src/tests.rs rename to crates/tool_parser/src/tests.rs diff --git a/tool_parser/src/traits.rs b/crates/tool_parser/src/traits.rs similarity index 100% rename from tool_parser/src/traits.rs rename to crates/tool_parser/src/traits.rs diff --git a/tool_parser/src/types.rs b/crates/tool_parser/src/types.rs similarity index 100% rename from tool_parser/src/types.rs rename to crates/tool_parser/src/types.rs diff --git a/tool_parser/tests/common/mod.rs b/crates/tool_parser/tests/common/mod.rs similarity index 100% rename from tool_parser/tests/common/mod.rs rename to crates/tool_parser/tests/common/mod.rs diff --git a/tool_parser/tests/tool_parser_cohere.rs b/crates/tool_parser/tests/tool_parser_cohere.rs similarity index 100% rename from tool_parser/tests/tool_parser_cohere.rs rename to crates/tool_parser/tests/tool_parser_cohere.rs diff --git a/tool_parser/tests/tool_parser_deepseek.rs b/crates/tool_parser/tests/tool_parser_deepseek.rs similarity index 100% rename from tool_parser/tests/tool_parser_deepseek.rs rename to crates/tool_parser/tests/tool_parser_deepseek.rs diff --git a/tool_parser/tests/tool_parser_edge_cases.rs b/crates/tool_parser/tests/tool_parser_edge_cases.rs similarity index 100% rename from tool_parser/tests/tool_parser_edge_cases.rs rename to crates/tool_parser/tests/tool_parser_edge_cases.rs diff --git a/tool_parser/tests/tool_parser_fallback.rs b/crates/tool_parser/tests/tool_parser_fallback.rs similarity index 100% rename from tool_parser/tests/tool_parser_fallback.rs rename to crates/tool_parser/tests/tool_parser_fallback.rs diff --git a/tool_parser/tests/tool_parser_glm47_moe.rs b/crates/tool_parser/tests/tool_parser_glm47_moe.rs similarity index 100% rename from tool_parser/tests/tool_parser_glm47_moe.rs rename to crates/tool_parser/tests/tool_parser_glm47_moe.rs diff --git a/tool_parser/tests/tool_parser_glm4_moe.rs b/crates/tool_parser/tests/tool_parser_glm4_moe.rs similarity index 100% rename from tool_parser/tests/tool_parser_glm4_moe.rs rename to crates/tool_parser/tests/tool_parser_glm4_moe.rs diff --git a/tool_parser/tests/tool_parser_json.rs b/crates/tool_parser/tests/tool_parser_json.rs similarity index 100% rename from tool_parser/tests/tool_parser_json.rs rename to crates/tool_parser/tests/tool_parser_json.rs diff --git a/tool_parser/tests/tool_parser_kimik2.rs b/crates/tool_parser/tests/tool_parser_kimik2.rs similarity index 100% rename from tool_parser/tests/tool_parser_kimik2.rs rename to crates/tool_parser/tests/tool_parser_kimik2.rs diff --git a/tool_parser/tests/tool_parser_llama.rs b/crates/tool_parser/tests/tool_parser_llama.rs similarity index 100% rename from tool_parser/tests/tool_parser_llama.rs rename to crates/tool_parser/tests/tool_parser_llama.rs diff --git a/tool_parser/tests/tool_parser_minimax_m2.rs b/crates/tool_parser/tests/tool_parser_minimax_m2.rs similarity index 100% rename from tool_parser/tests/tool_parser_minimax_m2.rs rename to crates/tool_parser/tests/tool_parser_minimax_m2.rs diff --git a/tool_parser/tests/tool_parser_mistral.rs b/crates/tool_parser/tests/tool_parser_mistral.rs similarity index 100% rename from tool_parser/tests/tool_parser_mistral.rs rename to crates/tool_parser/tests/tool_parser_mistral.rs diff --git a/tool_parser/tests/tool_parser_mixed_edge_cases.rs b/crates/tool_parser/tests/tool_parser_mixed_edge_cases.rs similarity index 100% rename from tool_parser/tests/tool_parser_mixed_edge_cases.rs rename to crates/tool_parser/tests/tool_parser_mixed_edge_cases.rs diff --git a/tool_parser/tests/tool_parser_partial_json.rs b/crates/tool_parser/tests/tool_parser_partial_json.rs similarity index 100% rename from tool_parser/tests/tool_parser_partial_json.rs rename to crates/tool_parser/tests/tool_parser_partial_json.rs diff --git a/tool_parser/tests/tool_parser_pythonic.rs b/crates/tool_parser/tests/tool_parser_pythonic.rs similarity index 100% rename from tool_parser/tests/tool_parser_pythonic.rs rename to crates/tool_parser/tests/tool_parser_pythonic.rs diff --git a/tool_parser/tests/tool_parser_qwen.rs b/crates/tool_parser/tests/tool_parser_qwen.rs similarity index 100% rename from tool_parser/tests/tool_parser_qwen.rs rename to crates/tool_parser/tests/tool_parser_qwen.rs diff --git a/tool_parser/tests/tool_parser_qwen_coder.rs b/crates/tool_parser/tests/tool_parser_qwen_coder.rs similarity index 100% rename from tool_parser/tests/tool_parser_qwen_coder.rs rename to crates/tool_parser/tests/tool_parser_qwen_coder.rs diff --git a/tool_parser/tests/tool_parser_step3.rs b/crates/tool_parser/tests/tool_parser_step3.rs similarity index 100% rename from tool_parser/tests/tool_parser_step3.rs rename to crates/tool_parser/tests/tool_parser_step3.rs diff --git a/wasm/Cargo.toml b/crates/wasm/Cargo.toml similarity index 100% rename from wasm/Cargo.toml rename to crates/wasm/Cargo.toml diff --git a/wasm/README.md b/crates/wasm/README.md similarity index 100% rename from wasm/README.md rename to crates/wasm/README.md diff --git a/wasm/src/config.rs b/crates/wasm/src/config.rs similarity index 100% rename from wasm/src/config.rs rename to crates/wasm/src/config.rs diff --git a/wasm/src/errors.rs b/crates/wasm/src/errors.rs similarity index 100% rename from wasm/src/errors.rs rename to crates/wasm/src/errors.rs diff --git a/wasm/src/interface/spec.wit b/crates/wasm/src/interface/spec.wit similarity index 100% rename from wasm/src/interface/spec.wit rename to crates/wasm/src/interface/spec.wit diff --git a/wasm/src/interface/storage/storage-hooks.wit b/crates/wasm/src/interface/storage/storage-hooks.wit similarity index 100% rename from wasm/src/interface/storage/storage-hooks.wit rename to crates/wasm/src/interface/storage/storage-hooks.wit diff --git a/wasm/src/lib.rs b/crates/wasm/src/lib.rs similarity index 100% rename from wasm/src/lib.rs rename to crates/wasm/src/lib.rs diff --git a/wasm/src/module.rs b/crates/wasm/src/module.rs similarity index 100% rename from wasm/src/module.rs rename to crates/wasm/src/module.rs diff --git a/wasm/src/module_manager.rs b/crates/wasm/src/module_manager.rs similarity index 100% rename from wasm/src/module_manager.rs rename to crates/wasm/src/module_manager.rs diff --git a/wasm/src/runtime.rs b/crates/wasm/src/runtime.rs similarity index 100% rename from wasm/src/runtime.rs rename to crates/wasm/src/runtime.rs diff --git a/wasm/src/spec.rs b/crates/wasm/src/spec.rs similarity index 100% rename from wasm/src/spec.rs rename to crates/wasm/src/spec.rs diff --git a/wasm/src/storage_hook.rs b/crates/wasm/src/storage_hook.rs similarity index 100% rename from wasm/src/storage_hook.rs rename to crates/wasm/src/storage_hook.rs diff --git a/wasm/src/storage_spec.rs b/crates/wasm/src/storage_spec.rs similarity index 100% rename from wasm/src/storage_spec.rs rename to crates/wasm/src/storage_spec.rs diff --git a/wasm/src/types.rs b/crates/wasm/src/types.rs similarity index 100% rename from wasm/src/types.rs rename to crates/wasm/src/types.rs diff --git a/wasm/tests/fixtures/build_fixtures.sh b/crates/wasm/tests/fixtures/build_fixtures.sh similarity index 93% rename from wasm/tests/fixtures/build_fixtures.sh rename to crates/wasm/tests/fixtures/build_fixtures.sh index 4cd4af2878..2b4cb98808 100755 --- a/wasm/tests/fixtures/build_fixtures.sh +++ b/crates/wasm/tests/fixtures/build_fixtures.sh @@ -9,8 +9,8 @@ set -e -REPO_ROOT="$(cd "$(dirname "$0")/../../.." && pwd)" -FIXTURES_DIR="$REPO_ROOT/wasm/tests/fixtures" +REPO_ROOT="$(cd "$(dirname "$0")/../../../.." && pwd)" +FIXTURES_DIR="$REPO_ROOT/crates/wasm/tests/fixtures" echo "Building WASM test fixtures..." diff --git a/wasm/tests/storage_hook_integration.rs b/crates/wasm/tests/storage_hook_integration.rs similarity index 100% rename from wasm/tests/storage_hook_integration.rs rename to crates/wasm/tests/storage_hook_integration.rs diff --git a/workflow/Cargo.toml b/crates/workflow/Cargo.toml similarity index 100% rename from workflow/Cargo.toml rename to crates/workflow/Cargo.toml diff --git a/workflow/README.md b/crates/workflow/README.md similarity index 100% rename from workflow/README.md rename to crates/workflow/README.md diff --git a/workflow/src/definition.rs b/crates/workflow/src/definition.rs similarity index 100% rename from workflow/src/definition.rs rename to crates/workflow/src/definition.rs diff --git a/workflow/src/engine.rs b/crates/workflow/src/engine.rs similarity index 100% rename from workflow/src/engine.rs rename to crates/workflow/src/engine.rs diff --git a/workflow/src/event.rs b/crates/workflow/src/event.rs similarity index 100% rename from workflow/src/event.rs rename to crates/workflow/src/event.rs diff --git a/workflow/src/executor.rs b/crates/workflow/src/executor.rs similarity index 100% rename from workflow/src/executor.rs rename to crates/workflow/src/executor.rs diff --git a/workflow/src/lib.rs b/crates/workflow/src/lib.rs similarity index 100% rename from workflow/src/lib.rs rename to crates/workflow/src/lib.rs diff --git a/workflow/src/state.rs b/crates/workflow/src/state.rs similarity index 100% rename from workflow/src/state.rs rename to crates/workflow/src/state.rs diff --git a/workflow/src/types.rs b/crates/workflow/src/types.rs similarity index 100% rename from workflow/src/types.rs rename to crates/workflow/src/types.rs diff --git a/workflow/tests/workflow_test.rs b/crates/workflow/tests/workflow_test.rs similarity index 100% rename from workflow/tests/workflow_test.rs rename to crates/workflow/tests/workflow_test.rs diff --git a/docs/contributing/development.md b/docs/contributing/development.md index d9617a82c2..ab1b95cbb2 100644 --- a/docs/contributing/development.md +++ b/docs/contributing/development.md @@ -78,22 +78,26 @@ smg/ │ ├── benches/ # Benchmarks │ ├── tests/ # Integration tests │ └── Cargo.toml # Gateway package manifest -├── protocols/ # OpenAI protocol definitions -├── tokenizer/ # LLM tokenization -├── tool_parser/ # Tool call parsing -├── reasoning_parser/ # Reasoning extraction -├── mcp/ # MCP integration -├── auth/ # Authentication -├── mesh/ # HA mesh networking -├── wasm/ # WebAssembly plugins -├── grpc_client/ # gRPC client -├── data_connector/ # Storage backends -├── kv_index/ # KV cache indexing -├── multimodal/ # Multimodal support -├── workflow/ # Workflow automation +├── crates/ # Library crates +│ ├── auth/ # Authentication +│ ├── data_connector/ # Storage backends +│ ├── grpc_client/ # gRPC client +│ ├── kv_index/ # KV cache indexing +│ ├── mcp/ # MCP integration +│ ├── mesh/ # HA mesh networking +│ ├── multimodal/ # Multimodal support +│ ├── protocols/ # OpenAI protocol definitions +│ ├── reasoning_parser/ # Reasoning extraction +│ ├── tokenizer/ # LLM tokenization +│ ├── tool_parser/ # Tool call parsing +│ ├── wasm/ # WebAssembly plugins +│ └── workflow/ # Workflow automation ├── bindings/ │ ├── python/ # Python bindings │ └── golang/ # Go SDK +├── clients/ +│ ├── rust/ # Rust client library +│ └── openapi-gen/ # OpenAPI spec generator ├── docs/ # Documentation (MkDocs) ├── e2e_test/ # End-to-end tests ├── examples/ # Example configurations diff --git a/e2e_test/responses/test_storage_hooks.py b/e2e_test/responses/test_storage_hooks.py index 3671177a59..2735127998 100644 --- a/e2e_test/responses/test_storage_hooks.py +++ b/e2e_test/responses/test_storage_hooks.py @@ -19,7 +19,7 @@ logger = logging.getLogger(__name__) # Path relative to the workspace root (where the gateway binary runs) -PASSTHROUGH_HOOK_PATH = "wasm/tests/fixtures/storage_hook_passthrough.wasm" +PASSTHROUGH_HOOK_PATH = "crates/wasm/tests/fixtures/storage_hook_passthrough.wasm" @pytest.mark.gateway(extra_args=["--storage-hook-wasm-path", PASSTHROUGH_HOOK_PATH]) diff --git a/examples/wasm/README.md b/examples/wasm/README.md index 2ac4a50d9e..c2d29224c6 100644 --- a/examples/wasm/README.md +++ b/examples/wasm/README.md @@ -81,7 +81,7 @@ All examples require: - `wasm-tools`: `cargo install wasm-tools` - SMG running with WASM enabled (`--enable-wasm`) -**Storage hook examples** additionally require the storage hook WIT interface at `wasm/src/interface/storage/`. +**Storage hook examples** additionally require the storage hook WIT interface at `crates/wasm/src/interface/storage/`. ## Building All Examples diff --git a/examples/wasm/wasm-guest-auth/src/lib.rs b/examples/wasm/wasm-guest-auth/src/lib.rs index 75188babad..c4453cf5f3 100644 --- a/examples/wasm/wasm-guest-auth/src/lib.rs +++ b/examples/wasm/wasm-guest-auth/src/lib.rs @@ -7,7 +7,7 @@ //! - API Key authentication wit_bindgen::generate!({ - path: "../../../wasm/src/interface", + path: "../../../crates/wasm/src/interface", world: "smg", }); diff --git a/examples/wasm/wasm-guest-logging/src/lib.rs b/examples/wasm/wasm-guest-logging/src/lib.rs index cb577fc602..d61ccb334f 100644 --- a/examples/wasm/wasm-guest-logging/src/lib.rs +++ b/examples/wasm/wasm-guest-logging/src/lib.rs @@ -8,7 +8,7 @@ //! - Response status code conversion wit_bindgen::generate!({ - path: "../../../wasm/src/interface", + path: "../../../crates/wasm/src/interface", world: "smg", }); diff --git a/examples/wasm/wasm-guest-ratelimit/src/lib.rs b/examples/wasm/wasm-guest-ratelimit/src/lib.rs index f832111856..1e402e85a4 100644 --- a/examples/wasm/wasm-guest-ratelimit/src/lib.rs +++ b/examples/wasm/wasm-guest-ratelimit/src/lib.rs @@ -13,7 +13,7 @@ //! implementing rate limiting at the host/router level with shared state. wit_bindgen::generate!({ - path: "../../../wasm/src/interface", + path: "../../../crates/wasm/src/interface", world: "smg", }); diff --git a/examples/wasm/wasm-guest-storage-hook-passthrough/src/lib.rs b/examples/wasm/wasm-guest-storage-hook-passthrough/src/lib.rs index 3033c1b0b2..d7fb20e2ee 100644 --- a/examples/wasm/wasm-guest-storage-hook-passthrough/src/lib.rs +++ b/examples/wasm/wasm-guest-storage-hook-passthrough/src/lib.rs @@ -5,7 +5,7 @@ //! the hook pipeline is running. wit_bindgen::generate!({ - path: "../../../wasm/src/interface/storage", + path: "../../../crates/wasm/src/interface/storage", world: "storage-hook", }); diff --git a/examples/wasm/wasm-guest-storage-hook/README.md b/examples/wasm/wasm-guest-storage-hook/README.md index 0e94951199..6e8f92fdab 100644 --- a/examples/wasm/wasm-guest-storage-hook/README.md +++ b/examples/wasm/wasm-guest-storage-hook/README.md @@ -85,7 +85,7 @@ schema: ## WIT Interface -The storage hook world is defined in `wasm/src/interface/storage/storage-hooks.wit` and exports: +The storage hook world is defined in `crates/wasm/src/interface/storage/storage-hooks.wit` and exports: - `storage-hook-before`: Called before storage operations to provide extra columns or reject - `storage-hook-after`: Called after successful operations with the result and extra columns diff --git a/examples/wasm/wasm-guest-storage-hook/src/lib.rs b/examples/wasm/wasm-guest-storage-hook/src/lib.rs index 7639c796da..af63cd8069 100644 --- a/examples/wasm/wasm-guest-storage-hook/src/lib.rs +++ b/examples/wasm/wasm-guest-storage-hook/src/lib.rs @@ -7,7 +7,7 @@ //! - Passes through all other operations unchanged wit_bindgen::generate!({ - path: "../../../wasm/src/interface/storage", + path: "../../../crates/wasm/src/interface/storage", world: "storage-hook", }); diff --git a/grpc_servicer/DEVELOPMENT.md b/grpc_servicer/DEVELOPMENT.md index a5d2d47a54..113ee061b4 100644 --- a/grpc_servicer/DEVELOPMENT.md +++ b/grpc_servicer/DEVELOPMENT.md @@ -5,7 +5,7 @@ Install both proto and servicer as editable packages: ```bash -pip install -e grpc_client/python/ +pip install -e crates/grpc_client/python/ pip install -e grpc_servicer/ ``` @@ -20,7 +20,7 @@ This is handled in `scripts/ci_install_vllm.sh`: ```bash uv pip install vllm -pip install -e grpc_client/python/ +pip install -e crates/grpc_client/python/ pip install -e grpc_servicer/ ``` @@ -39,14 +39,14 @@ Releases are triggered by version bumps in the respective `pyproject.toml` files ### Scenario 2: Changing only the proto 1. Make changes to proto files and regenerate stubs -2. Bump version in `grpc_client/python/pyproject.toml` +2. Bump version in `crates/grpc_client/python/pyproject.toml` 3. Open PR, CI tests pass 4. Merge to `main` — `release-grpc-proto.yml` fires, publishes to PyPI ### Scenario 3: Changing both proto and servicer (one PR) 1. Make all changes (proto + servicer) in a single PR -2. Bump versions in both `grpc_client/python/pyproject.toml` and `grpc_servicer/pyproject.toml` +2. Bump versions in both `crates/grpc_client/python/pyproject.toml` and `grpc_servicer/pyproject.toml` 3. Open PR, CI tests pass (both installed from source) 4. Merge to `main` — both release workflows trigger 5. `release-grpc-servicer.yml` waits for `release-grpc-proto.yml` to complete via `workflow_run` diff --git a/scripts/check_release_versions.sh b/scripts/check_release_versions.sh index 86d3f45c8e..bafabe0312 100755 --- a/scripts/check_release_versions.sh +++ b/scripts/check_release_versions.sh @@ -58,19 +58,19 @@ escape_version() { # Use "-" for the main gateway crate (no workspace dep entry). # --------------------------------------------------------------------------- CRATES=( - "openai-protocol|protocols|openai-protocol" - "reasoning-parser|reasoning_parser|reasoning-parser" - "tool-parser|tool_parser|tool-parser" - "wfaas|workflow|wfaas" - "llm-tokenizer|tokenizer|llm-tokenizer" - "smg-auth|auth|smg-auth" - "smg-mcp|mcp|smg-mcp" - "kv-index|kv_index|kv-index" - "data-connector|data_connector|smg-data-connector" - "llm-multimodal|multimodal|llm-multimodal" - "smg-wasm|wasm|smg-wasm" - "smg-mesh|mesh|smg-mesh" - "smg-grpc-client|grpc_client|smg-grpc-client" + "openai-protocol|crates/protocols|openai-protocol" + "reasoning-parser|crates/reasoning_parser|reasoning-parser" + "tool-parser|crates/tool_parser|tool-parser" + "wfaas|crates/workflow|wfaas" + "llm-tokenizer|crates/tokenizer|llm-tokenizer" + "smg-auth|crates/auth|smg-auth" + "smg-mcp|crates/mcp|smg-mcp" + "kv-index|crates/kv_index|kv-index" + "data-connector|crates/data_connector|smg-data-connector" + "llm-multimodal|crates/multimodal|llm-multimodal" + "smg-wasm|crates/wasm|smg-wasm" + "smg-mesh|crates/mesh|smg-mesh" + "smg-grpc-client|crates/grpc_client|smg-grpc-client" "smg|model_gateway|-" ) @@ -80,7 +80,7 @@ CRATES=( # version_file is relative to REPO_ROOT. # --------------------------------------------------------------------------- PYTHON_PACKAGES=( - "smg-grpc-proto|grpc_client/python|grpc_client/python/smg_grpc_proto/__init__.py" + "smg-grpc-proto|crates/grpc_client/python|crates/grpc_client/python/smg_grpc_proto/__init__.py" ) # --------------------------------------------------------------------------- @@ -120,11 +120,19 @@ get_crate_version() { } # Extract version at a specific git ref (returns empty string if crate missing) +# Falls back to pre-crates-move path (e.g., crates/auth → auth) for older tags. get_crate_version_at_ref() { local path="$1" local ref="$2" local content - content=$(git show "$ref:$path/Cargo.toml" 2>/dev/null) || return 0 + content=$(git show "$ref:$path/Cargo.toml" 2>/dev/null) || { + # Fallback: try legacy path before crates/ directory move + if [[ "$path" == crates/* ]]; then + content=$(git show "$ref:${path#crates/}/Cargo.toml" 2>/dev/null) || return 0 + else + return 0 + fi + } if echo "$content" | grep -qE 'version\.workspace\s*=\s*true|version\s*=\s*\{\s*workspace\s*=\s*true'; then echo -e "${RED}ERROR: $path/Cargo.toml at $ref uses workspace versioning; this script expects explicit version strings.${NC}" >&2 exit 1 @@ -233,11 +241,19 @@ get_python_version() { } # Extract __version__ from a Python file at a specific git ref +# Falls back to pre-crates-move path (e.g., crates/X/... → X/...) for older tags. get_python_version_at_ref() { local file="$1" local ref="$2" local content - content=$(git show "$ref:$file" 2>/dev/null) || return 0 + content=$(git show "$ref:$file" 2>/dev/null) || { + # Fallback: try legacy path before crates/ directory move + if [[ "$file" == crates/* ]]; then + content=$(git show "$ref:${file#crates/}" 2>/dev/null) || return 0 + else + return 0 + fi + } echo "$content" | grep '__version__' | sed 's/.*"\(.*\)".*/\1/' } diff --git a/scripts/ci_install_vllm.sh b/scripts/ci_install_vllm.sh index 09e8733824..f5e461913a 100755 --- a/scripts/ci_install_vllm.sh +++ b/scripts/ci_install_vllm.sh @@ -28,7 +28,7 @@ uv pip install nixl # Install gRPC packages from source (not PyPI) so PR changes are always tested echo "Installing smg-grpc-proto and smg-grpc-servicer from source..." -uv pip install -e grpc_client/python/ +uv pip install -e crates/grpc_client/python/ uv pip install -e grpc_servicer/ echo "vLLM installation complete"