diff --git a/.github/workflows/license-headers.yml b/.github/workflows/license-headers.yml new file mode 100644 index 00000000..ffd03732 --- /dev/null +++ b/.github/workflows/license-headers.yml @@ -0,0 +1,33 @@ +name: License headers + +"on": + pull_request: + push: + branches: + - main + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: license-headers-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + check: + name: Check license headers + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v7 + with: + persist-credentials: false + + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.12" + + - name: Check license headers + run: python scripts/update_license_headers.py --check diff --git a/projects/egress-gate/analysis/render_latency_plot.py b/projects/egress-gate/analysis/render_latency_plot.py index 1cec7ffc..78fa78b2 100644 --- a/projects/egress-gate/analysis/render_latency_plot.py +++ b/projects/egress-gate/analysis/render_latency_plot.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Render the Egress Gate latency proof-of-concept figure as deterministic SVG.""" from __future__ import annotations diff --git a/projects/egress-gate/examples/class-based-gate/keyword_gate.py b/projects/egress-gate/examples/class-based-gate/keyword_gate.py index a3eee4bb..17e4a2e7 100644 --- a/projects/egress-gate/examples/class-based-gate/keyword_gate.py +++ b/projects/egress-gate/examples/class-based-gate/keyword_gate.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """A minimal class-based Egress Gate implementation.""" from typing import Literal diff --git a/projects/egress-gate/examples/custom-gate/keyword_gate.py b/projects/egress-gate/examples/custom-gate/keyword_gate.py index 6cdad089..f20b0d4d 100644 --- a/projects/egress-gate/examples/custom-gate/keyword_gate.py +++ b/projects/egress-gate/examples/custom-gate/keyword_gate.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """A minimal custom Egress Gate implementation.""" from typing import Literal diff --git a/projects/egress-gate/scripts/check.sh b/projects/egress-gate/scripts/check.sh index fcd362a4..0a02d5fb 100755 --- a/projects/egress-gate/scripts/check.sh +++ b/projects/egress-gate/scripts/check.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + set -euo pipefail cd "$(dirname "${BASH_SOURCE[0]}")/.." diff --git a/projects/egress-gate/src/egress_gate/__init__.py b/projects/egress-gate/src/egress_gate/__init__.py index a3f52198..b3e1977a 100644 --- a/projects/egress-gate/src/egress_gate/__init__.py +++ b/projects/egress-gate/src/egress_gate/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Egress Gate: an OpenShell supervisor middleware. See the package README.""" diff --git a/projects/egress-gate/src/egress_gate/base.py b/projects/egress-gate/src/egress_gate/base.py index 6977d08f..b69274bc 100644 --- a/projects/egress-gate/src/egress_gate/base.py +++ b/projects/egress-gate/src/egress_gate/base.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Package-wide base class for validated, immutable domain objects.""" from pydantic import BaseModel, ConfigDict diff --git a/projects/egress-gate/src/egress_gate/cli.py b/projects/egress-gate/src/egress_gate/cli.py index e919052f..6f789c29 100644 --- a/projects/egress-gate/src/egress_gate/cli.py +++ b/projects/egress-gate/src/egress_gate/cli.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Egress Gate command-line application.""" from __future__ import annotations diff --git a/projects/egress-gate/src/egress_gate/config.py b/projects/egress-gate/src/egress_gate/config.py index 4110deec..a082cd5c 100644 --- a/projects/egress-gate/src/egress_gate/config.py +++ b/projects/egress-gate/src/egress_gate/config.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Strict Egress Gate policy configuration.""" from __future__ import annotations diff --git a/projects/egress-gate/src/egress_gate/constants.py b/projects/egress-gate/src/egress_gate/constants.py index 791e75fa..a854ef9b 100644 --- a/projects/egress-gate/src/egress_gate/constants.py +++ b/projects/egress-gate/src/egress_gate/constants.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Package-wide Egress Gate constants and operational limits. Keep this module dependency-free within the package: it must not import from diff --git a/projects/egress-gate/src/egress_gate/errors.py b/projects/egress-gate/src/egress_gate/errors.py index c7308cce..99fe94c6 100644 --- a/projects/egress-gate/src/egress_gate/errors.py +++ b/projects/egress-gate/src/egress_gate/errors.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Content-safe failures shared across Egress Gate trust boundaries.""" from __future__ import annotations diff --git a/projects/egress-gate/src/egress_gate/gates/__init__.py b/projects/egress-gate/src/egress_gate/gates/__init__.py index 2243e2b4..312d39e3 100644 --- a/projects/egress-gate/src/egress_gate/gates/__init__.py +++ b/projects/egress-gate/src/egress_gate/gates/__init__.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Public Egress Gate authoring and built-in gate surface.""" from egress_gate.gates.base import ( diff --git a/projects/egress-gate/src/egress_gate/gates/base.py b/projects/egress-gate/src/egress_gate/gates/base.py index 46543ce3..825fb9e7 100644 --- a/projects/egress-gate/src/egress_gate/gates/base.py +++ b/projects/egress-gate/src/egress_gate/gates/base.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Trusted request-level gate extension contract.""" from __future__ import annotations diff --git a/projects/egress-gate/src/egress_gate/gates/regex.py b/projects/egress-gate/src/egress_gate/gates/regex.py index 8e9422b8..a1356cdc 100644 --- a/projects/egress-gate/src/egress_gate/gates/regex.py +++ b/projects/egress-gate/src/egress_gate/gates/regex.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Bounded regex catalog compilation, matching, and gate evaluation.""" from __future__ import annotations diff --git a/projects/egress-gate/src/egress_gate/gates/regex_scans.py b/projects/egress-gate/src/egress_gate/gates/regex_scans.py index b1b3e611..c02a61c7 100644 --- a/projects/egress-gate/src/egress_gate/gates/regex_scans.py +++ b/projects/egress-gate/src/egress_gate/gates/regex_scans.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Public action and source configuration for regex request scans.""" from __future__ import annotations diff --git a/projects/egress-gate/src/egress_gate/gates/registry.py b/projects/egress-gate/src/egress_gate/gates/registry.py index 7208d954..0670deef 100644 --- a/projects/egress-gate/src/egress_gate/gates/registry.py +++ b/projects/egress-gate/src/egress_gate/gates/registry.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Gate registration and lazy policy-schema construction.""" from __future__ import annotations diff --git a/projects/egress-gate/src/egress_gate/gateway_config.py b/projects/egress-gate/src/egress_gate/gateway_config.py index fdbefdd6..7947bb5f 100644 --- a/projects/egress-gate/src/egress_gate/gateway_config.py +++ b/projects/egress-gate/src/egress_gate/gateway_config.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """OpenShell gateway registration management for the command-line application.""" from __future__ import annotations diff --git a/projects/egress-gate/src/egress_gate/logging.py b/projects/egress-gate/src/egress_gate/logging.py index 6459483f..ed135326 100644 --- a/projects/egress-gate/src/egress_gate/logging.py +++ b/projects/egress-gate/src/egress_gate/logging.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Native Python logging configuration for Egress Gate.""" from __future__ import annotations diff --git a/projects/egress-gate/src/egress_gate/request.py b/projects/egress-gate/src/egress_gate/request.py index 9fe191fe..98201ffe 100644 --- a/projects/egress-gate/src/egress_gate/request.py +++ b/projects/egress-gate/src/egress_gate/request.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Immutable request and mutation models shared by Egress Gate components.""" from __future__ import annotations diff --git a/projects/egress-gate/src/egress_gate/request_content/__init__.py b/projects/egress-gate/src/egress_gate/request_content/__init__.py index a39f9665..42865533 100644 --- a/projects/egress-gate/src/egress_gate/request_content/__init__.py +++ b/projects/egress-gate/src/egress_gate/request_content/__init__.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Public structured request-content parsing surface.""" from egress_gate.request_content.json import ( diff --git a/projects/egress-gate/src/egress_gate/request_content/_json_parser.py b/projects/egress-gate/src/egress_gate/request_content/_json_parser.py index 72e51bd8..a2080935 100644 --- a/projects/egress-gate/src/egress_gate/request_content/_json_parser.py +++ b/projects/egress-gate/src/egress_gate/request_content/_json_parser.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Private bounded parser for source-aware strict JSON documents.""" from __future__ import annotations diff --git a/projects/egress-gate/src/egress_gate/request_content/json.py b/projects/egress-gate/src/egress_gate/request_content/json.py index 7add8d7b..465fde4a 100644 --- a/projects/egress-gate/src/egress_gate/request_content/json.py +++ b/projects/egress-gate/src/egress_gate/request_content/json.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Strict source-aware JSON request-content parsing and selection.""" from __future__ import annotations diff --git a/projects/egress-gate/src/egress_gate/request_content/json_values.py b/projects/egress-gate/src/egress_gate/request_content/json_values.py index a6c84fca..f0353c45 100644 --- a/projects/egress-gate/src/egress_gate/request_content/json_values.py +++ b/projects/egress-gate/src/egress_gate/request_content/json_values.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Shared JSON value kinds used by public documents and the private parser.""" from enum import StrEnum diff --git a/projects/egress-gate/src/egress_gate/request_content/messages.py b/projects/egress-gate/src/egress_gate/request_content/messages.py index 30373276..6e7e521c 100644 --- a/projects/egress-gate/src/egress_gate/request_content/messages.py +++ b/projects/egress-gate/src/egress_gate/request_content/messages.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Normalized agent message blocks derived from structured JSON content.""" from __future__ import annotations diff --git a/projects/egress-gate/src/egress_gate/request_content/parsers.py b/projects/egress-gate/src/egress_gate/request_content/parsers.py index 7b3677da..9c2868ce 100644 --- a/projects/egress-gate/src/egress_gate/request_content/parsers.py +++ b/projects/egress-gate/src/egress_gate/request_content/parsers.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Gate-agnostic parsers for text-bearing request content.""" from __future__ import annotations diff --git a/projects/egress-gate/src/egress_gate/request_content/text.py b/projects/egress-gate/src/egress_gate/request_content/text.py index 979240d3..184c9262 100644 --- a/projects/egress-gate/src/egress_gate/request_content/text.py +++ b/projects/egress-gate/src/egress_gate/request_content/text.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Shared immutable values for parsed request text and its replacements.""" from dataclasses import dataclass diff --git a/projects/egress-gate/src/egress_gate/request_processor.py b/projects/egress-gate/src/egress_gate/request_processor.py index c900fa95..0b94dadb 100644 --- a/projects/egress-gate/src/egress_gate/request_processor.py +++ b/projects/egress-gate/src/egress_gate/request_processor.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Ordered gate execution over one mutable-current immutable request value.""" from __future__ import annotations diff --git a/projects/egress-gate/src/egress_gate/result.py b/projects/egress-gate/src/egress_gate/result.py index 8266f7af..1d3d09f7 100644 --- a/projects/egress-gate/src/egress_gate/result.py +++ b/projects/egress-gate/src/egress_gate/result.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Immutable gate evaluations and Egress Gate result models. These models deliberately contain no protobuf or gRPC types. ``SourcedFinding`` diff --git a/projects/egress-gate/src/egress_gate/service/__init__.py b/projects/egress-gate/src/egress_gate/service/__init__.py index dd8fcc02..40edea99 100644 --- a/projects/egress-gate/src/egress_gate/service/__init__.py +++ b/projects/egress-gate/src/egress_gate/service/__init__.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """gRPC transport and servicer for the Egress Gate middleware.""" from egress_gate.service.server import EgressGateServer diff --git a/projects/egress-gate/src/egress_gate/service/server.py b/projects/egress-gate/src/egress_gate/service/server.py index 6da9146c..146838d6 100644 --- a/projects/egress-gate/src/egress_gate/service/server.py +++ b/projects/egress-gate/src/egress_gate/service/server.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Programmatic Egress Gate gRPC server lifecycle.""" from __future__ import annotations diff --git a/projects/egress-gate/src/egress_gate/service/servicer.py b/projects/egress-gate/src/egress_gate/service/servicer.py index 78fdc3d9..a5099a08 100644 --- a/projects/egress-gate/src/egress_gate/service/servicer.py +++ b/projects/egress-gate/src/egress_gate/service/servicer.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """gRPC boundary for the protobuf-free Egress Gate pipeline processor.""" from __future__ import annotations diff --git a/projects/egress-gate/src/egress_gate/string_validators.py b/projects/egress-gate/src/egress_gate/string_validators.py index b5db5fe3..9464d761 100644 --- a/projects/egress-gate/src/egress_gate/string_validators.py +++ b/projects/egress-gate/src/egress_gate/string_validators.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Reusable string validators and the field types built from them.""" from typing import Annotated diff --git a/projects/egress-gate/src/egress_gate/timeout.py b/projects/egress-gate/src/egress_gate/timeout.py index 9d108c36..c56d334b 100644 --- a/projects/egress-gate/src/egress_gate/timeout.py +++ b/projects/egress-gate/src/egress_gate/timeout.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """A shared monotonic timeout for one request-pipeline run.""" from __future__ import annotations diff --git a/projects/egress-gate/tests/__init__.py b/projects/egress-gate/tests/__init__.py index a82cff11..90e51f47 100644 --- a/projects/egress-gate/tests/__init__.py +++ b/projects/egress-gate/tests/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Egress Gate test package.""" diff --git a/projects/egress-gate/tests/gates/__init__.py b/projects/egress-gate/tests/gates/__init__.py index c4f730b7..f9142bc8 100644 --- a/projects/egress-gate/tests/gates/__init__.py +++ b/projects/egress-gate/tests/gates/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Gate contract and built-in gate tests.""" diff --git a/projects/egress-gate/tests/gates/test_base.py b/projects/egress-gate/tests/gates/test_base.py index dad0543c..574323ce 100644 --- a/projects/egress-gate/tests/gates/test_base.py +++ b/projects/egress-gate/tests/gates/test_base.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Contract tests for trusted request-level gates.""" from __future__ import annotations diff --git a/projects/egress-gate/tests/gates/test_function_gate.py b/projects/egress-gate/tests/gates/test_function_gate.py index 8416c72c..a7a37df8 100644 --- a/projects/egress-gate/tests/gates/test_function_gate.py +++ b/projects/egress-gate/tests/gates/test_function_gate.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tests for the resource-free function-gate authoring helper.""" from __future__ import annotations diff --git a/projects/egress-gate/tests/gates/test_regex.py b/projects/egress-gate/tests/gates/test_regex.py index 4bbfbbce..7828109a 100644 --- a/projects/egress-gate/tests/gates/test_regex.py +++ b/projects/egress-gate/tests/gates/test_regex.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Behavior, scans, actions, safety, caching, and concurrency tests for regex.""" from __future__ import annotations diff --git a/projects/egress-gate/tests/gates/test_registry.py b/projects/egress-gate/tests/gates/test_registry.py index 6f55cf72..57dbbf91 100644 --- a/projects/egress-gate/tests/gates/test_registry.py +++ b/projects/egress-gate/tests/gates/test_registry.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Registry sealing and exact pipeline-schema tests.""" from __future__ import annotations diff --git a/projects/egress-gate/tests/request_content/__init__.py b/projects/egress-gate/tests/request_content/__init__.py index 3370066b..ba711b59 100644 --- a/projects/egress-gate/tests/request_content/__init__.py +++ b/projects/egress-gate/tests/request_content/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Structured request-content tests.""" diff --git a/projects/egress-gate/tests/request_content/test_json.py b/projects/egress-gate/tests/request_content/test_json.py index 2d017e22..3901ffee 100644 --- a/projects/egress-gate/tests/request_content/test_json.py +++ b/projects/egress-gate/tests/request_content/test_json.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Contracts for strict JSON selection and source-preserving replacement.""" from __future__ import annotations diff --git a/projects/egress-gate/tests/request_content/test_messages.py b/projects/egress-gate/tests/request_content/test_messages.py index 2d83e75f..005d3198 100644 --- a/projects/egress-gate/tests/request_content/test_messages.py +++ b/projects/egress-gate/tests/request_content/test_messages.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Contracts for normalized message blocks backed by JSON text nodes.""" from __future__ import annotations diff --git a/projects/egress-gate/tests/request_content/test_parsers.py b/projects/egress-gate/tests/request_content/test_parsers.py index 9c8e56d1..6677b470 100644 --- a/projects/egress-gate/tests/request_content/test_parsers.py +++ b/projects/egress-gate/tests/request_content/test_parsers.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Contracts for reusable request-content text parsers.""" from __future__ import annotations diff --git a/projects/egress-gate/tests/service/__init__.py b/projects/egress-gate/tests/service/__init__.py index a2b97e36..9db2b256 100644 --- a/projects/egress-gate/tests/service/__init__.py +++ b/projects/egress-gate/tests/service/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Egress Gate service tests.""" diff --git a/projects/egress-gate/tests/service/test_grpc_integration.py b/projects/egress-gate/tests/service/test_grpc_integration.py index 133de57d..1ecbec0e 100644 --- a/projects/egress-gate/tests/service/test_grpc_integration.py +++ b/projects/egress-gate/tests/service/test_grpc_integration.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Loopback coverage for the generated OpenShell gRPC service.""" from __future__ import annotations diff --git a/projects/egress-gate/tests/service/test_server.py b/projects/egress-gate/tests/service/test_server.py index 4cdea0ef..9578f4bd 100644 --- a/projects/egress-gate/tests/service/test_server.py +++ b/projects/egress-gate/tests/service/test_server.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Programmatic Egress Gate server lifecycle and transport-isolation tests.""" from __future__ import annotations diff --git a/projects/egress-gate/tests/service/test_servicer.py b/projects/egress-gate/tests/service/test_servicer.py index 528bc219..22cfe86d 100644 --- a/projects/egress-gate/tests/service/test_servicer.py +++ b/projects/egress-gate/tests/service/test_servicer.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Transport-boundary tests for the canonical OpenShell protobuf adapter.""" from __future__ import annotations diff --git a/projects/egress-gate/tests/test_cli.py b/projects/egress-gate/tests/test_cli.py index aaeafad3..7ee04eec 100644 --- a/projects/egress-gate/tests/test_cli.py +++ b/projects/egress-gate/tests/test_cli.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Command-line tests for Egress Gate discovery and policy schema surfaces.""" from __future__ import annotations diff --git a/projects/egress-gate/tests/test_config.py b/projects/egress-gate/tests/test_config.py index 3a91fc7f..8d703e44 100644 --- a/projects/egress-gate/tests/test_config.py +++ b/projects/egress-gate/tests/test_config.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Strict pipeline configuration tests.""" from __future__ import annotations diff --git a/projects/egress-gate/tests/test_errors.py b/projects/egress-gate/tests/test_errors.py index ee44af3a..72ce634d 100644 --- a/projects/egress-gate/tests/test_errors.py +++ b/projects/egress-gate/tests/test_errors.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import inspect from egress_gate.errors import ( diff --git a/projects/egress-gate/tests/test_gateway_config.py b/projects/egress-gate/tests/test_gateway_config.py index eed27f22..237f56e8 100644 --- a/projects/egress-gate/tests/test_gateway_config.py +++ b/projects/egress-gate/tests/test_gateway_config.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """OpenShell gateway registration management tests.""" from __future__ import annotations diff --git a/projects/egress-gate/tests/test_logging.py b/projects/egress-gate/tests/test_logging.py index 35c578a7..4070c5b2 100644 --- a/projects/egress-gate/tests/test_logging.py +++ b/projects/egress-gate/tests/test_logging.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Egress Gate logging configuration tests.""" from __future__ import annotations diff --git a/projects/egress-gate/tests/test_request.py b/projects/egress-gate/tests/test_request.py index 8013ce31..1f02136d 100644 --- a/projects/egress-gate/tests/test_request.py +++ b/projects/egress-gate/tests/test_request.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Focused boundary tests for the protobuf-free request domain models.""" from __future__ import annotations diff --git a/projects/egress-gate/tests/test_request_processor.py b/projects/egress-gate/tests/test_request_processor.py index 5ea74ef9..c7272e82 100644 --- a/projects/egress-gate/tests/test_request_processor.py +++ b/projects/egress-gate/tests/test_request_processor.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Ordered current-request execution and decision-provenance tests.""" from __future__ import annotations diff --git a/projects/egress-gate/tests/test_result.py b/projects/egress-gate/tests/test_result.py index 3dbd31ad..d21c3b0d 100644 --- a/projects/egress-gate/tests/test_result.py +++ b/projects/egress-gate/tests/test_result.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Focused invariant and boundary tests for Egress Gate result models.""" from __future__ import annotations diff --git a/projects/egress-gate/tests/test_timeout.py b/projects/egress-gate/tests/test_timeout.py index 3c248507..692f3da3 100644 --- a/projects/egress-gate/tests/test_timeout.py +++ b/projects/egress-gate/tests/test_timeout.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tests for the shared gate-pipeline timeout.""" from time import monotonic diff --git a/projects/egress-gate/tests/test_typing_policy.py b/projects/egress-gate/tests/test_typing_policy.py index a1df07be..63e120fe 100644 --- a/projects/egress-gate/tests/test_typing_policy.py +++ b/projects/egress-gate/tests/test_typing_policy.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """AST-enforced type-safety policy for handwritten Python.""" from __future__ import annotations diff --git a/projects/openshell-middleware-manager/src/openshell_middleware_manager/__init__.py b/projects/openshell-middleware-manager/src/openshell_middleware_manager/__init__.py index 0020d1e3..7cadeec4 100644 --- a/projects/openshell-middleware-manager/src/openshell_middleware_manager/__init__.py +++ b/projects/openshell-middleware-manager/src/openshell_middleware_manager/__init__.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Create and update version-matched OpenShell middleware projects.""" __version__ = "0.1.0" diff --git a/projects/openshell-middleware-manager/src/openshell_middleware_manager/cli.py b/projects/openshell-middleware-manager/src/openshell_middleware_manager/cli.py index f31b8034..0708c232 100644 --- a/projects/openshell-middleware-manager/src/openshell_middleware_manager/cli.py +++ b/projects/openshell-middleware-manager/src/openshell_middleware_manager/cli.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Typer command-line interface for OpenShell middleware projects.""" from __future__ import annotations diff --git a/projects/openshell-middleware-manager/src/openshell_middleware_manager/generator.py b/projects/openshell-middleware-manager/src/openshell_middleware_manager/generator.py index 35331416..c8b95910 100644 --- a/projects/openshell-middleware-manager/src/openshell_middleware_manager/generator.py +++ b/projects/openshell-middleware-manager/src/openshell_middleware_manager/generator.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Safe, version-matched project creation and updates.""" from __future__ import annotations diff --git a/projects/openshell-middleware-manager/src/openshell_middleware_manager/templates/python/src/package/__init__.py b/projects/openshell-middleware-manager/src/openshell_middleware_manager/templates/python/src/package/__init__.py index 06bf21a9..3e86e80b 100644 --- a/projects/openshell-middleware-manager/src/openshell_middleware_manager/templates/python/src/package/__init__.py +++ b/projects/openshell-middleware-manager/src/openshell_middleware_manager/templates/python/src/package/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """__PROJECT_NAME__: an OpenShell supervisor middleware.""" diff --git a/projects/openshell-middleware-manager/src/openshell_middleware_manager/templates/python/src/package/server.py b/projects/openshell-middleware-manager/src/openshell_middleware_manager/templates/python/src/package/server.py index e5b7e49e..b4de2975 100644 --- a/projects/openshell-middleware-manager/src/openshell_middleware_manager/templates/python/src/package/server.py +++ b/projects/openshell-middleware-manager/src/openshell_middleware_manager/templates/python/src/package/server.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Pass-through OpenShell supervisor middleware server.""" from __future__ import annotations diff --git a/projects/openshell-middleware-manager/src/openshell_middleware_manager/templates/python/tests/test_server.py b/projects/openshell-middleware-manager/src/openshell_middleware_manager/templates/python/tests/test_server.py index 92d8926c..4c5eadc4 100644 --- a/projects/openshell-middleware-manager/src/openshell_middleware_manager/templates/python/tests/test_server.py +++ b/projects/openshell-middleware-manager/src/openshell_middleware_manager/templates/python/tests/test_server.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import asyncio import grpc diff --git a/projects/openshell-middleware-manager/tests/test_cli.py b/projects/openshell-middleware-manager/tests/test_cli.py index 37df66ba..2034799a 100644 --- a/projects/openshell-middleware-manager/tests/test_cli.py +++ b/projects/openshell-middleware-manager/tests/test_cli.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + from pathlib import Path from typer.testing import CliRunner diff --git a/projects/openshell-middleware-manager/tests/test_generator.py b/projects/openshell-middleware-manager/tests/test_generator.py index 2dce006c..66bf660e 100644 --- a/projects/openshell-middleware-manager/tests/test_generator.py +++ b/projects/openshell-middleware-manager/tests/test_generator.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + from __future__ import annotations import ctypes diff --git a/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/__init__.py b/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/__init__.py index 1e4d1294..c727dcf4 100644 --- a/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/__init__.py +++ b/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/__init__.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Trusted native controller for the Reachy Mini OpenShell agent.""" from reachy_mini_openshell_controller.settings import ControllerSettings diff --git a/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/app.py b/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/app.py index da453f6b..f0c7c79e 100644 --- a/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/app.py +++ b/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/app.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Reachy Mini Apps lifecycle integration for the OpenShell agent.""" from __future__ import annotations diff --git a/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/audio.py b/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/audio.py index 5ab4b281..0fc01baa 100644 --- a/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/audio.py +++ b/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/audio.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Small NumPy-only codec helpers for robot PCM audio.""" from __future__ import annotations diff --git a/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/bridge.py b/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/bridge.py index e125d5b4..80162a4d 100644 --- a/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/bridge.py +++ b/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/bridge.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Bidirectional audio bridge between Reachy hardware and the sandbox agent.""" from __future__ import annotations diff --git a/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/camera_adapter.py b/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/camera_adapter.py index dddbc50d..e0652c6a 100644 --- a/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/camera_adapter.py +++ b/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/camera_adapter.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Narrow trusted HTTP adapter for one-frame Reachy camera capture.""" from __future__ import annotations diff --git a/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/openshell.py b/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/openshell.py index 319ef19b..da9661f8 100644 --- a/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/openshell.py +++ b/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/openshell.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Fixed OpenShell lifecycle commands used by the trusted Reachy App.""" from __future__ import annotations diff --git a/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/settings.py b/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/settings.py index 536ec916..10c63c23 100644 --- a/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/settings.py +++ b/projects/reachy-mini-openshell/native-controller/src/reachy_mini_openshell_controller/settings.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Configuration for the trusted native controller.""" from __future__ import annotations diff --git a/projects/reachy-mini-openshell/native-controller/tests/test_audio.py b/projects/reachy-mini-openshell/native-controller/tests/test_audio.py index 80a9597a..fc7690cd 100644 --- a/projects/reachy-mini-openshell/native-controller/tests/test_audio.py +++ b/projects/reachy-mini-openshell/native-controller/tests/test_audio.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tests for the trusted native audio bridge.""" # ruff: noqa: D103 diff --git a/projects/reachy-mini-openshell/native-controller/tests/test_camera_adapter.py b/projects/reachy-mini-openshell/native-controller/tests/test_camera_adapter.py index 6ddba8c3..8577bb93 100644 --- a/projects/reachy-mini-openshell/native-controller/tests/test_camera_adapter.py +++ b/projects/reachy-mini-openshell/native-controller/tests/test_camera_adapter.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tests for the trusted native camera adapter.""" # ruff: noqa: D101, D102, D103, D107 diff --git a/projects/reachy-mini-openshell/native-controller/tests/test_openshell.py b/projects/reachy-mini-openshell/native-controller/tests/test_openshell.py index 9aaec242..230536e7 100644 --- a/projects/reachy-mini-openshell/native-controller/tests/test_openshell.py +++ b/projects/reachy-mini-openshell/native-controller/tests/test_openshell.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tests for fixed native OpenShell lifecycle commands.""" # ruff: noqa: D103 diff --git a/projects/reachy-mini-openshell/scripts/fake_openai_backend.py b/projects/reachy-mini-openshell/scripts/fake_openai_backend.py index 54f5f459..7e82ac72 100755 --- a/projects/reachy-mini-openshell/scripts/fake_openai_backend.py +++ b/projects/reachy-mini-openshell/scripts/fake_openai_backend.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tiny OpenAI-compatible backend for local Reachy conversation smoke tests.""" import io diff --git a/projects/reachy-mini-openshell/scripts/smoke-local-stt.sh b/projects/reachy-mini-openshell/scripts/smoke-local-stt.sh index cf278910..b3bff9be 100755 --- a/projects/reachy-mini-openshell/scripts/smoke-local-stt.sh +++ b/projects/reachy-mini-openshell/scripts/smoke-local-stt.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + set -euo pipefail SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" diff --git a/projects/reachy-mini-openshell/scripts/start-local.sh b/projects/reachy-mini-openshell/scripts/start-local.sh index 2065d463..460a39a3 100755 --- a/projects/reachy-mini-openshell/scripts/start-local.sh +++ b/projects/reachy-mini-openshell/scripts/start-local.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + set -euo pipefail SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/__init__.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/__init__.py index efa9d4d8..9c43d627 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/__init__.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/__init__.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Reachy Mini conversation app fork for OpenShell demos.""" from importlib.metadata import PackageNotFoundError, version diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/__main__.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/__main__.py index e5091e7b..4406b87e 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/__main__.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/__main__.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + from reachy_mini_conversation_app.main import main diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/audio/__init__.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/audio/__init__.py index 4eb1e731..afdb9913 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/audio/__init__.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/audio/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Audio helpers for Reachy Mini speech playback and movement.""" diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/audio/head_wobbler.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/audio/head_wobbler.py index 805d1cdb..da0d5c45 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/audio/head_wobbler.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/audio/head_wobbler.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Moves head given audio samples.""" import time diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/audio/mic_phrase.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/audio/mic_phrase.py index 6c15aeaf..19ec9604 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/audio/mic_phrase.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/audio/mic_phrase.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Microphone phrase buffering for local-STT transcription.""" from typing import Any diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/audio/pcm.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/audio/pcm.py index 84e35147..07d6b289 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/audio/pcm.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/audio/pcm.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """PCM and WAV helpers shared by realtime and local-STT backends.""" import io diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/audio/speech_tapper.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/audio/speech_tapper.py index 3f4a2f16..374b2e25 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/audio/speech_tapper.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/audio/speech_tapper.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + from __future__ import annotations import math from typing import Any, Dict, List diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/backend_check.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/backend_check.py index f476aba7..6548229b 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/backend_check.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/backend_check.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Backend configuration and endpoint smoke checks for the conversation app.""" import asyncio diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/backend_runtime.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/backend_runtime.py index f94f3c9f..2e5e5106 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/backend_runtime.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/backend_runtime.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + from typing import Final, Literal from dataclasses import dataclass diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/camera_worker.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/camera_worker.py index e20dce9a..375e4319 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/camera_worker.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/camera_worker.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Camera worker thread with frame buffering and face tracking. Ported from main_works.py camera_worker() function to provide: diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/chat_completions.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/chat_completions.py index dc0dde55..1ee131cc 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/chat_completions.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/chat_completions.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Chat Completions text/tool loop for the local-STT backend.""" import re diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/config.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/config.py index d1dd903c..3ecadbb4 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/config.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/config.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import os import re import sys diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/console.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/console.py index dd81b69b..918c33ba 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/console.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/console.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Bidirectional local audio stream for Reachy Mini audio.""" import time diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/conversation_stream.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/conversation_stream.py index 574ecffa..e783df43 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/conversation_stream.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/conversation_stream.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import json import uuid import base64 diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/dance_emotion_moves.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/dance_emotion_moves.py index f738c678..61e0608a 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/dance_emotion_moves.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/dance_emotion_moves.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Dance and emotion moves for the movement queue system. This module implements dance moves and emotions as Move objects that can be queued diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/goto_queue_move.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/goto_queue_move.py index bf9c6599..b3e740ca 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/goto_queue_move.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/goto_queue_move.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Queued goto move for direct head, antenna, and body-yaw targets.""" from __future__ import annotations diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/local_stt_backend.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/local_stt_backend.py index 9b1636f7..727cba7c 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/local_stt_backend.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/local_stt_backend.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Local-STT backend adapter for STT -> Chat Completions/tools -> TTS.""" from typing import Any diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/main.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/main.py index ce5b3bc3..b2a2da1f 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/main.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/main.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Entrypoint for the Reachy Mini conversation app.""" from __future__ import annotations diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/media_result_processor.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/media_result_processor.py index ae270689..795a401e 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/media_result_processor.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/media_result_processor.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Process raw local-tool media before any result reaches a conversation model.""" from __future__ import annotations diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/moves.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/moves.py index cbb8a3bd..127817cb 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/moves.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/moves.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Movement system with sequential primary moves and additive secondary moves. Design overview diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/native_app.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/native_app.py index ae2ac48d..c5b70ba5 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/native_app.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/native_app.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Native Reachy Mini Apps integration for local robot installations.""" import asyncio diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/profiles/__init__.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/profiles/__init__.py index f2f5f454..14f9f34b 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/profiles/__init__.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/profiles/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Profiles for Reachy Mini conversation app.""" diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/profiles/_reachy_mini_conversation_app_locked_profile/__init__.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/profiles/_reachy_mini_conversation_app_locked_profile/__init__.py index 2657e8cf..77680a93 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/profiles/_reachy_mini_conversation_app_locked_profile/__init__.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/profiles/_reachy_mini_conversation_app_locked_profile/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Locked Reachy OpenShell profile.""" diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/profiles/_reachy_mini_conversation_app_locked_profile/scan_scene.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/profiles/_reachy_mini_conversation_app_locked_profile/scan_scene.py index 48d81a87..8552494d 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/profiles/_reachy_mini_conversation_app_locked_profile/scan_scene.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/profiles/_reachy_mini_conversation_app_locked_profile/scan_scene.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Record a synchronized Reachy sweep and return representative vision frames.""" from __future__ import annotations diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/profiles/_reachy_mini_conversation_app_locked_profile/sweep_look.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/profiles/_reachy_mini_conversation_app_locked_profile/sweep_look.py index 1e4e882d..b7f9ebc9 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/profiles/_reachy_mini_conversation_app_locked_profile/sweep_look.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/profiles/_reachy_mini_conversation_app_locked_profile/sweep_look.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import logging from typing import Any, Dict diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/prompts.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/prompts.py index d174c6b6..e22a87a8 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/prompts.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/prompts.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import sys import logging from pathlib import Path diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/realtime_backends.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/realtime_backends.py index 76fb6747..0bfc1fe1 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/realtime_backends.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/realtime_backends.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import logging from typing import Any from dataclasses import dataclass diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/rest_tool_transport.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/rest_tool_transport.py index d412c8cd..cefcf1ba 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/rest_tool_transport.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/rest_tool_transport.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Direct, policy-aware Reachy REST tool transport.""" from __future__ import annotations diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/robot_runtime.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/robot_runtime.py index f6235b94..180ba1b9 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/robot_runtime.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/robot_runtime.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Reusable lifecycle for a Reachy Mini robot and its local workers.""" from __future__ import annotations diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/sandbox_audio.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/sandbox_audio.py index 6e3600f6..a7069e19 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/sandbox_audio.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/sandbox_audio.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Headless audio service for the OpenShell-hosted conversation agent.""" from __future__ import annotations diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/sandbox_control.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/sandbox_control.py index e11d59f0..cd8ab008 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/sandbox_control.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/sandbox_control.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Idempotent lifecycle control for the agent process inside a sandbox.""" from __future__ import annotations diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/speech_endpoints.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/speech_endpoints.py index a20f2d33..01d7340f 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/speech_endpoints.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/speech_endpoints.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """OpenAI-compatible STT and TTS endpoint helpers for local-STT mode.""" from typing import Any, Callable diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tool_transport.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tool_transport.py index 1e068c50..d4e55de0 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tool_transport.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tool_transport.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tool transport abstraction and direct in-process implementation.""" from __future__ import annotations diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/__init__.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/__init__.py index 6bc971c2..dd8902f9 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/__init__.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tools loaded by the locked Reachy OpenShell profile.""" diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/background_tool_manager.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/background_tool_manager.py index 60e5e781..35073c47 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/background_tool_manager.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/background_tool_manager.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Background tool orchestrator for non-blocking tool execution. Allows tools to run long operations asynchronously while the robot diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/camera.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/camera.py index 7fdb330e..5427d560 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/camera.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/camera.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import base64 import asyncio import logging diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/core_tools.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/core_tools.py index 847949ee..9d6787ee 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/core_tools.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/core_tools.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + from __future__ import annotations import abc import json diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/dance.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/dance.py index c67229ee..114f8400 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/dance.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/dance.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import logging from typing import Any, Dict diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/do_nothing.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/do_nothing.py index c64588f6..c96bdb70 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/do_nothing.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/do_nothing.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import logging from typing import Any, Dict diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/head_tracking.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/head_tracking.py index 57fa178d..18c9c4a2 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/head_tracking.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/head_tracking.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import logging from typing import Any, Dict diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/move_head.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/move_head.py index e129ca95..7ba851ff 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/move_head.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/move_head.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import logging from typing import Any, Dict, Tuple, Literal diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/play_emotion.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/play_emotion.py index e425b68f..c88f9e3c 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/play_emotion.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/play_emotion.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import logging from typing import Any, Dict diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/stop_dance.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/stop_dance.py index cc3980a3..783132f8 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/stop_dance.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/stop_dance.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import logging from typing import Any, Dict diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/stop_emotion.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/stop_emotion.py index 0e323722..a85418cc 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/stop_emotion.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/stop_emotion.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import logging from typing import Any, Dict diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/task_cancel.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/task_cancel.py index 6e3c6e89..1a078c7c 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/task_cancel.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/task_cancel.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tool cancel tool - cancel running background tools.""" import logging diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/task_status.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/task_status.py index 1922229d..acd243cd 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/task_status.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/task_status.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tool status tool - check status of background tools.""" import time diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/tool_constants.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/tool_constants.py index da163c09..9e3644ab 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/tool_constants.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/tools/tool_constants.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + from enum import Enum diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/utils.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/utils.py index e0b9247c..753218aa 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/utils.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/utils.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + from __future__ import annotations import logging import argparse diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/vision/__init__.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/vision/__init__.py index b88baccc..29e950ec 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/vision/__init__.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/vision/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Optional vision integrations for the Reachy Mini conversation app.""" diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/vision/processors.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/vision/processors.py index 6936cb85..d5c817a4 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/vision/processors.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/vision/processors.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import os import time import base64 diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/vision/yolo_head_tracker.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/vision/yolo_head_tracker.py index 4a6bd636..6369dd2d 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/vision/yolo_head_tracker.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/vision/yolo_head_tracker.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + from __future__ import annotations import logging from typing import Tuple diff --git a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/vision_router.py b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/vision_router.py index 8da4bad9..084b418d 100644 --- a/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/vision_router.py +++ b/projects/reachy-mini-openshell/src/reachy_mini_conversation_app/vision_router.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Single-model routing for camera and scene-scan image analysis.""" from __future__ import annotations diff --git a/projects/reachy-mini-openshell/style.css b/projects/reachy-mini-openshell/style.css index c8bbe123..84ab5f89 100644 --- a/projects/reachy-mini-openshell/style.css +++ b/projects/reachy-mini-openshell/style.css @@ -1,3 +1,6 @@ +/* SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. */ +/* SPDX-License-Identifier: Apache-2.0 */ + :root { --bg: #060b1a; --bg-2: #071023; diff --git a/projects/reachy-mini-openshell/tests/audio/test_head_wobbler.py b/projects/reachy-mini-openshell/tests/audio/test_head_wobbler.py index 853dcfbe..802d103e 100644 --- a/projects/reachy-mini-openshell/tests/audio/test_head_wobbler.py +++ b/projects/reachy-mini-openshell/tests/audio/test_head_wobbler.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Regression tests for the audio-driven head wobble behaviour.""" import math diff --git a/projects/reachy-mini-openshell/tests/audio/test_pcm.py b/projects/reachy-mini-openshell/tests/audio/test_pcm.py index 5de7c021..1dbbcf05 100644 --- a/projects/reachy-mini-openshell/tests/audio/test_pcm.py +++ b/projects/reachy-mini-openshell/tests/audio/test_pcm.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import wave from pathlib import Path diff --git a/projects/reachy-mini-openshell/tests/conftest.py b/projects/reachy-mini-openshell/tests/conftest.py index 0e7310d4..362d5a4b 100644 --- a/projects/reachy-mini-openshell/tests/conftest.py +++ b/projects/reachy-mini-openshell/tests/conftest.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Pytest configuration for path setup.""" import os diff --git a/projects/reachy-mini-openshell/tests/test_backend_check.py b/projects/reachy-mini-openshell/tests/test_backend_check.py index fae46b91..4ff3c3a2 100644 --- a/projects/reachy-mini-openshell/tests/test_backend_check.py +++ b/projects/reachy-mini-openshell/tests/test_backend_check.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import os from typing import Any from argparse import Namespace diff --git a/projects/reachy-mini-openshell/tests/test_backend_runtime.py b/projects/reachy-mini-openshell/tests/test_backend_runtime.py index dcc0bcc2..5d261f26 100644 --- a/projects/reachy-mini-openshell/tests/test_backend_runtime.py +++ b/projects/reachy-mini-openshell/tests/test_backend_runtime.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + from typing import Any import reachy_mini_conversation_app.config as config_mod diff --git a/projects/reachy-mini-openshell/tests/test_camera_policy.py b/projects/reachy-mini-openshell/tests/test_camera_policy.py index 6cf85ddd..68573c96 100644 --- a/projects/reachy-mini-openshell/tests/test_camera_policy.py +++ b/projects/reachy-mini-openshell/tests/test_camera_policy.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Regression tests for the two explicit camera policy modes.""" # ruff: noqa: D103 diff --git a/projects/reachy-mini-openshell/tests/test_chat_completions_media.py b/projects/reachy-mini-openshell/tests/test_chat_completions_media.py index bf8489d0..557957db 100644 --- a/projects/reachy-mini-openshell/tests/test_chat_completions_media.py +++ b/projects/reachy-mini-openshell/tests/test_chat_completions_media.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tests for camera media passed through the Chat Completions tool loop.""" import json diff --git a/projects/reachy-mini-openshell/tests/test_config.py b/projects/reachy-mini-openshell/tests/test_config.py index be194693..0c8eb177 100644 --- a/projects/reachy-mini-openshell/tests/test_config.py +++ b/projects/reachy-mini-openshell/tests/test_config.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import os import sys import json diff --git a/projects/reachy-mini-openshell/tests/test_conversation_stream.py b/projects/reachy-mini-openshell/tests/test_conversation_stream.py index 760435ee..f010f7b2 100644 --- a/projects/reachy-mini-openshell/tests/test_conversation_stream.py +++ b/projects/reachy-mini-openshell/tests/test_conversation_stream.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import json import base64 import random diff --git a/projects/reachy-mini-openshell/tests/test_fake_openai_backend.py b/projects/reachy-mini-openshell/tests/test_fake_openai_backend.py index 0925f4e9..20064fed 100644 --- a/projects/reachy-mini-openshell/tests/test_fake_openai_backend.py +++ b/projects/reachy-mini-openshell/tests/test_fake_openai_backend.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import wave import importlib.util from typing import Any diff --git a/projects/reachy-mini-openshell/tests/test_local_stt_backend.py b/projects/reachy-mini-openshell/tests/test_local_stt_backend.py index 9d82d858..483e3ea2 100644 --- a/projects/reachy-mini-openshell/tests/test_local_stt_backend.py +++ b/projects/reachy-mini-openshell/tests/test_local_stt_backend.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + from typing import Any from unittest.mock import MagicMock diff --git a/projects/reachy-mini-openshell/tests/test_main.py b/projects/reachy-mini-openshell/tests/test_main.py index 7a7a90ed..4e5773b1 100644 --- a/projects/reachy-mini-openshell/tests/test_main.py +++ b/projects/reachy-mini-openshell/tests/test_main.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import sys from typing import Any diff --git a/projects/reachy-mini-openshell/tests/test_media_result_processor.py b/projects/reachy-mini-openshell/tests/test_media_result_processor.py index 9ae8fc29..9d626b07 100644 --- a/projects/reachy-mini-openshell/tests/test_media_result_processor.py +++ b/projects/reachy-mini-openshell/tests/test_media_result_processor.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tests for the optional local raw-media boundary.""" import base64 diff --git a/projects/reachy-mini-openshell/tests/test_mic_phrase.py b/projects/reachy-mini-openshell/tests/test_mic_phrase.py index 36eae434..0c169533 100644 --- a/projects/reachy-mini-openshell/tests/test_mic_phrase.py +++ b/projects/reachy-mini-openshell/tests/test_mic_phrase.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import numpy as np from reachy_mini_conversation_app.audio.mic_phrase import MicPhraseBuffer, MicPhraseConfig diff --git a/projects/reachy-mini-openshell/tests/test_moves_delivery.py b/projects/reachy-mini-openshell/tests/test_moves_delivery.py index 446ad191..10aad393 100644 --- a/projects/reachy-mini-openshell/tests/test_moves_delivery.py +++ b/projects/reachy-mini-openshell/tests/test_moves_delivery.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + from __future__ import annotations from typing import Any diff --git a/projects/reachy-mini-openshell/tests/test_package.py b/projects/reachy-mini-openshell/tests/test_package.py index d6a38299..c1314506 100644 --- a/projects/reachy-mini-openshell/tests/test_package.py +++ b/projects/reachy-mini-openshell/tests/test_package.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + import reachy_mini_conversation_app diff --git a/projects/reachy-mini-openshell/tests/test_prompts.py b/projects/reachy-mini-openshell/tests/test_prompts.py index 3ade4c10..3622566a 100644 --- a/projects/reachy-mini-openshell/tests/test_prompts.py +++ b/projects/reachy-mini-openshell/tests/test_prompts.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tests for locked Realtime session instructions.""" from reachy_mini_conversation_app.prompts import get_session_instructions diff --git a/projects/reachy-mini-openshell/tests/test_realtime_backends.py b/projects/reachy-mini-openshell/tests/test_realtime_backends.py index 8f71f00c..dcab83ed 100644 --- a/projects/reachy-mini-openshell/tests/test_realtime_backends.py +++ b/projects/reachy-mini-openshell/tests/test_realtime_backends.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + from typing import Any import pytest diff --git a/projects/reachy-mini-openshell/tests/test_rest_tool_transport.py b/projects/reachy-mini-openshell/tests/test_rest_tool_transport.py index 802b4255..63da3628 100644 --- a/projects/reachy-mini-openshell/tests/test_rest_tool_transport.py +++ b/projects/reachy-mini-openshell/tests/test_rest_tool_transport.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tests for the fixed Reachy daemon REST transport.""" from __future__ import annotations diff --git a/projects/reachy-mini-openshell/tests/test_robot_runtime.py b/projects/reachy-mini-openshell/tests/test_robot_runtime.py index 75c292f2..f5b6a029 100644 --- a/projects/reachy-mini-openshell/tests/test_robot_runtime.py +++ b/projects/reachy-mini-openshell/tests/test_robot_runtime.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + from __future__ import annotations from typing import Any from pathlib import Path diff --git a/projects/reachy-mini-openshell/tests/test_sandbox_audio.py b/projects/reachy-mini-openshell/tests/test_sandbox_audio.py index 1f650ca8..d2bc83df 100644 --- a/projects/reachy-mini-openshell/tests/test_sandbox_audio.py +++ b/projects/reachy-mini-openshell/tests/test_sandbox_audio.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tests for the sandbox audio WebSocket service.""" # ruff: noqa: D101, D102, D103, D107 diff --git a/projects/reachy-mini-openshell/tests/test_sandbox_control.py b/projects/reachy-mini-openshell/tests/test_sandbox_control.py index 2f54f1f4..ded31933 100644 --- a/projects/reachy-mini-openshell/tests/test_sandbox_control.py +++ b/projects/reachy-mini-openshell/tests/test_sandbox_control.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tests for in-sandbox lifecycle control.""" # ruff: noqa: D103 diff --git a/projects/reachy-mini-openshell/tests/test_speech_endpoints.py b/projects/reachy-mini-openshell/tests/test_speech_endpoints.py index 9911be99..49f8cd83 100644 --- a/projects/reachy-mini-openshell/tests/test_speech_endpoints.py +++ b/projects/reachy-mini-openshell/tests/test_speech_endpoints.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + from typing import Any import numpy as np diff --git a/projects/reachy-mini-openshell/tests/test_tool_transports.py b/projects/reachy-mini-openshell/tests/test_tool_transports.py index 0618c017..5c83d112 100644 --- a/projects/reachy-mini-openshell/tests/test_tool_transports.py +++ b/projects/reachy-mini-openshell/tests/test_tool_transports.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tests for local and routed tool transports.""" from __future__ import annotations diff --git a/projects/reachy-mini-openshell/tests/test_vision_router.py b/projects/reachy-mini-openshell/tests/test_vision_router.py index 067467d4..701c4f70 100644 --- a/projects/reachy-mini-openshell/tests/test_vision_router.py +++ b/projects/reachy-mini-openshell/tests/test_vision_router.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tests for single-model camera and scene-scan routing.""" from typing import Any diff --git a/projects/reachy-mini-openshell/tests/tools/test_background_tool_manager.py b/projects/reachy-mini-openshell/tests/tools/test_background_tool_manager.py index d7ee29b5..74032c46 100644 --- a/projects/reachy-mini-openshell/tests/tools/test_background_tool_manager.py +++ b/projects/reachy-mini-openshell/tests/tools/test_background_tool_manager.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tests for BackgroundToolManager.""" from __future__ import annotations diff --git a/projects/reachy-mini-openshell/tests/tools/test_camera.py b/projects/reachy-mini-openshell/tests/tools/test_camera.py index 91877f61..7dcc4743 100644 --- a/projects/reachy-mini-openshell/tests/tools/test_camera.py +++ b/projects/reachy-mini-openshell/tests/tools/test_camera.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tests for the camera tool's routed vision behavior.""" from typing import Any diff --git a/projects/reachy-mini-openshell/tests/tools/test_core_tools.py b/projects/reachy-mini-openshell/tests/tools/test_core_tools.py index 58376ed0..0c29c898 100644 --- a/projects/reachy-mini-openshell/tests/tools/test_core_tools.py +++ b/projects/reachy-mini-openshell/tests/tools/test_core_tools.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tests for profile tool registration and dependency-aware exposure.""" from typing import Any, cast diff --git a/projects/reachy-mini-openshell/tests/tools/test_move_head.py b/projects/reachy-mini-openshell/tests/tools/test_move_head.py index bac9f0b7..24e9f366 100644 --- a/projects/reachy-mini-openshell/tests/tools/test_move_head.py +++ b/projects/reachy-mini-openshell/tests/tools/test_move_head.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tests for ordered Reachy Mini head movements.""" from unittest.mock import MagicMock diff --git a/projects/reachy-mini-openshell/tests/tools/test_play_emotion.py b/projects/reachy-mini-openshell/tests/tools/test_play_emotion.py index 6a86d501..a966898b 100644 --- a/projects/reachy-mini-openshell/tests/tools/test_play_emotion.py +++ b/projects/reachy-mini-openshell/tests/tools/test_play_emotion.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + from typing import Any, cast import pytest diff --git a/projects/reachy-mini-openshell/tests/tools/test_scan_scene.py b/projects/reachy-mini-openshell/tests/tools/test_scan_scene.py index 2a770481..284406bd 100644 --- a/projects/reachy-mini-openshell/tests/tools/test_scan_scene.py +++ b/projects/reachy-mini-openshell/tests/tools/test_scan_scene.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tests for synchronized Reachy scene scanning and recording.""" import base64 diff --git a/projects/reachy-mini-openshell/tests/vision/test_processors.py b/projects/reachy-mini-openshell/tests/vision/test_processors.py index 9b6c7e93..0176fcfe 100644 --- a/projects/reachy-mini-openshell/tests/vision/test_processors.py +++ b/projects/reachy-mini-openshell/tests/vision/test_processors.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + """Tests for the vision processing module.""" import time diff --git a/projects/robotics-policy-prover/src/styles.css b/projects/robotics-policy-prover/src/styles.css index 9ff99a1c..83163772 100644 --- a/projects/robotics-policy-prover/src/styles.css +++ b/projects/robotics-policy-prover/src/styles.css @@ -1,3 +1,6 @@ +/* SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. */ +/* SPDX-License-Identifier: Apache-2.0 */ + :root { color-scheme: light; font-family: diff --git a/scripts/update_license_headers.py b/scripts/update_license_headers.py index 8d63bbc7..d7257562 100644 --- a/scripts/update_license_headers.py +++ b/scripts/update_license_headers.py @@ -19,6 +19,7 @@ ".egg-info", ".git", ".pytest_cache", + "/bindings/", "node_modules", ".venv", "venv", @@ -396,7 +397,7 @@ def main(path: Path, check_only: bool = False) -> tuple[int, int, int, list[Path total_processed = total_updated = total_skipped = 0 # Process root-level directories - for folder in ["docs", "scripts", "tests_e2e"]: + for folder in ["dev-tools", "docs", "projects", "scripts", "tests_e2e"]: folder_path = repo_path / folder if not folder_path.exists(): continue