重构主控编排与运行时预热链路,统一工作区提示词/专家调度协议并补齐 wiki 记忆注入与写回闭环。

同时收敛启动与运维脚本默认行为(含 wiki worker)、更新 Admin 可观测性与相关测试,降低首轮时延并提高运行稳定性。

Made-with: Cursor
This commit is contained in:
oliver 2026-04-26 08:34:33 +08:00
parent 4a23b715a2
commit dbbe3add6a
14438 changed files with 2693620 additions and 2546 deletions

View file

@ -2,6 +2,7 @@ from __future__ import annotations
from types import SimpleNamespace
from oclaw.runtime import skill_executor as skill_executor_mod
from oclaw.runtime.skill_executor import SkillExecutionContext, SkillExecutor
from oclaw.runtime.tools.base import ToolRegistry, ToolSpec
@ -47,3 +48,34 @@ def test_skill_executor_emits_skill_trace_events() -> None:
assert "skill_selected" in et
assert "skill_executed" in et
def test_skill_executor_emits_internal_hook_events(monkeypatch) -> None:
calls: list[tuple[str, str]] = []
def _cap(**kwargs): # noqa: ANN003
t = str(kwargs.get("event_type") or "")
a = str(kwargs.get("action") or "")
calls.append((t, a))
monkeypatch.setattr(skill_executor_mod, "trigger_hook_event", _cap)
store = _DummyStore()
reg = ToolRegistry(
[
ToolSpec(
name="echo_skill",
description="echo",
parameters={"type": "object", "properties": {"x": {"type": "string"}}},
handler=lambda a: {"ok": True, "x": a.get("x")},
read_only=True,
)
]
)
ex = SkillExecutor()
uses = [SimpleNamespace(id="call_1", name="echo_skill", arguments={"x": "1"})]
ex.execute_skill_uses(
ctx=SkillExecutionContext(store=store, tools=reg, session_id="s1", trace_id="t1", workspace_dir="/tmp/ws"),
assistant_msg_id=1,
skill_uses=uses,
)
assert calls == [("skill", "before"), ("skill", "after")]