Files
Aether/_deprecated_py_src/services/provider/adapters/kiro/headers.py
fawney19 1d9c77522a refactor: 移除 Python 后端源码,全面迁移至 Rust gateway 架构
- 删除全部 Python 源码 (src/) 及 Alembic 迁移脚本,归档至 _deprecated_py_src/
- 重构 Rust gateway ai_pipeline: 拆分 planner/finalize 模块,新增 contracts/adaptation 层
- 重组 handlers 模块为 admin/public/proxy/internal/shared 子模块结构
- 新增 executor 模块,引入 Rust 原生数据库迁移 (aether-data/migrations)
- 简化 CI/Docker 构建流程,移除 base image 二级构建,统一为单一 app image
- 移除 Python 相关基础设施文件 (entrypoint.sh, gunicorn_conf.py, Dockerfile.base)
2026-04-03 16:26:16 +08:00

103 lines
3.5 KiB
Python

"""Kiro header builders."""
from __future__ import annotations
import uuid
from src.services.provider.adapters.kiro.constants import (
AWS_EVENTSTREAM_CONTENT_TYPE,
AWS_SDK_JS_MAIN_VERSION,
AWS_SDK_JS_USAGE_VERSION,
CODEWHISPERER_OPTOUT,
DEFAULT_KIRO_VERSION,
DEFAULT_NODE_VERSION,
DEFAULT_SYSTEM_VERSION,
KIRO_AGENT_MODE,
)
def build_kiro_ide_tag(*, kiro_version: str, machine_id: str) -> str:
version = (kiro_version or DEFAULT_KIRO_VERSION).strip() or DEFAULT_KIRO_VERSION
mid = (machine_id or "").strip()
return f"KiroIDE-{version}-{mid}" if mid else f"KiroIDE-{version}"
def build_x_amz_user_agent_main(*, kiro_version: str, machine_id: str) -> str:
return f"aws-sdk-js/{AWS_SDK_JS_MAIN_VERSION} {build_kiro_ide_tag(kiro_version=kiro_version, machine_id=machine_id)}"
def build_user_agent_main(
*, system_version: str, node_version: str, kiro_version: str, machine_id: str
) -> str:
os_tag = (system_version or DEFAULT_SYSTEM_VERSION).strip() or DEFAULT_SYSTEM_VERSION
node_tag = (node_version or DEFAULT_NODE_VERSION).strip() or DEFAULT_NODE_VERSION
ide = build_kiro_ide_tag(kiro_version=kiro_version, machine_id=machine_id)
return (
f"aws-sdk-js/{AWS_SDK_JS_MAIN_VERSION} ua/2.1 os/{os_tag} lang/js "
f"md/nodejs#{node_tag} api/codewhispererstreaming#{AWS_SDK_JS_MAIN_VERSION} m/E {ide}"
)
def build_x_amz_user_agent_usage(*, kiro_version: str, machine_id: str) -> str:
ide = build_kiro_ide_tag(kiro_version=kiro_version, machine_id=machine_id)
return f"aws-sdk-js/{AWS_SDK_JS_USAGE_VERSION} {ide}"
def build_user_agent_usage(*, kiro_version: str, machine_id: str) -> str:
ide = build_kiro_ide_tag(kiro_version=kiro_version, machine_id=machine_id)
os_tag = DEFAULT_SYSTEM_VERSION
node_tag = DEFAULT_NODE_VERSION
return (
f"aws-sdk-js/{AWS_SDK_JS_USAGE_VERSION} ua/2.1 os/{os_tag} lang/js "
f"md/nodejs#{node_tag} api/codewhispererruntime#1.0.0 m/N,E {ide}"
)
def build_generate_assistant_headers(
*,
host: str,
access_token: str | None = None,
machine_id: str,
kiro_version: str | None = None,
system_version: str | None = None,
node_version: str | None = None,
) -> dict[str, str]:
version = (kiro_version or DEFAULT_KIRO_VERSION).strip() or DEFAULT_KIRO_VERSION
sys_ver = (system_version or DEFAULT_SYSTEM_VERSION).strip() or DEFAULT_SYSTEM_VERSION
node_ver = (node_version or DEFAULT_NODE_VERSION).strip() or DEFAULT_NODE_VERSION
headers: dict[str, str] = {
"Content-Type": "application/json",
"Accept": AWS_EVENTSTREAM_CONTENT_TYPE,
"host": host,
"Connection": "close",
"x-amzn-codewhisperer-optout": CODEWHISPERER_OPTOUT,
"x-amzn-kiro-agent-mode": KIRO_AGENT_MODE,
"x-amz-user-agent": build_x_amz_user_agent_main(
kiro_version=version, machine_id=machine_id
),
"User-Agent": build_user_agent_main(
system_version=sys_ver,
node_version=node_ver,
kiro_version=version,
machine_id=machine_id,
),
"amz-sdk-invocation-id": str(uuid.uuid4()),
"amz-sdk-request": "attempt=1; max=3",
}
if access_token:
headers["Authorization"] = f"Bearer {access_token}"
return headers
__all__ = [
"build_generate_assistant_headers",
"build_kiro_ide_tag",
"build_user_agent_main",
"build_user_agent_usage",
"build_x_amz_user_agent_main",
"build_x_amz_user_agent_usage",
]