fix(docker): embed mock types for Docker build compatibility

Remove lewooogo-brain local dependency that breaks Docker context.
Inline Proposal/Guardrails definitions in proposals.py mock.

Phase 6.4i will address proper monorepo Docker packaging.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
OG T
2026-03-23 12:01:20 +08:00
parent cb5d0ecfe4
commit 0aa80c1d32
2 changed files with 27 additions and 5 deletions

View File

@@ -25,11 +25,12 @@ dependencies = [
"opentelemetry-instrumentation-httpx>=0.41b0",
"opentelemetry-instrumentation-logging>=0.41b0",
# Phase 6.4g: leWOOOgo Brain - 積木化決策引擎
"lewooogo-brain",
# NOTE: Local package disabled for Docker build compatibility
# "lewooogo-brain", # 待 monorepo Docker 解法 (Phase 6.4i)
]
[tool.uv.sources]
lewooogo-brain = { path = "../../packages/lewooogo-brain", editable = true }
# [tool.uv.sources]
# lewooogo-brain = { path = "../../packages/lewooogo-brain", editable = true }
[project.optional-dependencies]
dev = [

View File

@@ -28,9 +28,30 @@ class ProposalResponse(BaseModel):
rejection_reason: str | None = Field(default=None, description="若未通過防爆圈,顯示阻擋原因")
def get_proposal_engine():
"""Phase 6.4g 暫時性 Mock DI驗證路由暢通"""
from lewooogo_brain.interfaces.proposal_engine import Proposal, Guardrails
"""
Phase 6.4g 暫時性 Mock DI驗證路由暢通
NOTE: 完全內嵌,不依賴外部 lewooogo-brain 套件 (Docker 相容)
"""
from uuid import uuid4
from pydantic import BaseModel
# 內嵌 Guardrails 定義 (Docker 相容)
class Guardrails(BaseModel):
require_dry_run: bool = True
allowed_namespace: list[str] = ["awoooi-prod"]
forbidden_commands: list[str] = ["rm -rf", "drop table", "kubectl delete ns"]
max_retries: int = 1
timeout_sec: int = 60
# 內嵌 Proposal 定義 (Docker 相容)
class Proposal(BaseModel):
proposal_id: str
incident_id: str
action: str
description: str
risk_level: str
guardrails: dict
metadata: dict = {}
class MockEngine:
async def generate(self, incident_id: str) -> tuple[Proposal | None, str]: