Kaynağa Gözat

业务工作台:实现全角色 Context Broker 投影与按需读取

将 MissionWorkbench 收敛为 ContextBroker facade,接入 Task Ledger、InputSnapshot、Artifact、Workspace 和 Raw Store。为 Planner、全部 Worker、Validator 构建有界角色投影,支持真实 Artifact Card、Persona/Strategy/Pattern 搜索、Root 闭包展开、Element 精确关联缺口和 Validator 必读页持久证明。
SamLee 13 saat önce
ebeveyn
işleme
38596ef7e9

Dosya farkı çok büyük olduğundan ihmal edildi
+ 1166 - 103
script_build_host/src/script_build_host/application/mission_workbench.py


+ 11 - 3
script_build_host/tests/test_mission_workbench.py

@@ -216,9 +216,17 @@ async def test_planner_projection_is_bounded_incremental_and_does_not_copy_retir
             await workbench.planner_state("root", known_revision="ledger:49"),
             NotModified,
         )
-    first_page = await workbench.detail(root_trace_id="root", view="task_tree")
-    assert len(first_page["items"]) == 20
-    assert len(json.dumps(first_page, ensure_ascii=False)) < 8_000
+    first_page = await workbench.search_mission_context(
+        root_trace_id="root",
+        role="planner",
+        collection="tasks",
+        page_size=20,
+    )
+    assert 0 < len(first_page["page"]["items"]) <= 20
+    assert first_page["receipt"]["estimated_tokens"] <= 2_000
+    assert first_page["page"]["has_more"] is True
+    assert first_page["page"]["next_cursor"]
+    assert len(json.dumps(first_page, ensure_ascii=False, separators=(",", ":"))) < 8_000
 
 
 @pytest.mark.asyncio

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor