{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2025-06-18", "capabilities": {}, "clientInfo": {"name": "example", "version": "1"}}}
{"jsonrpc": "2.0", "method": "notifications/initialized"}
{"jsonrpc": "2.0", "id": 2, "method": "tools/list"}
{"jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": {"name": "sketch_extrude", "arguments": {"name": "bracket", "plane": "YZ", "profile": [{"op": "move_to", "point": [0, 0]}, {"op": "line_to", "point": [30, 0]}, {"op": "line_to", "point": [30, 46]}, {"op": "line_to", "point": [24, 46]}, {"op": "line_to", "point": [24, 6]}, {"op": "line_to", "point": [0, 6]}, {"op": "close"}], "height": 80}}}
{"jsonrpc": "2.0", "id": 4, "method": "tools/call", "params": {"name": "make_cylinder", "arguments": {"name": "drill", "radius": 2.5, "height": 6, "origin": [10, 12, 0]}}}
{"jsonrpc": "2.0", "id": 5, "method": "tools/call", "params": {"name": "linear_pattern", "arguments": {"name": "drill", "step": [20, 0, 0], "count": 4, "cut_from": "bracket"}}}
{"jsonrpc": "2.0", "id": 6, "method": "tools/call", "params": {"name": "describe", "arguments": {"name": "bracket"}}}
{"jsonrpc": "2.0", "id": 7, "method": "tools/call", "params": {"name": "run_model", "arguments": {"source": "# SPDX-License-Identifier: Apache-2.0\n\"\"\"A mounting bracket with four holes: the worked example of docs/examples/bracket.md.\n\nAn L in section, drawn on the YZ plane and extruded along X, with a row of\nholes through its base. Every name the kernel and the sketch API have is\nalready in scope. Change a number and run it again.\n\nTags: sketch\n\"\"\"\n\nLENGTH = 80.0\nDEPTH = 30.0\nHEIGHT = 46.0\nTHICKNESS = 6.0\nHOLES = 4\nHOLE_DIAMETER = 5.0\nINSET = 10.0\n\nsection = (\n    Sketch(Plane.YZ)\n    .move_to((0, 0))\n    .line_to((DEPTH, 0))\n    .line_to((DEPTH, HEIGHT))\n    .line_to((DEPTH - THICKNESS, HEIGHT))\n    .line_to((DEPTH - THICKNESS, THICKNESS))\n    .line_to((0, THICKNESS))\n    .close()\n)\nbody = section.extrude(LENGTH)\n\npitch = (LENGTH - 2 * INSET) / (HOLES - 1)\ndrill = make_cylinder(HOLE_DIAMETER / 2, THICKNESS, origin=(INSET, (DEPTH - THICKNESS) / 2, 0))\ndrills = linear_pattern(drill, (pitch, 0, 0), HOLES)\n\npart(\"bracket\", cut_all(body, drills), color=\"steel\")\n"}}}
{"jsonrpc": "2.0", "id": 8, "method": "tools/call", "params": {"name": "model_values", "arguments": {}}}
{"jsonrpc": "2.0", "id": 9, "method": "tools/call", "params": {"name": "model_set", "arguments": {"values": {"LENGTH": 100}}}}
{"jsonrpc": "2.0", "id": 10, "method": "tools/call", "params": {"name": "describe", "arguments": {"name": "bracket"}}}
{"jsonrpc": "2.0", "id": 11, "method": "tools/call", "params": {"name": "project_save", "arguments": {"path": "bracket.dxcprt"}}}
