Screen research evidence and record bounded llm-connect refinement

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a0cffe-206f-7323-89d3-b20ca4cf4bf9
This commit is contained in:
tegwick 2026-09-25 01:43:16 +02:00
parent 2ec23bb22c
commit 509e86d9c5
24 changed files with 688 additions and 9 deletions

View file

@ -89,7 +89,7 @@ def plan(root):
class LLMConnectAdapter:
"""Client of llm-connect's /execute contract; credentials stay at the service."""
def __init__(self, endpoint, model, max_tokens=4000):
def __init__(self, endpoint, model, max_tokens=4000, reasoning_effort=None):
parsed = urlsplit(endpoint)
if (parsed.scheme not in ("http", "https") or not parsed.hostname
or parsed.username or parsed.password or parsed.query or parsed.fragment):
@ -98,6 +98,8 @@ class LLMConnectAdapter:
raise ValueError("--max-tokens must be positive")
self.endpoint, self.model = endpoint.rstrip("/"), model
self.config = RunConfig(model_name=model, temperature=0.2, max_tokens=max_tokens)
if reasoning_effort is not None:
self.config.model_params["reasoning_effort"] = reasoning_effort
self.responses = []
def generate(self, generation):
@ -122,6 +124,10 @@ class LLMConnectAdapter:
metadata.update({key: extra[key] for key in (
"provider", "response_id", "latency_seconds", "profile", "profile_model",
"profile_provider") if key in extra})
content = data.get("content")
metadata["content_characters"] = len(content) if isinstance(content, str) else None
metadata["content_sha256"] = (hashlib.sha256(content.encode()).hexdigest()
if isinstance(content, str) else None)
self.responses.append({"stage": generation.stage_id, **metadata})
if (not isinstance(data.get("content"), str) or not data["content"].strip()
or data.get("finish_reason") != "stop"):
@ -201,6 +207,8 @@ def main():
providers.add_argument("--llm-connect-url", help="llm-connect service base URL")
run.add_argument("--model", help="Model or runtime profile requested from llm-connect")
run.add_argument("--max-tokens", type=int, default=4000)
run.add_argument("--reasoning-effort", choices=["low", "medium", "high"],
help="Explicit service model_params override; provider support may vary")
run.add_argument("--max-calls", type=int, default=4)
args = parser.parse_args()
try:
@ -216,7 +224,8 @@ def main():
else:
if not args.model:
raise ValueError("Live generation requires --model")
adapter = LLMConnectAdapter(args.llm_connect_url, args.model, args.max_tokens)
adapter = LLMConnectAdapter(args.llm_connect_url, args.model, args.max_tokens,
args.reasoning_effort)
result = execute(args.root, adapter, args.max_calls)
print(json.dumps(result, indent=2, default=str))
except (ValueError, OSError, InfospaceError) as exc: