mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-03 01:40:21 +08:00
103 lines
3.5 KiB
Python
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",
|
||
|
|
]
|