Files
Elydora-Open-Source/sdks/python/elydora/plugins/kiroide_command.py
T
雷电芽衣 bc6983a62e chore(oss): audit the server package and resync the SDK mirrors
Split the 657-line operation service into eor, submit, and verify
modules, add the AGENT_REVOKED and KEY_RETIRED codes the Backend already
emits, and condense every multi-line comment. Mirror Node, Python, and
Go at 2.1.0 with the deep-health 503, non-idempotent retry, rotation
grace, and path-encoding fixes. Document which routes and response
fields the self-hosted server does not provide.

Claude-Session: https://claude.ai/code/session_01Agoc9bRVE9KL7mmWtey9Vq
2026-09-03 20:48:20 -04:00

97 lines
2.8 KiB
Python

"""Kiro IDE command rendering and exact runtime ownership."""
from __future__ import annotations
from dataclasses import dataclass
import os
import re
import sys
from typing import Optional, Tuple
from ._runtime import managed_script_reference, same_path
from ._shell_command import (
encoded_windows_command,
is_python_executable,
parse_encoded_windows_command,
parse_posix_command,
posix_source,
windows_powershell_path,
)
_PREAMBLE = "$ErrorActionPreference = 'Stop'; $global:LASTEXITCODE = 1; "
@dataclass(frozen=True)
class KiroIdeRuntimeReference:
agent_id: str
script_path: str
def build_kiroide_command(script_path: str) -> str:
if (
not os.path.isabs(sys.executable)
or not is_python_executable(sys.executable)
or not os.path.isabs(script_path)
):
raise ValueError(
"Kiro IDE hook commands require an absolute Python executable "
"and script path"
)
if os.name == "nt":
return encoded_windows_command(script_path, _PREAMBLE)
return posix_source(script_path)
def _runtime_reference(
executable: str, script_path: str, script_name: str
) -> Optional[KiroIdeRuntimeReference]:
if not os.path.isabs(executable) or not is_python_executable(executable):
return None
reference = managed_script_reference(script_path, script_name)
return None if reference is None else KiroIdeRuntimeReference(*reference)
def _parse_kiroide_command(command: str) -> Optional[Tuple[str, str]]:
if os.name == "nt":
return parse_encoded_windows_command(
command, _PREAMBLE + "& ", windows_powershell_path()
)
return parse_posix_command(command)
def owned_kiroide_runtime_reference(
command: str, script_name: str
) -> Optional[KiroIdeRuntimeReference]:
parsed = _parse_kiroide_command(command)
if parsed is None:
return None
return _runtime_reference(parsed[0], parsed[1], script_name)
def kiroide_runtime_reference(
command: str, script_name: str
) -> Optional[KiroIdeRuntimeReference]:
parsed = _parse_kiroide_command(command)
if parsed is None or not same_path(parsed[0], sys.executable):
return None
return _runtime_reference(parsed[0], parsed[1], script_name)
def legacy_guard_reference(
command: object, script_name: str
) -> Optional[KiroIdeRuntimeReference]:
if not isinstance(command, str):
return None
match = re.fullmatch(r'"([^"\r\n]+)" (.+)', command)
if match is None:
return None
return _runtime_reference(match.group(1), match.group(2), script_name)
def legacy_audit_reference(
command: object, script_name: str
) -> Optional[KiroIdeRuntimeReference]:
if not isinstance(command, str):
return None
return _runtime_reference(sys.executable, command, script_name)