feat(agent): hierarchical executor with path resolve, runtime probe, quiet UI
Make Zed Agent closer to Cursor: deterministic DevOps path index, live Traefik port probe before blind edits, stop-after-edit, and quieter Russian progress.
This commit is contained in:
+36
-6
@@ -14,9 +14,28 @@ BASE="${TEST_BASE_URL:-http://127.0.0.1:8000}"
|
||||
LITELLM_BASE="${TEST_LITELLM_URL:-http://127.0.0.1:4000}"
|
||||
ROUTER_KEY="${ROUTER_API_KEY:?ROUTER_API_KEY required}"
|
||||
|
||||
CURL=(curl -sf)
|
||||
if [[ "$BASE" == https:* ]]; then
|
||||
CURL+=( -k )
|
||||
curl_common() {
|
||||
local url="$1"
|
||||
CURL=(curl -sf)
|
||||
if [[ "$url" == https:* ]]; then
|
||||
CURL+=( -k )
|
||||
fi
|
||||
if [[ -n "${TEST_RESOLVE_IP:-}" ]]; then
|
||||
local host="${url#*://}"
|
||||
host="${host%%/*}"
|
||||
host="${host%%:*}"
|
||||
CURL+=( --resolve "${host}:443:${TEST_RESOLVE_IP}" --resolve "${host}:80:${TEST_RESOLVE_IP}" )
|
||||
fi
|
||||
}
|
||||
|
||||
curl_common "${BASE}"
|
||||
if [[ "$LITELLM_BASE" == https:* && -n "${TEST_RESOLVE_IP:-}" ]]; then
|
||||
LITELLM_CURL=(curl -sf -k)
|
||||
lh="${LITELLM_BASE#*://}"; lh="${lh%%/*}"; lh="${lh%%:*}"
|
||||
LITELLM_CURL+=( --resolve "${lh}:443:${TEST_RESOLVE_IP}" --resolve "${lh}:80:${TEST_RESOLVE_IP}" )
|
||||
else
|
||||
LITELLM_CURL=(curl -sf)
|
||||
[[ "$LITELLM_BASE" == https:* ]] && LITELLM_CURL+=( -k )
|
||||
fi
|
||||
|
||||
echo "== Router health =="
|
||||
@@ -34,20 +53,31 @@ echo "== Classify COMPLEX =="
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"messages":[{"role":"user","content":"Спроектируй архитектуру microservices"}]}' | jq .
|
||||
|
||||
echo "== Chat smart-router max_tokens=16 =="
|
||||
echo "== Chat smart-router max_tokens=16 (single-shot / no force hierarchical) =="
|
||||
"${CURL[@]}" "${BASE}/v1/chat/completions" \
|
||||
-H "Authorization: Bearer ${ROUTER_KEY}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-AI-Orchestrate: off" \
|
||||
-d '{"model":"smart-router","max_tokens":16,"messages":[{"role":"user","content":"bash docker service ls"}]}' \
|
||||
| jq '.choices[0].message.content, .x_router_meta // empty'
|
||||
|
||||
if [[ "${SMOKE_HIERARCHICAL:-}" == "1" ]]; then
|
||||
echo "== Hierarchical force (Novita plan/verify + workers; VPN not required) =="
|
||||
"${CURL[@]}" "${BASE}/v1/chat/completions" \
|
||||
-H "Authorization: Bearer ${ROUTER_KEY}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-AI-Orchestrate: force" \
|
||||
-d '{"model":"smart-router","max_tokens":256,"messages":[{"role":"user","content":"Разбей на 2 шага: 1) что такое Docker 2) одна команда docker ps. Кратко."}]}' \
|
||||
| jq '.x_router_meta.mode, .x_router_meta.planner_model, .x_router_meta.worker_calls, .x_router_meta.verify_skipped, (.choices[0].message.content|.[0:200])'
|
||||
fi
|
||||
|
||||
if [[ -n "${SKIP_LITELLM_SMOKE:-}" ]]; then
|
||||
echo "SKIP_LITELLM_SMOKE set — skipping LiteLLM checks"
|
||||
else
|
||||
echo "== LiteLLM liveliness =="
|
||||
"${CURL[@]}" "${LITELLM_BASE}/health/liveliness" && echo
|
||||
"${LITELLM_CURL[@]}" "${LITELLM_BASE}/health/liveliness" && echo
|
||||
echo "== LiteLLM UI =="
|
||||
curl -sfI -k "${LITELLM_BASE}/ui" | head -3 || true
|
||||
"${LITELLM_CURL[@]}" -I "${LITELLM_BASE}/ui" | head -3 || true
|
||||
fi
|
||||
|
||||
echo "All smoke checks passed."
|
||||
|
||||
Reference in New Issue
Block a user