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

@ -1,7 +1,7 @@
from __future__ import annotations
from .api import build_anthropic_provider
from oclaw.runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
from runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
PLUGIN_ID = "anthropic"

View file

@ -1,7 +1,7 @@
from __future__ import annotations
from .api import build_deepseek_provider
from oclaw.runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
from runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
PROVIDER_ID = "deepseek"

View file

@ -1,6 +1,6 @@
from __future__ import annotations
from oclaw.runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
from runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
from .api import list_runtime_image_generation_providers

View file

@ -1,7 +1,7 @@
from __future__ import annotations
from .api import build_kimi_coding_provider
from oclaw.runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
from runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
PLUGIN_ID = "kimi"

View file

@ -1,6 +1,6 @@
from __future__ import annotations
from oclaw.runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
from runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
PLUGIN_ID = "memory-core"
PLUGIN_NAME = "Memory (Core)"

View file

@ -1,6 +1,6 @@
from __future__ import annotations
from oclaw.runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
from runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
__all__ = ["PluginEntry", "define_plugin_entry"]

View file

@ -3,7 +3,7 @@ from __future__ import annotations
import html
import re
from oclaw.runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
from runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
PROMPT_INJECTION_PATTERNS = (
re.compile(r"ignore (all|any|previous|above|prior) instructions", re.I),

View file

@ -1,6 +1,6 @@
from __future__ import annotations
from oclaw.runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
from runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
from .api import build_plugin_config_schema, build_wiki_tool_specs

View file

@ -5,7 +5,7 @@ from .api import (
build_openai_image_generation_provider,
build_openai_provider,
)
from oclaw.runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
from runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
def register_openai_plugin(api) -> None:

View file

@ -1,5 +1,5 @@
from __future__ import annotations
from oclaw.runtime.extensions.api.plugin_api import PluginApi, PluginEntry, PluginLogger, PluginRuntime, define_plugin_entry
from runtime.extensions.api.plugin_api import PluginApi, PluginEntry, PluginLogger, PluginRuntime, define_plugin_entry
__all__ = ["PluginApi", "PluginEntry", "PluginLogger", "PluginRuntime", "define_plugin_entry"]

View file

@ -1,7 +1,7 @@
from __future__ import annotations
from .api import QWEN_BASE_URL, build_qwen_provider
from oclaw.runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
from runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
PROVIDER_ID = "qwen"

View file

@ -1,7 +1,7 @@
from __future__ import annotations
from .api import telegram_plugin
from oclaw.runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
from runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
def register_telegram_channel(api) -> None: