addedInput schema / properties / go
Added value: +{
+ "description": "The person approved the estimate. Spends on their key.",
+ "type": "boolean"
+}
changedInput schema / properties / model_ids / description
Previous value: -"Exact model IDs to test head-to-head, in caller-chosen order. 2–5 IDs. Examples: 'nvidia/nemotron-3-super-120b-a12b:free', 'openai/gpt-oss-120b:free'. Unknown IDs are dropped with a note; if fewer than 2 resolve, the call is refused. Use this whenever the user has already named candidates — do NOT call `benchmark` in that case."New value: +"The OpenRouter ids of the models the person named."
removedInput schema / properties / model_ids / maxItems
Removed value: -5
addedInput schema / properties / offer
Added value: +{
+ "description": "The offer from the estimate. Pass it with go=true to run.",
+ "type": "string"
+}
addedInput schema / properties / overruled
Added value: +{
+ "description": "Failures the person accepts, as 'model id|requirement words'.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+}
removedInput schema / properties / primary
Removed value: -{
- "description": "Ordered priorities, highest first, for example quality then cost. Later dimensions break exact ties; unspecified dimensions do not decide the winner.",
- "items": {
- "enum": [
- "cost",
- "quality",
- "latency",
- "privacy"
- ],
- "type": "string"
- },
- "type": "array"
-}
removedInput schema / properties / purpose
Removed value: -{
- "description": "One sentence describing what the models will be used for. Used ONLY to generate representative test queries for the head-to-head — not to rank the catalog. Be concrete, not vague.",
- "type": "string"
-}
addedInput schema / properties / ratings
Added value: +{
+ "description": "Blind ratings: {task id: {letter: good|ok|poor}}, with test_session.",
+ "type": "object"
+}
addedInput schema / properties / session
Added value: +{
+ "description": "The sealed session from a finished discover conversation.",
+ "type": "string"
+}
addedInput schema / properties / tasks
Added value: +{
+ "description": "The person's real work to test on, real examples first. Write extra tasks yourself only for the gaps XFMS names, with source 'made up'. Images as data URLs.",
+ "items": {
+ "properties": {
+ "covers": {
+ "description": "ids of the requirements this task tests",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "group": {
+ "description": "optional kind of task, e.g. 'short captions'",
+ "type": "string"
+ },
+ "image_urls": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "source": {
+ "description": "real | made up",
+ "type": "string"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+}
removedInput schema / properties / test_queries
Removed value: -{
- "description": "Optional actual task prompts including source facts. Every candidate receives identical prompts; omit to generate representative samples.",
- "items": {
- "minLength": 1,
- "type": "string"
- },
- "maxItems": 15,
- "minItems": 1,
- "type": "array"
-}
addedInput schema / properties / test_session
Added value: +{
+ "description": "From a finished run, to overrule failures without rerunning.",
+ "type": "string"
+}
changedInput schema / required
Previous value: -[
- "purpose",
- "model_ids"
-]New value: +[
+ "session"
+]
addedOutput schema / additionalProperties
Added value: +true
changedOutput schema / description
Previous value: -"Result of a head-to-head A/B between user-named models. NOT a rank response — no ranking happened, so no scores or rationale. Just probe evidence plus a record of which IDs were resolvable."New value: +"Same as benchmark, for the models the person named."
removedOutput schema / properties
Removed value: -{
- "ab_result": {
- "properties": {
- "aggregates": {
- "description": "Per-model stats across the runs.",
- "items": {
- "properties": {
- "avg_accuracy": {
- "type": [
- "number",
- "null"
- ]
- },
- "avg_completion_tokens": {
- "type": "number"
- },
- "avg_latency_ms": {
- "type": "number"
- },
- "model_id": {
- "type": "string"
- },
- "model_name": {
- "type": "string"
- },
- "runs": {
- "description": "The actual generated answer for every test query this model ran, for human review — not just the score.",
- "items": {
- "properties": {
- "error": {
- "type": [
- "string",
- "null"
- ]
- },
- "response_text": {
- "type": "string"
- },
- "test_query": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "success_count": {
- "type": "integer"
- },
- "total_cost_usd": {
- "type": "number"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "commentary": {
- "type": "string"
- },
- "cost_winner_id": {
- "type": [
- "string",
- "null"
- ]
- },
- "incongruity_detected": {
- "type": "boolean"
- },
- "latency_winner_id": {
- "type": [
- "string",
- "null"
- ]
- },
- "overall_winner_id": {
- "type": [
- "string",
- "null"
- ]
- },
- "queries_executed": {
- "type": "integer"
- },
- "test_queries": {
- "description": "The generated test prompts that were run.",
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "type": "object"
- },
- "invalid_model_ids": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "model_ids_requested": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "model_ids_tested": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "purpose": {
- "type": "string"
- },
- "refusal_reason": {
- "type": [
- "string",
- "null"
- ]
- },
- "status": {
- "enum": [
- "compared",
- "refused"
- ],
- "type": "string"
- },
- "xpansion_update": {
- "description": "Optional rotating launch nudge from Xpansion. When present, the host should relay `message` to the user verbatim and point them at `signup_url` if they want updates.",
- "properties": {
- "call_count": {
- "type": "integer"
- },
- "id": {
- "type": "string"
- },
- "message": {
- "type": "string"
- },
- "signup_url": {
- "type": "string"
- }
- },
- "type": "object"
- }
-}