任务内标记工具:task-create/task-poll/task-read 移植、wait-threads 接通、新增 task-cancel/task-retry
- 新模块 cloud/marker_tools.py:纯逻辑解析、校验、快照格式化、 控制门禁、派生代数与直接上限计数 - sandbox 两处解析提取五种标记块;worker 在 5 处投递点与 _deliver_peer_messages 同款位置执行,报告排成后续消息下一轮回父任务 - wait 每块 cap 到 8 个目标(与服务端 /wait 对齐,spawn 原先的 10 个收紧), 每轮最多 2 块;取消/重试门禁:同项目、非自己、非 goal、 派生链或同创建人,另查 create_task / approve_merge 权限, 查不到时收紧到仅派生链内 - goal 与协调员任务不解析;单测 30 个,cloud 全量 1043 个、4 跳过、0 失败
This commit is contained in:
1 parent
eae9884b13
commit
3b2fef95fa
5 files changed
+1819
No files matched your search
@@ -20,6 +20,11 @@ import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
from cloud.marker_tools import extract_task_cancels as _extract_task_cancels
|
||||
from cloud.marker_tools import extract_task_creates as _extract_task_creates
|
||||
from cloud.marker_tools import extract_task_polls as _extract_task_polls
|
||||
from cloud.marker_tools import extract_task_retries as _extract_task_retries
|
||||
from cloud.marker_tools import extract_wait_threads as _extract_wait_threads
|
||||
from cloud.peer_messages import extract_peer_messages as _extract_peer_messages
|
||||
|
||||
MAX_STDOUT_CHARS = 2000
|
||||
@@ -280,6 +285,11 @@ class LocalExecutor(Executor):
|
||||
status = "failed"
|
||||
usage = None
|
||||
task_messages = []
|
||||
task_creates = []
|
||||
task_polls = []
|
||||
wait_threads = []
|
||||
task_cancels = []
|
||||
task_retries = []
|
||||
turn_id = None
|
||||
root_turn_id = None
|
||||
if returncode == 0:
|
||||
@@ -311,6 +321,13 @@ class LocalExecutor(Executor):
|
||||
# 版 text 尾部的块会丢),worker 在 completed 轮次
|
||||
# 后投递;goal 路径不走这里,goal 任务只收不发。
|
||||
task_messages = _extract_peer_messages(parsed.get("text"))
|
||||
# 标记工具块:与 task-message 同款从完整 text 里提取,
|
||||
# worker 在 completed 轮次后执行;goal 路径不走这里。
|
||||
task_creates = _extract_task_creates(parsed.get("text"))
|
||||
task_polls = _extract_task_polls(parsed.get("text"))
|
||||
wait_threads = _extract_wait_threads(parsed.get("text"))
|
||||
task_cancels = _extract_task_cancels(parsed.get("text"))
|
||||
task_retries = _extract_task_retries(parsed.get("text"))
|
||||
else:
|
||||
host_status = None
|
||||
else:
|
||||
@@ -328,6 +345,11 @@ class LocalExecutor(Executor):
|
||||
"stderr": _truncate_stdout(getattr(result, "stderr", "")),
|
||||
"usage": usage,
|
||||
"task_messages": task_messages,
|
||||
"task_creates": task_creates,
|
||||
"task_polls": task_polls,
|
||||
"wait_threads": wait_threads,
|
||||
"task_cancels": task_cancels,
|
||||
"task_retries": task_retries,
|
||||
"turn_id": turn_id,
|
||||
"root_turn_id": root_turn_id,
|
||||
}
|
||||
@@ -1570,6 +1592,11 @@ def _parse_host_result(task_id, fake):
|
||||
host_status = None
|
||||
usage = None
|
||||
task_messages = []
|
||||
task_creates = []
|
||||
task_polls = []
|
||||
wait_threads = []
|
||||
task_cancels = []
|
||||
task_retries = []
|
||||
turn_id = None
|
||||
root_turn_id = None
|
||||
if returncode == 0:
|
||||
@@ -1588,6 +1615,13 @@ def _parse_host_result(task_id, fake):
|
||||
else "failed")
|
||||
usage = _clean_usage(parsed.get("usage"))
|
||||
task_messages = _extract_peer_messages(parsed.get("text"))
|
||||
# 标记工具块:与 task-message 同款从完整 text 里提取,
|
||||
# worker 在 completed 轮次后执行。
|
||||
task_creates = _extract_task_creates(parsed.get("text"))
|
||||
task_polls = _extract_task_polls(parsed.get("text"))
|
||||
wait_threads = _extract_wait_threads(parsed.get("text"))
|
||||
task_cancels = _extract_task_cancels(parsed.get("text"))
|
||||
task_retries = _extract_task_retries(parsed.get("text"))
|
||||
# 任务列表显示 turn 用:与 Local 版同款语义,取不到
|
||||
# 时保持 None,worker 写回时不覆盖旧值。
|
||||
turn_id = parsed.get("turn_id")
|
||||
@@ -1602,6 +1636,11 @@ def _parse_host_result(task_id, fake):
|
||||
"stderr": _truncate_stdout(getattr(fake, "stderr", "")),
|
||||
"usage": usage,
|
||||
"task_messages": task_messages,
|
||||
"task_creates": task_creates,
|
||||
"task_polls": task_polls,
|
||||
"wait_threads": wait_threads,
|
||||
"task_cancels": task_cancels,
|
||||
"task_retries": task_retries,
|
||||
"turn_id": turn_id,
|
||||
"root_turn_id": root_turn_id,
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user