Simulate an inbound SMS order
Text an order the way a contractor would. Watch the pricing matrix get injected on the turn, and watch the server recompute the total before anything is emitted.
The language parser here is a deterministic stand-in so the demo runs offline. The guardrail is not a stand-in — this page imports evaluateOrder from @vulcan/core, the same module that runs in production, unmodified.
Plan
Scenario
Ridgeline Building Supply
SMS · +1 214 555 •••• · A2P 10DLC
Try one of these, or write your own:
Math guardrail
Send an order to watch the server recompute it against the injected matrix.
{
"customerId": "+1214555••••",
"channel": "sms",
"creditTier": "NET_30",
"creditCeilingCents": 7500000,
"dailyLimitRemainingCents": 4200000,
"validationContext": {
"plywood_cdx_1_2_4x8": {
"unitPriceCents": 2680,
"name": "CDX Plywood 1/2\" 4x8",
"uom": "EA",
"availableQty": 1840
},
"lumber_spf_2x4_8ft": {
"unitPriceCents": 589,
"name": "SPF 2x4-8' Stud",
"uom": "EA",
"availableQty": 6200,
"minOrderQty": 50
},
"shingle_arch_30yr_sq": {
"unitPriceCents": 11250,
"name": "Architectural Shingle 30yr",
"uom": "SQ",
"availableQty": 310
},
"rebar_grade60_20ft": {
"unitPriceCents": 1495,
"name": "#4 Rebar Grade 60 20'",
"uom": "EA",
"availableQty": 0
},
"joint_compound_5gal": {
"unitPriceCents": 1885,
"name": "All-Purpose Joint Compound 5gal",
"uom": "EA",
"availableQty": 240
}
},
"_note": "All money is integer US cents. 2680 means $26.80. Vulcan makes no outbound call to fetch any of this and keeps no copy after the turn."
}