refactor: root-package imports (svc/runtime/interfaces) and fix PYTHONPATH

- Rename platform/ to svc/ to avoid shadowing stdlib platform.
- Replace from oclaw.* with from svc/runtime/interfaces; update -m CLI paths.
- tests/conftest: prepend repo root to sys.path (no parent-folder package name).
- CI: paths and offline_eval script under repo root.
- Ops scripts: PYTHONPATH must be repo root for python -m runtime.* (fixes gateway/WhatsApp sidecar startup).
- Fix default oclaw.json path in tabular/file attachment limits; stabilize attachment test config.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-05-13 14:51:17 +08:00
parent 7941b27f58
commit 420abac9f1
405 changed files with 1316 additions and 1345 deletions

View file

@ -3,7 +3,7 @@ from __future__ import annotations
from typing import Any
from .adapter import PlanAgentV2Decision
from oclaw.runtime.gateway import OclawGatewayResult
from runtime.gateway import OclawGatewayResult
def legacy_gateway_result_keys() -> set[str]:

View file

@ -5,7 +5,7 @@ from typing import Any
from .adapter import PlanAgentV2Decision, evaluate_for_expert_mode
from .switch import should_route_to_v2
from oclaw.runtime.types import StandardMessage
from runtime.types import StandardMessage
@dataclass(frozen=True)

View file

@ -3,7 +3,7 @@ from __future__ import annotations
from typing import Iterable
from .models import PLAN_MODE_PLAN
from oclaw.runtime.tools.base import ToolRegistry, ToolSpec
from runtime.tools.base import ToolRegistry, ToolSpec
_DEFAULT_PLAN_ALLOWLIST = frozenset(

View file

@ -5,7 +5,7 @@ from typing import Any
from .manager import PlanModeManagerV2
from .models import PLAN_MODE_PLAN
from .trace import emit_plan_agent_v2_trace
from oclaw.runtime.tools.base import ToolSpec
from runtime.tools.base import ToolSpec
DEFAULT_SESSION_KEY = "AIA_PLAN_AGENT_V2_DEFAULT_SESSION_ID"

View file

@ -19,7 +19,7 @@ def emit_plan_agent_v2_trace(
merged.setdefault("pipeline", "plan_agent_v2")
merged.setdefault("ts_ms", int(time.time() * 1000))
try:
from oclaw.runtime.orchestration.trace import new_span_id
from runtime.orchestration.trace import new_span_id
store.add_trace_event(
session_id=str(session_id or ""),