Score
Score urgency.
A Score question rates a message against an ordered rubric you define. This recipe uses three levels — Routine, Time-sensitive, and Urgent — described in full below.
The rubric sent to Jev
- 0Routine — a general question, comment, or minor request with no deadline or breakage implied
- 1Time-sensitive — something is blocked or inconvenient, but there is a reasonable window to respond
- 2Urgent — active harm, an outage, a security exposure, or a deadline that has already arrived
Score
Score urgency
Level: 0.05 of 2
Routine — a general question, comment, or minor request with no deadline or breakage implied
- Level 095.0%
- Level 15.0%
- Level 20.0%
This score reflects Jev's read of the message against the rubric above. It is not an objective measurement of urgency, and a high score is not proof the situation is actually severe. Confidence: 0.93.
Not a live or recorded response — shown to illustrate the shape of an answer.
Build this
import { score, TypeSafeClient } from "@typesafe-ai/sdk"; const client = new TypeSafeClient(); // reads TYPESAFE_API_KEY, defaults to jev-latest const message = "Loving the new dashboard redesign! One small idea: it'd be nice if the export button were a little bigger and easier to find."; const { answers } = await client.systemOne({ state: message, model: "jev-latest", questions: { urgency: score( "How urgently does this message need a response from support?", [ "Routine — a general question, comment, or minor request with no deadline or breakage implied", "Time-sensitive — something is blocked or inconvenient, but there is a reasonable window to respond", "Urgent — active harm, an outage, a security exposure, or a deadline that has already arrived", ], ), },}); const { score: level, legend, probabilities, confidence } = answers.urgency; // `level` can land between two whole levels; round it before indexing `legend`.// Object.values() reads levels in order (0, 1, 2, ...) without depending on the exact key type.console.log("Level " + level.toFixed(2) + ": " + Object.values(legend)[Math.round(level)]);console.log(probabilities, confidence);Type-checked against @typesafe-ai/sdk 0.6.0 as part of this site's build. Not executed against the live API by this guide.
npm install @typesafe-ai/sdk — requires Node.js 20+. Set TYPESAFE_API_KEY in your environment.
Keep TYPESAFE_API_KEY on the server. Never embed it in client code or ship it in a browser bundle.
Emotion is not the same as urgency
The “Angry about a typo” sample above is written with strong emotional language — capital letters, exclamation marks, “SO frustrated” — but describes a cosmetic footer typo the customer explicitly says can wait. A useful urgency score should track the operational stakes in the message, not just its tone. Compare it with the calm-but-urgent board-meeting sample above; when a result is illustrative rather than live or recorded, the values shown are hand-authored examples of this pattern, not measured output.
Reading the score
score is a position on the level line and can land between two levels — a 3-level rubric runs from 0 to 2. It is Jev's read of the message against the rubric above, not an objective measurement of urgency: a high score is not proof that a situation is actually severe, and a low one is not a guarantee it can wait. Use it as one input to a decision, and check the full probability spread when the score sits near a boundary.