Public

palantir/blueprint

Updated: 8/15/2026

Languages

TypeScript85.2%SCSS7%MDX4.8%JavaScript2.5%Shell0.3%HTML0.2%
14 Models59 Tasks

A React-based UI toolkit for the web

Harness

1

Mini-SWE-agent
55 / 59

$5.33

12m34s

2

Mini-SWE-agent
52 / 59

$0.39

8m46s

3

Mini-SWE-agent
52 / 59

$3.00

22m10s

4

Mini-SWE-agent
52 / 59

$3.33

23m06s

5

Mini-SWE-agent
52 / 59

$0.58

26m33s

6

Mini-SWE-agent
51 / 59

$5.85

13m16s

7

Mini-SWE-agent
51 / 59

$0.07

14m34s

8

Mini-SWE-agent
51 / 59

$0.48

17m13s

9

Mini-SWE-agent
51 / 59

$3.67

35m21s

10

Mini-SWE-agent
50 / 59

$1.74

10m31s

11

Mini-SWE-agent
50 / 59

$1.55

18m06s

12

Mini-SWE-agent
50 / 59

$1.05

23m27s

13

Mini-SWE-agent
47 / 59

$0.54

14m06s

14

Mini-SWE-agent
42 / 59

$0.27

21m19s

Key Takeaways

  • GPT-5.6 Terra with Mini-SWE-agent matches Claude Opus 4.7, Claude Opus 4.8, and GLM 5.2 (Fireworks) at 52 of 59 tasks.
  • GPT-5.6 Luna with Mini-SWE-agent resolves 51 of 59 tasks at $0.07 per test, while GPT-5.6 Sol resolves 50 at $1.74 per test.

Model Comparison

Accuracy

93.22%

Claude Fable 5

88.14%

GPT-5.6 Terra

Task outcomes

59 tasks

Both
Claude Fable 5 only
GPT-5.6 Terra only
Neither
Not attempted

Cost / test

$5.33

Claude Fable 5

$0.39

GPT-5.6 Terra

Cost distribution

$0.00$8.67$17.35

Latency

12m 34s

Claude Fable 5

8m 46s

GPT-5.6 Terra

Latency distribution

0s18m 17s36m 34s

Cost Analysis

Cost / Test vs. Accuracy
ACCURACYCOST

Average Token Use / Test

Token Usage
InputOutputReasoningCache readCache write
Claude Sonnet 5
8.1M
Claude Opus 4.7
4.0M
Claude Opus 4.8
3.5M
Claude Fable 5
2.6M
GLM 5.2
2.4M
Gemini 3.5 Flash
2.2M
Kimi K3
1.8M
GPT-5.6 Luna
1.4M
GPT-5.6 Sol
1.4M
GPT 5.5
1.4M
Claude Haiku 4.5 (Nonthinking)
1.4M
Grok 4.5
647K
Gemini 3.1 Pro Preview (02/26)
601K
GPT-5.6 Terra
598K

Cost is the clearest tradeoff in this comparison. Claude Fable 5 leads at 93.22% for $5.33 per test. GPT-5.6 Luna is the lower-cost option at 86.44% for $0.07 per test.

Latency Analysis

Latency vs. Accuracy
ACCURACYLATENCY

Average Response Time / Test

Response Time
Claude Sonnet 5
35m 21s
GLM 5.2
26m 33s
Gemini 3.5 Flash
23m 27s
Claude Opus 4.8
23m 6s
Claude Opus 4.7
22m 10s
Claude Haiku 4.5 (Nonthinking)
21m 19s
GPT 5.5
18m 6s
Grok 4.5
17m 13s
GPT-5.6 Luna
14m 34s
Gemini 3.1 Pro Preview (02/26)
14m 6s
Kimi K3
13m 16s
Claude Fable 5
12m 34s
GPT-5.6 Sol
10m 31s
GPT-5.6 Terra
8m 46s

Latency separates several models with similarly strong scores. Claude Fable 5 leads at 93.22%, while GPT-5.6 Terra is fastest at 8m 46s with 88.14% accuracy.

Tasks with failures

Models
Claude Fable 5
GPT-5.6 Terra
GLM 5.2
Claude Opus 4.7
Claude Opus 4.8
GPT-5.6 Luna
Grok 4.5
Claude Sonnet 5
Kimi K3
Gemini 3.5 Flash
GPT 5.5
GPT-5.6 Sol
Gemini 3.1 Pro Preview (02/26)
Claude Haiku 4.5 (Nonthinking)

Task detail

aa64811

Issue statement

DateRangeInput does not close its calendar popover when Escape is pressed

The DateRangeInput component (in @blueprintjs/datetime) opens a calendar popover when one of its two text inputs is focused. Standard overlay/popover behavior in the toolkit is that pressing the Escape key while interacting with the control dismisses the popover, but DateRangeInput ignores the Escape key entirely.

Steps to reproduce

  1. Render a DateRangeInput and focus the start input so the calendar popover opens (isOpen becomes true).
  2. Press the Escape key while the input is focused.

Expected behavior

Pressing Escape should close the popover (isOpen becomes false) and the input fields should no longer be focused.

Actual behavior

Nothing happens: the popover stays open and the input keeps focus.

The key-down handling for the range inputs should treat Escape as a request to dismiss the popover and blur the currently focused field.

View Hidden Tests
diff --git a/packages/datetime/test/components/dateRangeInputTests.tsx b/packages/datetime/test/components/dateRangeInputTests.tsxindex deb4c7210..018d4aeca 100644--- a/packages/datetime/test/components/dateRangeInputTests.tsx+++ b/packages/datetime/test/components/dateRangeInputTests.tsx@@ -602,6 +602,21 @@ describe("<DateRangeInput>", () => {             expect(root.state("isOpen"), "popover closed at end").to.be.false;         }); +        it("pressing Escape closes the popover", () => {+            const { root } = wrap(<DateRangeInput {...DATE_FORMAT} value={[null, null]} />);+            root.setState({ isOpen: true });++            const startInput = getStartInput(root);+            startInput.simulate("focus");++            expect(root.state("isOpen")).to.be.true;++            startInput.simulate("keydown", { key: "Escape" });++            expect(root.state("isOpen")).to.be.false;+            expect(isStartInputFocused(root)).to.be.false;+        });+         it("Clicking a date invokes onChange with the new date range and updates the input fields", () => {             const defaultValue = [START_DATE, null] as DateRange;