fix(lint): ruff auto-fix + lewooogo-core src 加入 git

- Python: ruff --fix 修復 280 個 lint 錯誤
- lewooogo-core: src/ 目錄未追蹤,導致 CI eslint 失敗

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
OG T
2026-03-23 23:51:37 +08:00
parent f78aab8b2a
commit 6f049877fc
68 changed files with 366 additions and 358 deletions

View File

@@ -20,10 +20,10 @@ from src.models.approval import (
PendingApprovalsResponse,
RejectRequest,
RiskLevel,
SignRequest,
SignResponse,
Signature,
SignatureSource,
SignRequest,
SignResponse,
)
# Incident Models (Phase 6 - 認知覺醒)

View File

@@ -10,6 +10,7 @@ CAI-101: ClawBot AI 結構化輸出模型
"""
from enum import Enum
from pydantic import BaseModel, Field, field_validator

View File

@@ -10,13 +10,12 @@ Features:
- Pydantic 強型別驗證
"""
from datetime import datetime, timezone
from datetime import UTC, datetime
from enum import Enum
from uuid import UUID, uuid4
from pydantic import BaseModel, Field
# =============================================================================
# Enums
# =============================================================================
@@ -102,7 +101,7 @@ class Signature(BaseModel):
id: UUID = Field(default_factory=uuid4)
signer_id: str = Field(..., description="簽核者 ID")
signer_name: str = Field(..., description="簽核者名稱")
signed_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
signed_at: datetime = Field(default_factory=lambda: datetime.now(UTC))
comment: str | None = None
# Phase 5.4.5: Telegram 審計軌跡
@@ -153,14 +152,14 @@ class ApprovalRequest(ApprovalRequestBase):
status: ApprovalStatus = Field(default=ApprovalStatus.PENDING)
required_signatures: int = Field(..., description="所需簽核數")
signatures: list[Signature] = Field(default_factory=list)
created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
updated_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
created_at: datetime = Field(default_factory=lambda: datetime.now(UTC))
updated_at: datetime = Field(default_factory=lambda: datetime.now(UTC))
resolved_at: datetime | None = Field(default=None, description="解決時間")
rejection_reason: str | None = Field(default=None)
# 戰略 B: 告警風暴收斂
fingerprint: str | None = Field(default=None, description="告警指紋 Hash")
hit_count: int = Field(default=1, description="聚合觸發次數")
last_seen_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc), description="最後觸發時間")
last_seen_at: datetime = Field(default_factory=lambda: datetime.now(UTC), description="最後觸發時間")
@property
def current_signatures(self) -> int:

View File

@@ -20,7 +20,7 @@ C-Suite 戰略會議決議 (2026-03-22):
- Semantic Memory (Vector DB): 向量化後的知識,供 RAG 檢索
"""
from datetime import datetime, timezone
from datetime import UTC, datetime
from enum import Enum
from typing import Literal
from uuid import UUID, uuid4
@@ -30,7 +30,6 @@ from pydantic import BaseModel, Field
# 復用現有模型 (避免重複定義)
from src.models.approval import BlastRadius
# =============================================================================
# Incident 專用 Enums
# =============================================================================
@@ -280,7 +279,7 @@ class Incident(BaseModel):
# === 識別 ===
incident_id: str = Field(
default_factory=lambda: f"INC-{datetime.now(timezone.utc).strftime('%Y%m%d')}-{str(uuid4())[:6].upper()}",
default_factory=lambda: f"INC-{datetime.now(UTC).strftime('%Y%m%d')}-{str(uuid4())[:6].upper()}",
description="事件唯一識別碼 (如 INC-20260322-A1B2C3)",
)
@@ -322,11 +321,11 @@ class Incident(BaseModel):
# === 時間軸 ===
created_at: datetime = Field(
default_factory=lambda: datetime.now(timezone.utc),
default_factory=lambda: datetime.now(UTC),
description="事件建立時間",
)
updated_at: datetime = Field(
default_factory=lambda: datetime.now(timezone.utc),
default_factory=lambda: datetime.now(UTC),
description="最後更新時間",
)
resolved_at: datetime | None = Field(