ur-agent 1.58.0 → 1.59.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,53 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.59.0
4
+
5
+ - Added `ur sources`, a claim-to-source ledger. `wrapUntrusted` already stamped
6
+ every untrusted block with a nonce and a source label, but discarded both the
7
+ moment the block reached the model, so there was no way to audit what web or
8
+ MCP content an answer was built on. Recording happens inside `wrapUntrusted`
9
+ itself — the single choke point every untrusted block passes through, so the
10
+ ledger cannot miss one. `--check "<span>"` reports which fetched source
11
+ contains a span, and says plainly when none does, which is the useful signal:
12
+ that claim was not grounded in anything UR retrieved. This is the automatic
13
+ counterpart to the existing `/claim-ledger`, which records claims a human or
14
+ the agent asserts by hand; `ur sources` records what actually entered context
15
+ without anyone having to remember to log it.
16
+ - The ledger is in-memory and capped. Persisting it would create a second
17
+ on-disk store of third-party content — including whatever a prompt-injection
18
+ attempt put there — with its own retention and deletion obligations.
19
+ - Added `ur grade-trajectory`, which grades a run on how it worked rather than
20
+ what it concluded: unverified changes, edits to files never read, destructive
21
+ commands, and loops on identical failures. Every rule is deterministic and
22
+ read from the transcript; no model grades another model, because a judge that
23
+ can hallucinate turns a CI gate into a coin flip.
24
+ - `--min-score` sets `process.exitCode`, so the gate genuinely fails a CI step.
25
+ Returning an `exitCode` field is silently ignored by `runLocalTextCommand`,
26
+ which exits with `process.exitCode ?? 0` — the first implementation printed
27
+ FAILED and exited 0.
28
+
29
+ ## 1.58.1
30
+
31
+ - Unified vision-capability detection behind
32
+ `src/utils/model/visionCapability.ts`. Three implementations disagreed: the
33
+ Ollama adapter's `modelCapabilityEnabled` returned `has(x) ?? true`, so a
34
+ model advertising nothing was assumed capable; `ur model-doctor` matched
35
+ names privately; the router read a precomputed flag. The binary shape was the
36
+ defect — absence of evidence was reported as evidence, in opposite directions.
37
+ - Vision support is now tri-state. A capability list is authoritative both ways;
38
+ a recognised name can confirm support but never rule it out; anything else is
39
+ `unknown`. Images are withheld only on a confirmed no, so servers without a
40
+ capabilities endpoint keep working, and the note distinguishes "this model
41
+ cannot see" from "support could not be confirmed" — advice that had been
42
+ backwards for models like `kimi-k2.7-code:cloud`.
43
+
44
+ - Fixed choice menus where all three fields said the same thing. Neither the
45
+ schema nor the tool prompt stated that `header`, `label` and `description`
46
+ must carry different information, so the header restated the question and the
47
+ description paraphrased the label — leaving the one field with room to be
48
+ informative saying nothing. Each field now has a defined job, and the prompt
49
+ carries a contrasted bad/good example rather than an abstract instruction.
50
+
3
51
  ## 1.58.0
4
52
 
5
53
  - Added per-agent cost and token attribution: `ur agent-inspect --costs`.