{"ok":true,"site":{"host":"mihirduvedi.github.io","url":"https://mihirduvedi.github.io/mechanism-canvas/","type":"live","desc":"Mechanism Canvas is an agent-ready organic chemistry workspace for practicing curved-arrow reasoning.","tools":[{"name":"get_mechanism_state","kind":"answer","impl":"imperative","description":"Read the current Mechanism Canvas problem, committed state, draft arrows, validation status, revision, and stable entity IDs. This does not change the page.","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/mechanism-canvas/","pages":["/mechanism-canvas/","/mechanism-canvas/?demo=1"]},{"name":"get_collaboration_contract","kind":"answer","impl":"imperative","description":"Read the learner-owned collaboration mode, agent hint ceiling, commit boundary, revision, and currently enabled Site Tool names. This contract can be changed only in the visible page, never through a Site Tool.","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/mechanism-canvas/","pages":["/mechanism-canvas/","/mechanism-canvas/?demo=1"]},{"name":"get_delegation_session","kind":"answer","impl":"imperative","description":"Read the learner-granted, tab-local delegation purpose, exact problem and state scope, frozen tool grant, current effective Site Tool surface, status, and finite action budget. This does not change the page, and no Site Tool can create or expand the session.","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/mechanism-canvas/","pages":["/mechanism-canvas/","/mechanism-canvas/?demo=1"]},{"name":"get_agent_action_receipts","kind":"answer","impl":"imperative","description":"Read the privacy-minimized Agent Proof Ledger for this browser tab. Returns allowlisted Site Tool names, semantic IDs, contract and mechanism state stamps, outcomes, timings, and actual page-state effects. Raw inputs, outputs, prompts, and rationales are never retained. Reading the ledger does not change chemistry; this call's own receipt is appended only after the response is assembled.","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"afterSequence":{"type":"integer","minimum":0},"limit":{"type":"integer","minimum":1,"maximum":30}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/mechanism-canvas/","pages":["/mechanism-canvas/","/mechanism-canvas/?demo=1"]},{"name":"get_learning_profile","kind":"answer","impl":"imperative","description":"Read the privacy-local Practice Compass profile derived from deterministic checks, hints, and completed steps across all exercises. Returns evidence statuses and bounded recommendations without exposing authored answers or changing the page.","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/mechanism-canvas/","pages":["/mechanism-canvas/","/mechanism-canvas/?demo=1"]},{"name":"propose_practice_plan","kind":"act","impl":"imperative","description":"Stage an ordered plan of 1 to 3 existing exercises against the current Practice Compass revision. This does not switch exercises, change chemistry, or count progress; the learner must explicitly start or dismiss the plan in the page.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"problemIds":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":3},"rationale":{"type":"string","minLength":1,"maxLength":400},"expectedProfileRevision":{"type":"string"}},"required":["problemIds","rationale","expectedProfileRevision"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/mechanism-canvas/","pages":["/mechanism-canvas/","/mechanism-canvas/?demo=1"]},{"name":"inspect_mechanism_entities","kind":"answer","impl":"imperative","description":"Read chemistry details for specific stable atom, bond, or lone-pair IDs in the current structure. This does not focus or change the page.","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"entityIds":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":20}},"required":["entityIds"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/mechanism-canvas/","pages":["/mechanism-canvas/","/mechanism-canvas/?demo=1"]},{"name":"get_activity_trail","kind":"answer","impl":"imperative","description":"Read the shared human, agent, and validator activity trail for the active exercise. Use afterSequence for incremental reads. This does not change the page.","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"afterSequence":{"type":"integer","minimum":0,"default":0},"limit":{"type":"integer","minimum":1,"maximum":50,"default":20}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/mechanism-canvas/","pages":["/mechanism-canvas/","/mechanism-canvas/?demo=1"]},{"name":"view_mechanism_history_state","kind":"answer","impl":"imperative","description":"Show one already reached reactant, intermediate, or product state in the visible canvas without changing committed chemistry. Pass the currentStateId to return to the current mechanism state. Unreached future states are rejected.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"stateId":{"type":"string"}},"required":["stateId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/mechanism-canvas/","pages":["/mechanism-canvas/","/mechanism-canvas/?demo=1"]},{"name":"compare_reached_step","kind":"answer","impl":"imperative","description":"Compare the before and after graphs for one active committed transition. Returns exact bond, formal-charge, lone-pair, and implicit-hydrogen changes without changing page state or chemistry. Only a currently reached beforeStateId/afterStateId pair listed by get_mechanism_state is accepted; undone and future transitions are rejected.","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"beforeStateId":{"type":"string"},"afterStateId":{"type":"string"}},"required":["beforeStateId","afterStateId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/mechanism-canvas/","pages":["/mechanism-canvas/","/mechanism-canvas/?demo=1"]},{"name":"replay_reached_step","kind":"act","impl":"imperative","description":"Open the reached-step evidence sheet and replay the exact performed curved-arrow bundle for one active committed transition. This changes only transient presentation state: chemistry, revisions, validation authority, persistence, and activity remain unchanged. Undone and future transitions are rejected.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"beforeStateId":{"type":"string"},"afterStateId":{"type":"string"}},"required":["beforeStateId","afterStateId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/mechanism-canvas/","pages":["/mechanism-canvas/","/mechanism-canvas/?demo=1"]},{"name":"focus_mechanism_entities","kind":"act","impl":"imperative","description":"Visually focus stable entity IDs in the open Mechanism Canvas and append an agent action to the shared activity trail. This changes page focus only, not chemistry.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"entityIds":{"type":"array","items":{"type":"string"},"maxItems":20}},"required":["entityIds"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/mechanism-canvas/","pages":["/mechanism-canvas/","/mechanism-canvas/?demo=1"]},{"name":"propose_draft_arrows","kind":"act","impl":"imperative","description":"Stage 1–4 structured electron-flow arrows and a brief rationale for the learner to review on the shared page. This does not change the draft, chemistry, validation, or revision. Only the learner can accept or decline the visible proposal; no site tool can approve it.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"arrows":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"object","properties":{"sourceType":{"type":"string","enum":["lone_pair","bond"]},"sourceEntityId":{"type":"string"},"targetAtomId":{"type":"string"}},"required":["sourceType","sourceEntityId","targetAtomId"],"additionalProperties":false}},"rationale":{"type":"string","minLength":1,"maxLength":400},"expectedRevision":{"type":"integer","minimum":0}},"required":["arrows","rationale","expectedRevision"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/mechanism-canvas/","pages":["/mechanism-canvas/","/mechanism-canvas/?demo=1"]},{"name":"check_draft_step","kind":"answer","impl":"imperative","description":"Run the deterministic chemistry validator on the complete visible draft. This records a check and returns a revision-bound validation ID, but does not commit the mechanism.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"expectedRevision":{"type":"integer","minimum":0}},"required":["expectedRevision"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/mechanism-canvas/","pages":["/mechanism-canvas/","/mechanism-canvas/?demo=1"]},{"name":"request_scaffold","kind":"act","impl":"imperative","description":"Open one authored scaffold level from 1 to 2, focus its related entities, and record an agent hint request. The learner's current collaboration contract is authoritative.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"level":{"type":"integer","minimum":1,"maximum":2}},"required":["level"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/mechanism-canvas/","pages":["/mechanism-canvas/","/mechanism-canvas/?demo=1"]},{"name":"switch_problem","kind":"act","impl":"imperative","description":"Switch the visible Mechanism Canvas to another problem ID listed by get_mechanism_state. Each problem keeps its own local progress, any validation approval is dropped, and the shared activity trail records the switch.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"problemId":{"type":"string"},"expectedRevision":{"type":"integer","minimum":0}},"required":["problemId","expectedRevision"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/mechanism-canvas/","pages":["/mechanism-canvas/","/mechanism-canvas/?demo=1"]}],"category":"Health & Education","favicon":"/favicons/mihirduvedi.github.io.svg","apiSurface":"spec","toolCount":16}}