mirror of
https://github.com/hansjone/oclaw.git
synced 2026-10-11 12:10:45 +08:00
重构仓库目录为统一的 runtime 分层并清理历史 openclaw 残留。
本次迁移将网关/通道/工具/技能/脚本与协议资源集中到新结构,统一路径常量与脚本转发机制,减少顶层噪音并保证运行与测试行为一致。 Made-with: Cursor
This commit is contained in:
parent
ba3836f00f
commit
4a23b715a2
498 changed files with 2760 additions and 2200 deletions
27
runtime/extensions/qwen/__init__.py
Normal file
27
runtime/extensions/qwen/__init__.py
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
from .api import (
|
||||
MODELSTUDIO_BASE_URL,
|
||||
QWEN_36_PLUS_MODEL_ID,
|
||||
QWEN_BASE_URL,
|
||||
QWEN_DEFAULT_MODEL_ID,
|
||||
QWEN_DEFAULT_MODEL_REF,
|
||||
apply_qwen_native_streaming_usage_compat,
|
||||
build_modelstudio_provider,
|
||||
build_qwen_provider,
|
||||
is_qwen_coding_plan_base_url,
|
||||
)
|
||||
from .index import build_qwen_plugin_entry, plugin_entry, register_qwen_plugin
|
||||
|
||||
__all__ = [
|
||||
"MODELSTUDIO_BASE_URL",
|
||||
"QWEN_36_PLUS_MODEL_ID",
|
||||
"QWEN_BASE_URL",
|
||||
"QWEN_DEFAULT_MODEL_ID",
|
||||
"QWEN_DEFAULT_MODEL_REF",
|
||||
"apply_qwen_native_streaming_usage_compat",
|
||||
"build_modelstudio_provider",
|
||||
"build_qwen_plugin_entry",
|
||||
"build_qwen_provider",
|
||||
"is_qwen_coding_plan_base_url",
|
||||
"plugin_entry",
|
||||
"register_qwen_plugin",
|
||||
]
|
||||
32
runtime/extensions/qwen/api.py
Normal file
32
runtime/extensions/qwen/api.py
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
from __future__ import annotations
|
||||
|
||||
QWEN_BASE_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1"
|
||||
QWEN_DEFAULT_MODEL_ID = "qwen3.5-plus"
|
||||
QWEN_DEFAULT_MODEL_REF = f"qwen/{QWEN_DEFAULT_MODEL_ID}"
|
||||
QWEN_36_PLUS_MODEL_ID = "qwen3.6-plus"
|
||||
MODELSTUDIO_BASE_URL = QWEN_BASE_URL
|
||||
|
||||
|
||||
def is_qwen_coding_plan_base_url(base_url: str | None) -> bool:
|
||||
v = str(base_url or "").lower()
|
||||
return "coding." in v
|
||||
|
||||
|
||||
def build_qwen_provider(*, base_url: str | None = None) -> dict:
|
||||
return {
|
||||
"id": "qwen",
|
||||
"base_url": base_url or QWEN_BASE_URL,
|
||||
"default_model": QWEN_DEFAULT_MODEL_ID,
|
||||
}
|
||||
|
||||
|
||||
def build_modelstudio_provider(*, base_url: str | None = None) -> dict:
|
||||
return {
|
||||
"id": "modelstudio",
|
||||
"base_url": base_url or MODELSTUDIO_BASE_URL,
|
||||
"default_model": QWEN_DEFAULT_MODEL_ID,
|
||||
}
|
||||
|
||||
|
||||
def apply_qwen_native_streaming_usage_compat(provider_config: dict) -> dict:
|
||||
return dict(provider_config or {})
|
||||
23
runtime/extensions/qwen/index.py
Normal file
23
runtime/extensions/qwen/index.py
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from .api import QWEN_BASE_URL, build_qwen_provider
|
||||
from oclaw.runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
|
||||
|
||||
PROVIDER_ID = "qwen"
|
||||
|
||||
|
||||
def register_qwen_plugin(api) -> None:
|
||||
if hasattr(api, "register_provider"):
|
||||
api.register_provider(build_qwen_provider(base_url=QWEN_BASE_URL))
|
||||
|
||||
|
||||
def build_qwen_plugin_entry() -> PluginEntry:
|
||||
return define_plugin_entry(
|
||||
id=PROVIDER_ID,
|
||||
name="Qwen Provider",
|
||||
description="Bundled Qwen Cloud provider plugin",
|
||||
register=register_qwen_plugin,
|
||||
)
|
||||
|
||||
|
||||
plugin_entry = build_qwen_plugin_entry()
|
||||
Loading…
Add table
Add a link
Reference in a new issue