Recipe catalog / budget-fit
Check plan against budget
Does plan, as described, plausibly fit within budget, the stated limits on steps, time, cost, or calls?
You need a yes/no check before an agent starts executing a plan under a step, time, cost, or call limit, so it can trim or ask instead of running out midway.
Explore this recipe interactively ยท Source and implementation guide
Use budget-fit in TypeScript
Install with npm install jev-recipes. Requires Node.js 22.9 or newer and ES modules. Set TYPESAFE_API_KEY in your server environment for live calls, which send input to TypeSafe and use API quota. See the installation guide.
import { budgetFit } from 'jev-recipes/budget-fit';
const result = await budgetFit({
"plan": "1. Clone the repository and install dependencies. 2. Run the full test suite to record the baseline (about 12 minutes). 3. For each of the 9 failing tests, read the test, read the code under test, propose a fix, apply it, and rerun the full suite. 4. Open a pull request with a summary of every fix.",
"budget": "At most 20 tool calls and 30 minutes of wall-clock time. No more than 5 full test-suite runs.",
"minConfidence": 0.8
});
console.log(result);
Input contract
| Field | Type | Needed |
|---|---|---|
| plan | string | Required |
| budget | string | Required |
| minConfidence | number | Optional |
Full input and result schemas
{
"input": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"plan": {
"type": "string"
},
"budget": {
"type": "string"
},
"minConfidence": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"plan",
"budget"
]
},
"result": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"model": {
"type": "string"
},
"usage": {
"type": "object",
"properties": {
"input_tokens": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"output_tokens": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"input_tokens",
"output_tokens"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"ready",
"review"
]
},
"probability": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"verdict": {
"type": "string",
"enum": [
"fits",
"exceeds"
]
}
},
"required": [
"model",
"usage",
"status",
"probability",
"confidence",
"verdict"
],
"additionalProperties": false
}
}Saved example result
This hand-authored response demonstrates the contract. It is not a model accuracy measurement. Run it without an API key: npx jev-recipes demo budget-fit.
{
"model": "demo-fixture",
"usage": {
"input_tokens": 0,
"output_tokens": 0
},
"status": "ready",
"probability": 0.08,
"confidence": 0.92,
"verdict": "exceeds"
}
Evaluation evidence
No verified live accuracy measurement is available. Evaluate representative cases before using this decision in your workflow.
Use the evaluation guide to measure this decision on your own labeled cases.
Limitations
- A semantic estimate from the plan and budget as written, not a measurement. Enforce hard limits in code.
- Reports that the plan plausibly fits or exceeds, not by how much or which step to cut.
Related recipes
- task-complexity: Use task-complexity to size a task on a rubric before a budget exists, rather than checking a plan against a stated one.
- plan-completeness: Use plan-completeness to check that the plan covers its goal; a plan can fit the budget by leaving work out.