Tool-request card speaks plainly; declining re-checks for a user-installed copy

Fact strip: 'OpenWorker installs its own verified copy from <publisher>' replaces
supply-chain jargon. On decline the engine re-resolves — a copy the user installed
themselves is handed to the agent as theirs, not treated as a refusal.
This commit is contained in:
Rohit C Prasad
2026-08-15 00:14:15 -07:00
committed by Rohit P
parent b022e58d07
commit 560fc3cb8a
5 changed files with 68 additions and 17 deletions
+5 -2
View File
@@ -22,8 +22,11 @@ test("request_tool surfaces a card naming the tool, the reason and the pinned ve
// the coworker's quoted reason (mixing them is what made the card confusing, 2026-08-14).
const facts = card.locator(".toolreq-facts");
await expect(facts).toContainText("8.30.1");
await expect(facts).toContainText(/checksum-verified/i);
await expect(facts).toContainText("from github.com/gitleaks");
// Plain-language consent: who installs (OpenWorker), from where, and the self-install
// alternative — no supply-chain jargon on the card (owner feedback 2026-08-15).
await expect(facts).toContainText(
"OpenWorker installs its own verified copy from github.com/gitleaks — or install it yourself and continue.",
);
// Declining must read as a normal choice that continues the run, not a failure.
await expect(card.getByTestId("toolreq-skip")).toHaveText("Continue without it");
});
+16 -11
View File
@@ -30,20 +30,25 @@ export function ToolRequestCard({
coworker's quoted ask above — mixing the two voices is what made the card confusing. */}
{item.installable ? (
<div className="toolreq-facts">
<code>
{item.tool}
{item.version ? ` ${item.version}` : ""}
</code>
{item.summary && <span className="toolreq-fact">{item.summary}</span>}
<span className="toolreq-fact">pinned &amp; checksum-verified</span>
{item.source && <span className="toolreq-fact">from {item.source}</span>}
<div className="toolreq-factrow">
<code>
{item.tool}
{item.version ? ` ${item.version}` : ""}
</code>
{item.summary && <span className="toolreq-fact">{item.summary}</span>}
</div>
<div className="toolreq-explain">
OpenWorker installs its own verified copy
{item.source ? ` from ${item.source}` : ""} or install it yourself and
continue.
</div>
</div>
) : (
<div className="toolreq-facts">
<span className="toolreq-fact">
No verified build is available for this machine install it yourself if you want
this check, or continue and the coworker will note the gap.
</span>
<div className="toolreq-explain">
OpenWorker has no verified build for this machine install it yourself if you
want this check, or continue and the coworker will note the gap.
</div>
</div>
)}
<div className="dirreq-actions">
+4 -3
View File
@@ -800,14 +800,15 @@ button.btn.danger { color: var(--accent); }
/* request_tool fact strip — the product's own metadata (version, publisher, checksum),
deliberately NOT italic so it can't be misread as the coworker still talking */
.toolreq-facts {
display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px;
font-size: 12.5px; color: var(--muted); font-style: normal;
background: var(--paper); border: 1px solid var(--line); border-radius: 8px;
padding: 7px 10px; margin: 2px 0 10px;
}
.toolreq-facts code { color: var(--ink); font-size: 12.5px; }
.toolreq-fact + .toolreq-fact::before,
.toolreq-facts code + .toolreq-fact::before { content: "· "; color: var(--muted); }
.toolreq-factrow { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.toolreq-factrow code + .toolreq-fact::before { content: "· "; color: var(--muted); }
.toolreq-explain { margin-top: 4px; }
.toolreq-factrow + .toolreq-explain { margin-top: 5px; }
/* a disabled Install must LOOK disabled — the whole card exists to not oversell */
.dirreq-actions .btn:disabled { opacity: 0.45; cursor: not-allowed; }
.dirreq-pathrow { display: flex; gap: 8px; align-items: center; }