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

@ -25,7 +25,7 @@ def skill_dir_private_lane_segment(skill_dir: str | Path, *, skills_home: Path |
Flat ``_workspace/<skill>/`` (single segment) → ``None``.
"""
from oclaw.runtime.skills import default_skills_root
from runtime.skills import default_skills_root
home = Path(skills_home).resolve() if skills_home else default_skills_root().resolve()
ws = (home / "_workspace").resolve()
@ -59,7 +59,7 @@ def resolve_auto_install_parent(
- role installs: ``_workspace/<role>/`` (same level as ``public``, e.g. ``generalist``, ``ops``)
- legacy session bucket: ``_workspace/_agent/<segment>/`` when no binding role is available
"""
from oclaw.runtime.skills import default_skills_root
from runtime.skills import default_skills_root
base = Path(skills_home).resolve() if skills_home else default_skills_root().resolve()
ws = base / "_workspace"