mirror of
https://github.com/hansjone/oclaw.git
synced 2026-10-09 04:40: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
15
runtime/extensions/image-generation-core/__init__.py
Normal file
15
runtime/extensions/image-generation-core/__init__.py
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
from .api import generate_image, list_runtime_image_generation_providers
|
||||
from .runtime_api import generate_image, list_runtime_image_generation_providers
|
||||
from .index import (
|
||||
build_image_generation_core_plugin_entry,
|
||||
plugin_entry,
|
||||
register_image_generation_core_plugin,
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
"build_image_generation_core_plugin_entry",
|
||||
"generate_image",
|
||||
"list_runtime_image_generation_providers",
|
||||
"plugin_entry",
|
||||
"register_image_generation_core_plugin",
|
||||
]
|
||||
40
runtime/extensions/image-generation-core/api.py
Normal file
40
runtime/extensions/image-generation-core/api.py
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import Any
|
||||
|
||||
def _runtime_get(runtime: Any, key: str):
|
||||
if isinstance(runtime, dict):
|
||||
return runtime.get(key)
|
||||
return getattr(runtime, key, None)
|
||||
|
||||
|
||||
def list_runtime_image_generation_providers(runtime: Any = None) -> list[dict]:
|
||||
providers = _runtime_get(runtime, "image_generation_providers")
|
||||
if isinstance(providers, list):
|
||||
return [p for p in providers if isinstance(p, dict)]
|
||||
return []
|
||||
|
||||
def generate_image(*, prompt: str, provider_id: str | None = None, runtime: Any = None, **kwargs) -> dict:
|
||||
providers = list_runtime_image_generation_providers(runtime)
|
||||
if not providers:
|
||||
return {"ok": False, "error": "no_image_generation_provider_registered"}
|
||||
|
||||
chosen = None
|
||||
if provider_id:
|
||||
chosen = next((p for p in providers if str(p.get("id")) == provider_id), None)
|
||||
if chosen is None:
|
||||
chosen = providers[0]
|
||||
|
||||
generator = chosen.get("generate")
|
||||
if callable(generator):
|
||||
result = generator(prompt=prompt, **kwargs)
|
||||
if isinstance(result, dict):
|
||||
return {"ok": True, "provider": chosen.get("id"), **result}
|
||||
return {"ok": True, "provider": chosen.get("id"), "result": result}
|
||||
|
||||
return {
|
||||
"ok": True,
|
||||
"provider": chosen.get("id"),
|
||||
"prompt": prompt,
|
||||
"note": "provider_has_no_generate_callable",
|
||||
}
|
||||
23
runtime/extensions/image-generation-core/index.py
Normal file
23
runtime/extensions/image-generation-core/index.py
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from oclaw.runtime.extensions.plugin_api import PluginEntry, define_plugin_entry
|
||||
|
||||
from .api import list_runtime_image_generation_providers
|
||||
|
||||
|
||||
def register_image_generation_core_plugin(api) -> None:
|
||||
providers = list_runtime_image_generation_providers(getattr(api, "runtime", None))
|
||||
if not providers and hasattr(api, "register_tool"):
|
||||
api.register_tool({"name": "generate_image"})
|
||||
|
||||
|
||||
def build_image_generation_core_plugin_entry() -> PluginEntry:
|
||||
return define_plugin_entry(
|
||||
id="image-generation-core",
|
||||
name="Image Generation Core",
|
||||
description="Runtime image generation helper APIs",
|
||||
register=register_image_generation_core_plugin,
|
||||
)
|
||||
|
||||
|
||||
plugin_entry = build_image_generation_core_plugin_entry()
|
||||
8
runtime/extensions/image-generation-core/runtime_api.py
Normal file
8
runtime/extensions/image-generation-core/runtime_api.py
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from .api import generate_image, list_runtime_image_generation_providers
|
||||
|
||||
__all__ = [
|
||||
"generate_image",
|
||||
"list_runtime_image_generation_providers",
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue