@miller-tech/uap 1.213.0 → 1.214.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/bin/cli.js +2 -0
- package/dist/bin/cli.js.map +1 -1
- package/dist/cli/deliver.d.ts.map +1 -1
- package/dist/cli/deliver.js +107 -4
- package/dist/cli/deliver.js.map +1 -1
- package/dist/cli/verify.d.ts +5 -0
- package/dist/cli/verify.d.ts.map +1 -1
- package/dist/cli/verify.js +50 -1
- package/dist/cli/verify.js.map +1 -1
- package/dist/cli/wizard-config.d.ts.map +1 -1
- package/dist/cli/wizard-config.js +26 -1
- package/dist/cli/wizard-config.js.map +1 -1
- package/dist/delivery/await-run.d.ts +47 -0
- package/dist/delivery/await-run.d.ts.map +1 -1
- package/dist/delivery/await-run.js +392 -2
- package/dist/delivery/await-run.js.map +1 -1
- package/dist/delivery/capability-profile.d.ts +124 -0
- package/dist/delivery/capability-profile.d.ts.map +1 -0
- package/dist/delivery/capability-profile.js +392 -0
- package/dist/delivery/capability-profile.js.map +1 -0
- package/dist/delivery/convergence-loop.d.ts.map +1 -1
- package/dist/delivery/convergence-loop.js +21 -1
- package/dist/delivery/convergence-loop.js.map +1 -1
- package/dist/delivery/execution-gate.d.ts +29 -0
- package/dist/delivery/execution-gate.d.ts.map +1 -1
- package/dist/delivery/execution-gate.js +237 -9
- package/dist/delivery/execution-gate.js.map +1 -1
- package/dist/delivery/mission-acceptance.d.ts +4 -0
- package/dist/delivery/mission-acceptance.d.ts.map +1 -1
- package/dist/delivery/mission-acceptance.js +35 -1
- package/dist/delivery/mission-acceptance.js.map +1 -1
- package/dist/delivery/run-state.d.ts +31 -0
- package/dist/delivery/run-state.d.ts.map +1 -1
- package/dist/delivery/run-state.js +49 -0
- package/dist/delivery/run-state.js.map +1 -1
- package/dist/mcp-router/tools/deliver.d.ts.map +1 -1
- package/dist/mcp-router/tools/deliver.js +5 -2
- package/dist/mcp-router/tools/deliver.js.map +1 -1
- package/package.json +1 -1
- package/scripts/lib/llama-upstream.sh +64 -16
- package/src/policies/enforcers/__pycache__/_common.cpython-312.pyc +0 -0
- package/templates/hooks/__pycache__/deliver_autoroute.cpython-312.pyc +0 -0
- package/tools/agents/scripts/__pycache__/toolcall_path_normalizer.cpython-312.pyc +0 -0
- package/tools/agents/scripts/confidence_escalation.py +57 -0
- package/tools/agents/tests/test_confidence_escalation.py +140 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deliver.js","sourceRoot":"","sources":["../../../src/mcp-router/tools/deliver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deliver.js","sourceRoot":"","sources":["../../../src/mcp-router/tools/deliver.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -55,29 +55,68 @@ llama_upstream_alive() {
|
|
|
55
55
|
# 0 if the base looks like a chat-capable llama.cpp server. Applied to
|
|
56
56
|
# DISCOVERED candidates only — an operator pin is taken at its word.
|
|
57
57
|
llama_upstream_is_chat_server() {
|
|
58
|
-
local base="${1:-}" root props models
|
|
58
|
+
local base="${1:-}" root props models chat
|
|
59
59
|
root="$(llama_upstream_root "$base")"
|
|
60
60
|
|
|
61
|
-
# /props carries llama-server's generation settings. A
|
|
62
|
-
# error page, or a still-loading server does not.
|
|
61
|
+
# PATH 1 — llama.cpp. /props carries llama-server's generation settings. A
|
|
62
|
+
# bare HTTP server, an error page, or a still-loading server does not.
|
|
63
63
|
props="$(curl -s --max-time "${UAP_LLAMA_PROBE_TIMEOUT:-2}" -- "${root}/props" 2>/dev/null || true)"
|
|
64
64
|
case "$props" in
|
|
65
|
-
*'"default_generation_settings"'*)
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
# not report capabilities at all, accept — older llama.cpp omits the field.
|
|
71
|
-
models="$(curl -s --max-time "${UAP_LLAMA_PROBE_TIMEOUT:-2}" -- "${root}/v1/models" 2>/dev/null || true)"
|
|
72
|
-
case "$models" in
|
|
73
|
-
*'"capabilities"'*)
|
|
65
|
+
*'"default_generation_settings"'*)
|
|
66
|
+
# Reject an embedding-only server (this host runs one). When the build
|
|
67
|
+
# does not report capabilities at all, accept — older llama.cpp omits
|
|
68
|
+
# the field.
|
|
69
|
+
models="$(curl -s --max-time "${UAP_LLAMA_PROBE_TIMEOUT:-2}" -- "${root}/v1/models" 2>/dev/null || true)"
|
|
74
70
|
case "$models" in
|
|
75
|
-
*'"
|
|
76
|
-
|
|
71
|
+
*'"capabilities"'*)
|
|
72
|
+
case "$models" in
|
|
73
|
+
*'"completion"'*) return 0 ;;
|
|
74
|
+
*) return 1 ;;
|
|
75
|
+
esac
|
|
76
|
+
;;
|
|
77
|
+
*) return 0 ;;
|
|
77
78
|
esac
|
|
78
79
|
;;
|
|
79
80
|
esac
|
|
80
|
-
|
|
81
|
+
|
|
82
|
+
# PATH 2 — any other OpenAI-compatible engine.
|
|
83
|
+
#
|
|
84
|
+
# Requiring /props made this check llama.cpp-SPECIFIC, and it rejected the
|
|
85
|
+
# engine actually serving this host. Measured 2026-08-19: the box runs
|
|
86
|
+
# ninfer-serve, which serves /health and /v1/models but NO /props, so the live
|
|
87
|
+
# server on the documented default port was refused, discovery yielded
|
|
88
|
+
# nothing, the dead pin stood, and every local completion returned 529.
|
|
89
|
+
#
|
|
90
|
+
# The trust model asks for "chat-capable, and not the embedding server". That
|
|
91
|
+
# is a CAPABILITY question, and the direct way to answer it is to ask for a
|
|
92
|
+
# chat completion: an embedding-only server has no such route, and a decoy
|
|
93
|
+
# returning 200 to everything still has to produce a choices array.
|
|
94
|
+
models="$(curl -s --max-time "${UAP_LLAMA_PROBE_TIMEOUT:-2}" -- "${root}/v1/models" 2>/dev/null || true)"
|
|
95
|
+
# Extracting an id IS the models-list check: a server that does not advertise
|
|
96
|
+
# one yields an empty model_id and is refused below. A separate `case` for
|
|
97
|
+
# '"id"' was redundant — and a redundant guard reads as coverage while being
|
|
98
|
+
# impossible to fail, which is how a check becomes decoration.
|
|
99
|
+
#
|
|
100
|
+
# The probe MUST name a model. Measured: a chat request without one is
|
|
101
|
+
# refused by this engine with
|
|
102
|
+
# 400 {"message":"missing required field: model","param":"model"}
|
|
103
|
+
# which carries no "choices" and so read as "not chat-capable" — the probe
|
|
104
|
+
# answering a question it never actually asked. Same failure shape bit the
|
|
105
|
+
# proxy's chat_template_kwargs probe on the same day.
|
|
106
|
+
local model_id
|
|
107
|
+
model_id="$(printf '%s' "$models" \
|
|
108
|
+
| tr ',{}' '\n\n\n' \
|
|
109
|
+
| grep -m1 '"id"' \
|
|
110
|
+
| sed -e 's/.*"id"[[:space:]]*:[[:space:]]*"//' -e 's/".*//')"
|
|
111
|
+
[ -n "$model_id" ] || return 1
|
|
112
|
+
chat="$(curl -s --max-time "${UAP_LLAMA_CHAT_PROBE_TIMEOUT:-20}" \
|
|
113
|
+
-H 'Content-Type: application/json' \
|
|
114
|
+
-d "{\"model\":\"${model_id}\",\"messages\":[{\"role\":\"user\",\"content\":\"hi\"}],\"max_tokens\":1}" \
|
|
115
|
+
-- "${root}/v1/chat/completions" 2>/dev/null || true)"
|
|
116
|
+
case "$chat" in
|
|
117
|
+
*'"choices"'*) return 0 ;;
|
|
118
|
+
esac
|
|
119
|
+
return 1
|
|
81
120
|
}
|
|
82
121
|
|
|
83
122
|
# Print the host:port of every locally listening llama-server, one per line,
|
|
@@ -123,7 +162,16 @@ llama_upstream_resolve() {
|
|
|
123
162
|
fi
|
|
124
163
|
|
|
125
164
|
local authority candidate
|
|
126
|
-
|
|
165
|
+
# Process-owned sockets first (an operator-launched llama-server), then the
|
|
166
|
+
# DOCUMENTED DEFAULT PORT.
|
|
167
|
+
#
|
|
168
|
+
# The default is needed because socket enumeration attributes a process only
|
|
169
|
+
# to sockets this user owns, and a containerised engine's socket is not one:
|
|
170
|
+
# the live server was invisible to discovery on this host for that reason
|
|
171
|
+
# alone. Adding one well-known port that the launcher itself already treats
|
|
172
|
+
# as the default is not a widening of the trust model — every candidate,
|
|
173
|
+
# however found, still has to PROVE it is chat-capable before it is used.
|
|
174
|
+
for authority in $(llama_upstream_candidate_authorities) "${UAP_LLAMA_DEFAULT_AUTHORITY:-127.0.0.1:8080}"; do
|
|
127
175
|
candidate="http://${authority}/v1"
|
|
128
176
|
[ "$candidate" = "$preferred" ] && continue
|
|
129
177
|
if llama_upstream_alive "$candidate" && llama_upstream_is_chat_server "$candidate"; then
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -48,6 +48,17 @@ class Settings:
|
|
|
48
48
|
endpoint: str
|
|
49
49
|
api_key: str
|
|
50
50
|
allow_self_judge: bool = False
|
|
51
|
+
#: Backend width: how many generations the upstream serves CONCURRENTLY.
|
|
52
|
+
#: None = UNKNOWN, which must change nothing (not every backend can be
|
|
53
|
+
#: probed -- ninfer serves no /slots endpoint -- so silence is not evidence).
|
|
54
|
+
#: A FIELD rather than a process-env read at decision time: select_recipe is
|
|
55
|
+
#: called per request and an ambient UAP_MODEL_SLOTS=1 (which is exactly what
|
|
56
|
+
#: writeProxyEnv now puts in proxy.env, and what _load_proxy_env_file
|
|
57
|
+
#: setdefaults into every subprocess) silently rewrote 15 unrelated tests'
|
|
58
|
+
#: expectations. Resolving once, at construction, keeps the decision a
|
|
59
|
+
#: function of its inputs.
|
|
60
|
+
model_slots: "int | None" = None
|
|
61
|
+
force_multi_call: bool = False
|
|
51
62
|
|
|
52
63
|
@classmethod
|
|
53
64
|
def from_env(cls) -> "Settings":
|
|
@@ -78,6 +89,8 @@ class Settings:
|
|
|
78
89
|
endpoint=os.environ.get("PROXY_ESCALATE_ENDPOINT", ""),
|
|
79
90
|
api_key=os.environ.get("PROXY_ESCALATE_API_KEY", ""),
|
|
80
91
|
allow_self_judge=flag("PROXY_ALLOW_SELF_JUDGE"),
|
|
92
|
+
model_slots=resolve_model_slots(),
|
|
93
|
+
force_multi_call=flag("PROXY_FORCE_MULTI_CALL"),
|
|
81
94
|
)
|
|
82
95
|
|
|
83
96
|
def backend_configured(self) -> bool:
|
|
@@ -287,9 +300,53 @@ def load_adaptation_signal(session_id=None, signal_dir=None, ttl=180.0, now=None
|
|
|
287
300
|
return None
|
|
288
301
|
|
|
289
302
|
|
|
303
|
+
#: Recipes that issue MORE THAN ONE upstream generation per request.
|
|
304
|
+
MULTI_CALL_RECIPES = frozenset({"fusion", "ratings", "remom"})
|
|
305
|
+
|
|
306
|
+
|
|
307
|
+
def _int_env(name: str) -> "int | None":
|
|
308
|
+
try:
|
|
309
|
+
raw = os.environ.get(name, "")
|
|
310
|
+
return int(raw) if raw.strip() else None
|
|
311
|
+
except (ValueError, TypeError):
|
|
312
|
+
return None
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
def resolve_model_slots() -> "int | None":
|
|
316
|
+
"""Backend width from the environment, or None when it is UNKNOWN.
|
|
317
|
+
|
|
318
|
+
Reads ``UAP_MODEL_SLOTS`` -- the same variable the TypeScript model-slot
|
|
319
|
+
budget resolves and exports -- so both halves of the system agree on the
|
|
320
|
+
backend's real width without a second probe. ``PROXY_MODEL_SLOTS`` is
|
|
321
|
+
accepted as a proxy-local alias. Unparseable is UNKNOWN, not 1: a typo must
|
|
322
|
+
not silently disable fan-out everywhere.
|
|
323
|
+
"""
|
|
324
|
+
for name in ("UAP_MODEL_SLOTS", "PROXY_MODEL_SLOTS"):
|
|
325
|
+
slots = _int_env(name)
|
|
326
|
+
if slots is not None:
|
|
327
|
+
return slots
|
|
328
|
+
return None
|
|
329
|
+
|
|
330
|
+
|
|
290
331
|
def select_recipe(anthropic_body: dict, settings: Settings, has_tools: bool) -> str:
|
|
291
332
|
if not settings.enabled or has_tools:
|
|
292
333
|
return "single"
|
|
334
|
+
# SLOT RIGHT-SIZING. A fan-out recipe assumes its N generations overlap. On a
|
|
335
|
+
# backend serving one request at a time they do not -- they queue, so fusion
|
|
336
|
+
# N=3 costs 3x the wall clock of a single call for the same answer, and the
|
|
337
|
+
# deliver run paying it has a fixed wall-clock budget to finish in.
|
|
338
|
+
#
|
|
339
|
+
# Measured live (2026-08-20, ninfer --max-concurrency 1, qwen3.8-27b): tool
|
|
340
|
+
# -carrying turns already bypass recipes via `has_tools` above, but mission
|
|
341
|
+
# PLANNING carries no tools -- so it ran under fusion N=3 and took ~20 minutes,
|
|
342
|
+
# 17% of a 120-minute run budget, before turn 1 existed.
|
|
343
|
+
#
|
|
344
|
+
# Downgrade to the judge-free single path rather than to `confidence`:
|
|
345
|
+
# confidence can still escalate into a second call, which is the cost being
|
|
346
|
+
# avoided. `PROXY_FORCE_MULTI_CALL=1` restores the old behaviour.
|
|
347
|
+
if settings.model_slots is not None and settings.model_slots <= 1 and not settings.force_multi_call:
|
|
348
|
+
if settings.recipe == "auto" or settings.recipe in MULTI_CALL_RECIPES:
|
|
349
|
+
return "single"
|
|
293
350
|
if settings.recipe != "auto":
|
|
294
351
|
return settings.recipe
|
|
295
352
|
pm = (anthropic_body or {}).get("model", "")
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"""Tests for the serving-layer recipe runtime (Confidence #1/#5, Fusion #3, selector #2)."""
|
|
2
2
|
import asyncio
|
|
3
3
|
import importlib.util
|
|
4
|
+
import os
|
|
4
5
|
import sys
|
|
5
6
|
import unittest
|
|
6
7
|
from pathlib import Path
|
|
@@ -24,10 +25,16 @@ spec.loader.exec_module(ce)
|
|
|
24
25
|
|
|
25
26
|
|
|
26
27
|
def S(enabled=True, recipe="auto", signal="heuristic", threshold=0.5, fusion_n=3,
|
|
27
|
-
auto_chars=600, model="opus", endpoint="http://x/", key="k", remom_quorum=2
|
|
28
|
+
auto_chars=600, model="opus", endpoint="http://x/", key="k", remom_quorum=2,
|
|
29
|
+
model_slots=None, force_multi_call=False):
|
|
30
|
+
# model_slots defaults to None = UNKNOWN width, which changes nothing. The
|
|
31
|
+
# selector reads this FIELD, never process env, so an ambient
|
|
32
|
+
# UAP_MODEL_SLOTS=1 (what proxy.env now carries on a one-slot box) cannot
|
|
33
|
+
# rewrite the expectations of tests that are not about slot width.
|
|
28
34
|
return ce.Settings(enabled=enabled, recipe=recipe, signal=signal, threshold=threshold,
|
|
29
35
|
fusion_n=fusion_n, remom_quorum=remom_quorum, auto_fusion_chars=auto_chars,
|
|
30
|
-
model=model, endpoint=endpoint, api_key=key
|
|
36
|
+
model=model, endpoint=endpoint, api_key=key,
|
|
37
|
+
model_slots=model_slots, force_multi_call=force_multi_call)
|
|
31
38
|
|
|
32
39
|
|
|
33
40
|
def resp(text):
|
|
@@ -351,5 +358,136 @@ class AdaptationSignalTest(unittest.TestCase): # LLM-Self-Tuning real-time adap
|
|
|
351
358
|
)
|
|
352
359
|
|
|
353
360
|
|
|
361
|
+
class SlotRightSizingTest(unittest.TestCase):
|
|
362
|
+
"""A fan-out recipe assumes its N generations OVERLAP.
|
|
363
|
+
|
|
364
|
+
On a backend serving one request at a time they do not -- they queue, so
|
|
365
|
+
fusion N=3 costs 3x the wall clock of a single call for the same answer,
|
|
366
|
+
and the deliver run paying it has a fixed wall-clock budget to finish in.
|
|
367
|
+
|
|
368
|
+
Measured live (2026-08-20, ninfer --max-concurrency 1, qwen3.8-27b):
|
|
369
|
+
tool-carrying turns already bypass recipes via has_tools, but mission
|
|
370
|
+
PLANNING carries no tools -- so it ran under fusion N=3 and took ~20
|
|
371
|
+
minutes, 17% of a 120-minute run budget, before turn 1 existed.
|
|
372
|
+
"""
|
|
373
|
+
|
|
374
|
+
def test_unknown_width_changes_nothing(self):
|
|
375
|
+
# Not every backend can be probed (ninfer serves no /slots), so silence
|
|
376
|
+
# is not evidence -- unknown width must leave behaviour identical.
|
|
377
|
+
self.assertEqual(ce.select_recipe(body(), S(recipe="fusion"), False), "fusion")
|
|
378
|
+
|
|
379
|
+
def test_single_slot_downgrades_explicit_fusion(self):
|
|
380
|
+
self.assertEqual(ce.select_recipe(body(), S(recipe="fusion", model_slots=1), False), "single")
|
|
381
|
+
|
|
382
|
+
def test_single_slot_downgrades_auto(self):
|
|
383
|
+
# auto can select fusion on its own; it must not be able to on one slot.
|
|
384
|
+
self.assertEqual(
|
|
385
|
+
ce.select_recipe(body("x" * 900), S(recipe="auto", model_slots=1), False), "single"
|
|
386
|
+
)
|
|
387
|
+
|
|
388
|
+
def test_single_slot_downgrades_other_multi_call_recipes(self):
|
|
389
|
+
for recipe in ("ratings", "remom"):
|
|
390
|
+
self.assertEqual(
|
|
391
|
+
ce.select_recipe(body(), S(recipe=recipe, model_slots=1), False), "single", recipe
|
|
392
|
+
)
|
|
393
|
+
|
|
394
|
+
def test_multi_slot_backend_keeps_fan_out(self):
|
|
395
|
+
# The cost being avoided is serialization. With real parallelism there
|
|
396
|
+
# is nothing to avoid.
|
|
397
|
+
self.assertEqual(ce.select_recipe(body(), S(recipe="fusion", model_slots=4), False), "fusion")
|
|
398
|
+
|
|
399
|
+
def test_operator_can_force_fan_out_on_one_slot(self):
|
|
400
|
+
self.assertEqual(
|
|
401
|
+
ce.select_recipe(body(), S(recipe="fusion", model_slots=1, force_multi_call=True), False),
|
|
402
|
+
"fusion",
|
|
403
|
+
)
|
|
404
|
+
|
|
405
|
+
def test_single_call_recipe_is_left_alone(self):
|
|
406
|
+
# `confidence` issues one generation and only escalates conditionally;
|
|
407
|
+
# downgrading it would remove quality for no latency win.
|
|
408
|
+
self.assertEqual(
|
|
409
|
+
ce.select_recipe(body(), S(recipe="confidence", model_slots=1), False), "confidence"
|
|
410
|
+
)
|
|
411
|
+
|
|
412
|
+
def test_zero_slots_counts_as_single(self):
|
|
413
|
+
self.assertEqual(ce.select_recipe(body(), S(recipe="fusion", model_slots=0), False), "single")
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
class SlotWidthResolutionTest(unittest.TestCase):
|
|
417
|
+
"""Width comes from the environment ONCE, at Settings construction."""
|
|
418
|
+
|
|
419
|
+
def setUp(self):
|
|
420
|
+
self._saved = {k: os.environ.get(k) for k in ("UAP_MODEL_SLOTS", "PROXY_MODEL_SLOTS")}
|
|
421
|
+
for k in self._saved:
|
|
422
|
+
os.environ.pop(k, None)
|
|
423
|
+
|
|
424
|
+
def tearDown(self):
|
|
425
|
+
for k, v in self._saved.items():
|
|
426
|
+
if v is None:
|
|
427
|
+
os.environ.pop(k, None)
|
|
428
|
+
else:
|
|
429
|
+
os.environ[k] = v
|
|
430
|
+
|
|
431
|
+
def test_absent_is_unknown(self):
|
|
432
|
+
self.assertIsNone(ce.resolve_model_slots())
|
|
433
|
+
|
|
434
|
+
def test_reads_the_shared_variable(self):
|
|
435
|
+
os.environ["UAP_MODEL_SLOTS"] = "1"
|
|
436
|
+
self.assertEqual(ce.resolve_model_slots(), 1)
|
|
437
|
+
|
|
438
|
+
def test_proxy_local_alias_is_honoured(self):
|
|
439
|
+
os.environ["PROXY_MODEL_SLOTS"] = "2"
|
|
440
|
+
self.assertEqual(ce.resolve_model_slots(), 2)
|
|
441
|
+
|
|
442
|
+
def test_unparseable_width_is_unknown_not_single(self):
|
|
443
|
+
# A typo must not silently disable fan-out everywhere.
|
|
444
|
+
os.environ["UAP_MODEL_SLOTS"] = "lots"
|
|
445
|
+
self.assertIsNone(ce.resolve_model_slots())
|
|
446
|
+
|
|
447
|
+
def test_ambient_one_slot_env_does_not_move_an_explicit_setting(self):
|
|
448
|
+
# THE isolation property. proxy.env now carries UAP_MODEL_SLOTS on a
|
|
449
|
+
# one-slot box and the proxy env loader setdefaults it into every
|
|
450
|
+
# subprocess; when the selector read process env directly, that ambient
|
|
451
|
+
# value silently failed 15 unrelated tests in this file.
|
|
452
|
+
os.environ["UAP_MODEL_SLOTS"] = "1"
|
|
453
|
+
self.assertEqual(ce.select_recipe(body(), S(recipe="fusion"), False), "fusion")
|
|
454
|
+
|
|
455
|
+
|
|
456
|
+
class SlotDowngradeSkipsGenerationsTest(unittest.TestCase):
|
|
457
|
+
"""The cost being avoided is upstream GENERATIONS, so assert on the calls."""
|
|
458
|
+
|
|
459
|
+
def test_one_slot_backend_issues_no_extra_generations(self):
|
|
460
|
+
primary = {"content": [{"type": "text", "text": "answer"}]}
|
|
461
|
+
calls = []
|
|
462
|
+
|
|
463
|
+
async def call_primary(**kw):
|
|
464
|
+
calls.append(kw)
|
|
465
|
+
return primary
|
|
466
|
+
|
|
467
|
+
async def call_judge(**kw):
|
|
468
|
+
raise AssertionError("judge must not be called on a downgraded turn")
|
|
469
|
+
|
|
470
|
+
out = run(
|
|
471
|
+
ce.apply_recipe(
|
|
472
|
+
primary, body(), {"model": "qwen"},
|
|
473
|
+
S(recipe="fusion", model_slots=1),
|
|
474
|
+
False, call_primary, call_judge,
|
|
475
|
+
)
|
|
476
|
+
)
|
|
477
|
+
self.assertEqual(len(calls), 0)
|
|
478
|
+
self.assertIs(out, primary)
|
|
479
|
+
|
|
480
|
+
def test_off_values_do_not_force_fan_out(self):
|
|
481
|
+
# The escape hatch is a negative-set membership test; a refactor to
|
|
482
|
+
# bool(os.environ.get(...)) would invert it and only "1" is otherwise covered.
|
|
483
|
+
for raw in ("0", "false", "off", "no", ""):
|
|
484
|
+
with self.subTest(raw=raw):
|
|
485
|
+
os.environ["PROXY_FORCE_MULTI_CALL"] = raw
|
|
486
|
+
try:
|
|
487
|
+
self.assertFalse(ce.Settings.from_env().force_multi_call)
|
|
488
|
+
finally:
|
|
489
|
+
os.environ.pop("PROXY_FORCE_MULTI_CALL", None)
|
|
490
|
+
|
|
491
|
+
|
|
354
492
|
if __name__ == "__main__":
|
|
355
493
|
unittest.main()
|