{"ok":true,"site":{"host":"countrylab.vercel.app","url":"https://countrylab.vercel.app/","type":"live","desc":"CountryLab","tools":[{"name":"get_country_state","kind":"answer","impl":"imperative","description":"Read a concise semantic snapshot of the CURRENT LIVE country. Use before investigating or acting; this never changes the simulation.","title":"Get country state","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"inspect_region","kind":"act","impl":"imperative","description":"Inspect one live region: infrastructure health, productivity, damage, capacity, related metrics, events, and disruptions. Read-only; it does not change the live country.","title":"Inspect region","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"region":{"type":"string","enum":["capital","farmbelt","industrial","port","energy"]}},"required":["region"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"inspect_sector","kind":"answer","impl":"imperative","description":"Inspect one live economic sector and its current output, health, capacity, and causal roots. Read-only; it does not change the live country.","title":"Inspect sector","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"sector":{"type":"string","enum":["agriculture","manufacturing","energy","trade","banking","households","government","central_bank"]}},"required":["sector"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_metric_history","kind":"answer","impl":"imperative","description":"Read bounded historical values for one live metric. Use this to find when an outcome changed before asking why. Read-only; it does not change the live country.","title":"Get metric history","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"metric":{"type":"string","enum":["gdp","inflation","unemployment","debtPct","foodIndex","energyIndex","industrialOutput","importsIndex","exportsIndex","confidence"]},"months":{"type":"integer","minimum":1,"maximum":60}},"required":["metric"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_event_history","kind":"answer","impl":"imperative","description":"Read major shocks and policy decisions in the live timeline with months, effects, and causal references. Read-only; it does not change the live country.","title":"Get event history","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_causal_history","kind":"answer","impl":"imperative","description":"Explain WHY a live metric changed using deterministic causal contributors and human-readable chains. Read-only; it does not change the live country.","title":"Get causal history","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"metric":{"type":"string","enum":["gdp","inflation","unemployment","debtPct","foodIndex","energyIndex","industrialOutput","importsIndex","exportsIndex","confidence"]},"months":{"type":"integer","minimum":1,"maximum":36}},"required":["metric"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"change_policy","kind":"act","impl":"imperative","description":"Change one policy in the CURRENT LIVE country. This mutates the user-visible simulation immediately; use only when the user explicitly asks to change policy.","title":"Change live policy","inputSchema":{"type":"object","properties":{"policy":{"type":"string","enum":["interest_rate","income_tax","corporate_tax","government_spending","tariff","emergency_spending"]},"value":{"type":"number"}},"required":["policy","value"],"additionalProperties":false,"oneOf":[{"type":"object","properties":{"policy":{"type":"string","const":"interest_rate"},"value":{"type":"number","minimum":0,"maximum":20}},"required":["policy","value"],"additionalProperties":false},{"type":"object","properties":{"policy":{"type":"string","const":"income_tax"},"value":{"type":"number","minimum":0,"maximum":60}},"required":["policy","value"],"additionalProperties":false},{"type":"object","properties":{"policy":{"type":"string","const":"corporate_tax"},"value":{"type":"number","minimum":0,"maximum":60}},"required":["policy","value"],"additionalProperties":false},{"type":"object","properties":{"policy":{"type":"string","const":"government_spending"},"value":{"type":"number","minimum":0,"maximum":100}},"required":["policy","value"],"additionalProperties":false},{"type":"object","properties":{"policy":{"type":"string","const":"tariff"},"value":{"type":"number","minimum":0,"maximum":50}},"required":["policy","value"],"additionalProperties":false},{"type":"object","properties":{"policy":{"type":"string","const":"emergency_spending"},"value":{"type":"number","minimum":0,"maximum":100}},"required":["policy","value"],"additionalProperties":false}]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"trigger_event","kind":"act","impl":"imperative","description":"Trigger one supported shock in the CURRENT LIVE country. This mutates the user-visible simulation immediately. Region is optional because each shock has one modeled canonical region; if provided it must match that event.","title":"Trigger live event","inputSchema":{"type":"object","properties":{"event":{"type":"string","enum":["flood","drought","oil_shock","trade_conflict","banking_crisis","productivity_boom"]},"region":{"type":"string","enum":["capital","farmbelt","industrial","port","energy"]},"severity":{"type":"number","minimum":0.25,"maximum":2}},"required":["event"],"additionalProperties":false,"oneOf":[{"type":"object","properties":{"event":{"type":"string","const":"flood"},"region":{"type":"string","const":"port"},"severity":{"type":"number","minimum":0.25,"maximum":2}},"required":["event"],"additionalProperties":false},{"type":"object","properties":{"event":{"type":"string","const":"drought"},"region":{"type":"string","const":"farmbelt"},"severity":{"type":"number","minimum":0.25,"maximum":2}},"required":["event"],"additionalProperties":false},{"type":"object","properties":{"event":{"type":"string","const":"oil_shock"},"region":{"type":"string","const":"energy"},"severity":{"type":"number","minimum":0.25,"maximum":2}},"required":["event"],"additionalProperties":false},{"type":"object","properties":{"event":{"type":"string","const":"trade_conflict"},"region":{"type":"string","const":"industrial"},"severity":{"type":"number","minimum":0.25,"maximum":2}},"required":["event"],"additionalProperties":false},{"type":"object","properties":{"event":{"type":"string","const":"banking_crisis"},"region":{"type":"string","const":"capital"},"severity":{"type":"number","minimum":0.25,"maximum":2}},"required":["event"],"additionalProperties":false},{"type":"object","properties":{"event":{"type":"string","const":"productivity_boom"},"region":{"type":"string","const":"industrial"},"severity":{"type":"number","minimum":0.25,"maximum":2}},"required":["event"],"additionalProperties":false}]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"provide_emergency_response","kind":"act","impl":"imperative","description":"Set live emergency spending for disaster response. This mutates the CURRENT LIVE country and is the only emergency-response lever currently modeled.","title":"Provide emergency response","inputSchema":{"type":"object","properties":{"spending":{"type":"number","minimum":0,"maximum":100}},"required":["spending"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"advance_months","kind":"act","impl":"imperative","description":"Advance the CURRENT LIVE country by 1–24 deterministic months. This mutates live history and metrics immediately; use after a requested policy or event change.","title":"Advance live simulation","inputSchema":{"type":"object","properties":{"months":{"type":"integer","minimum":1,"maximum":24}},"required":["months"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_snapshot","kind":"act","impl":"imperative","description":"Capture the CURRENT LIVE country as an isolated snapshot for later experiments. It does not alter economic metrics, but adds a user-visible saved snapshot.","title":"Create live snapshot","inputSchema":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":80}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"run_counterfactual","kind":"act","impl":"imperative","description":"Run an isolated alternate timeline without modifying the user’s live country. Event interventions automatically branch from the saved event checkpoint unless an explicit valid snapshotId is supplied, preventing already-realized damage from contaminating the experiment. Use normalized eventId values returned by read tools.","title":"Run isolated counterfactual","inputSchema":{"type":"object","properties":{"type":{"type":"string","enum":["remove_event","change_policy","change_event_severity"]},"eventId":{"type":"string","minLength":1,"maxLength":128,"description":"Use the normalized eventId returned by get_event_history/get_causal_history (for example 'event-1', not 'event:event-1')."},"policy":{"type":"string","enum":["interest_rate","income_tax","corporate_tax","government_spending","tariff","emergency_spending"]},"value":{"type":"number"},"severity":{"type":"number","minimum":0.25,"maximum":2},"months":{"type":"integer","minimum":1,"maximum":36},"snapshotId":{"type":"string","minLength":1,"maxLength":128}},"required":["type","months"],"additionalProperties":false,"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"remove_event"},"eventId":{"type":"string","minLength":1,"maxLength":128,"description":"Use the normalized eventId returned by get_event_history/get_causal_history (for example 'event-1', not 'event:event-1')."},"months":{"type":"integer","minimum":1,"maximum":36},"snapshotId":{"type":"string","minLength":1,"maxLength":128}},"required":["type","eventId","months"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"change_event_severity"},"eventId":{"type":"string","minLength":1,"maxLength":128,"description":"Use the normalized eventId returned by get_event_history/get_causal_history (for example 'event-1', not 'event:event-1')."},"severity":{"type":"number","minimum":0.25,"maximum":2},"months":{"type":"integer","minimum":1,"maximum":36},"snapshotId":{"type":"string","minLength":1,"maxLength":128}},"required":["type","eventId","severity","months"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"change_policy"},"policy":{"type":"string","const":"interest_rate"},"value":{"type":"number","minimum":0,"maximum":20},"months":{"type":"integer","minimum":1,"maximum":36},"snapshotId":{"type":"string","minLength":1,"maxLength":128}},"required":["type","policy","value","months"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"change_policy"},"policy":{"type":"string","const":"income_tax"},"value":{"type":"number","minimum":0,"maximum":60},"months":{"type":"integer","minimum":1,"maximum":36},"snapshotId":{"type":"string","minLength":1,"maxLength":128}},"required":["type","policy","value","months"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"change_policy"},"policy":{"type":"string","const":"corporate_tax"},"value":{"type":"number","minimum":0,"maximum":60},"months":{"type":"integer","minimum":1,"maximum":36},"snapshotId":{"type":"string","minLength":1,"maxLength":128}},"required":["type","policy","value","months"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"change_policy"},"policy":{"type":"string","const":"government_spending"},"value":{"type":"number","minimum":0,"maximum":100},"months":{"type":"integer","minimum":1,"maximum":36},"snapshotId":{"type":"string","minLength":1,"maxLength":128}},"required":["type","policy","value","months"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"change_policy"},"policy":{"type":"string","const":"tariff"},"value":{"type":"number","minimum":0,"maximum":50},"months":{"type":"integer","minimum":1,"maximum":36},"snapshotId":{"type":"string","minLength":1,"maxLength":128}},"required":["type","policy","value","months"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"change_policy"},"policy":{"type":"string","const":"emergency_spending"},"value":{"type":"number","minimum":0,"maximum":100},"months":{"type":"integer","minimum":1,"maximum":36},"snapshotId":{"type":"string","minLength":1,"maxLength":128}},"required":["type","policy","value","months"],"additionalProperties":false}]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"compare_scenarios","kind":"answer","impl":"imperative","description":"Return a structured comparison already produced by an isolated experiment. Use the baseline and counterfactual scenario IDs from run_counterfactual; this is read-only and does not mutate the live country.","title":"Compare scenarios","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"baselineScenarioId":{"type":"string","minLength":1,"maxLength":128},"counterfactualScenarioId":{"type":"string","minLength":1,"maxLength":128}},"required":["baselineScenarioId","counterfactualScenarioId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"highlight_region","kind":"act","impl":"imperative","description":"Select and highlight a region in the same visible CountryLab map and open its inspector context. This changes UI focus only, not the live economy.","title":"Highlight region","inputSchema":{"type":"object","properties":{"region":{"type":"string","enum":["capital","farmbelt","industrial","port","energy"]}},"required":["region"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"show_metric","kind":"act","impl":"imperative","description":"Select a metric in the same visible CountryLab dashboard so the user can see its WHY explanation. This changes UI focus only, not the live economy.","title":"Show metric","inputSchema":{"type":"object","properties":{"metric":{"type":"string","enum":["gdp","inflation","unemployment","debtPct","foodIndex","energyIndex","industrialOutput","importsIndex","exportsIndex","confidence"]}},"required":["metric"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"show_causal_chain","kind":"act","impl":"imperative","description":"Select a metric and open its deterministic WHY causal explanation in the visible webpage. This changes UI focus only, not the live economy.","title":"Show causal chain","inputSchema":{"type":"object","properties":{"metric":{"type":"string","enum":["gdp","inflation","unemployment","debtPct","foodIndex","energyIndex","industrialOutput","importsIndex","exportsIndex","confidence"]}},"required":["metric"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"show_scenario_comparison","kind":"act","impl":"imperative","description":"Show an existing isolated comparison in the visible Prove It interface. This changes UI view only and never changes the live country.","title":"Show scenario comparison","inputSchema":{"type":"object","properties":{"comparisonId":{"type":"string","minLength":1,"maxLength":128}},"required":["comparisonId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Health & Education","apiSurface":"spec","toolCount":17}}