API / kiro-gateway /kiro /__init__.py
sshinmen's picture
Clean deploy to HF Space
bf9e111
Raw
History Blame Contribute Delete
3.38 kB
# -*- coding: utf-8 -*-
# Kiro Gateway
# https://github.com/jwadow/kiro-gateway
# Copyright (C) 2025 Jwadow
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
"""
Kiro Gateway - Proxy for Kiro API.
This package provides a modular architecture for proxying
OpenAI API requests to Kiro (AWS CodeWhisperer).
Modules:
- config: Configuration and constants
- models: Pydantic models for OpenAI API
- auth: Kiro authentication manager
- cache: Model metadata cache
- utils: Helper utilities
- converters: OpenAI <-> Kiro format conversion
- parsers: AWS SSE stream parsers
- streaming: Response streaming logic
- http_client: HTTP client with retry logic
- routes: FastAPI routes
- exceptions: Exception handlers
"""
# Version is imported from config.py — the single source of truth
# This allows changing the version in only one place
from kiro.config import APP_VERSION as __version__
__author__ = "Jwadow"
# Main components for convenient import
from kiro.auth import KiroAuthManager
from kiro.cache import ModelInfoCache
from kiro.http_client import KiroHttpClient
from kiro.routes_openai import router
from kiro.model_resolver import ModelResolver, normalize_model_name, get_model_id_for_kiro
# Configuration
from kiro.config import (
PROXY_API_KEY,
REGION,
HIDDEN_MODELS,
APP_VERSION,
)
# Models
from kiro.models_openai import (
ChatCompletionRequest,
ChatMessage,
OpenAIModel,
ModelList,
)
# Converters
from kiro.converters_openai import build_kiro_payload
from kiro.converters_core import (
extract_text_content,
merge_adjacent_messages,
)
# Parsers
from kiro.parsers import (
AwsEventStreamParser,
parse_bracket_tool_calls,
)
# Streaming
from kiro.streaming_openai import (
stream_kiro_to_openai,
collect_stream_response,
)
# Exceptions
from kiro.exceptions import (
validation_exception_handler,
sanitize_validation_errors,
)
__all__ = [
# Version
"__version__",
# Main classes
"KiroAuthManager",
"ModelInfoCache",
"KiroHttpClient",
"ModelResolver",
"router",
# Configuration
"PROXY_API_KEY",
"REGION",
"HIDDEN_MODELS",
"APP_VERSION",
# Model resolution
"normalize_model_name",
"get_model_id_for_kiro",
# Models
"ChatCompletionRequest",
"ChatMessage",
"OpenAIModel",
"ModelList",
# Converters
"build_kiro_payload",
"extract_text_content",
"merge_adjacent_messages",
# Parsers
"AwsEventStreamParser",
"parse_bracket_tool_calls",
# Streaming
"stream_kiro_to_openai",
"collect_stream_response",
# Exceptions
"validation_exception_handler",
"sanitize_validation_errors",
]