{"ok":true,"site":{"host":"m-ill.github.io","url":"https://m-ill.github.io/StructSketch/","type":"live","desc":"StructSketch is a tablet-first structural sketch and preliminary quick-check workspace with agent-accessible deterministic analysis.","tools":[{"name":"get_model_summary","kind":"answer","impl":"imperative","description":"Summarize the structural model currently open in StructSketch: element counts, supports, units, bounding box, active page and load combination, and whether analysis has completed. Read-only.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/StructSketch/"},{"name":"run_quick_check","kind":"act","impl":"imperative","description":"Run StructSketch's existing deterministic linear-static analysis on the current model and return the bounded result: envelope max displacement and utilization, per-combination equilibrium residuals, and validation messages. Preliminary allowable-stress screening only — no buckling or code checks. Read-only.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/StructSketch/"},{"name":"find_critical_members","kind":"answer","impl":"imperative","description":"Rank the members of the current model by their governing allowable-stress interaction ratio across all load combinations, worst first. Read-only.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":50,"description":"How many members to return (default 5)."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/StructSketch/"},{"name":"show_result_view","kind":"act","impl":"imperative","description":"Change which result overlay is visible on the StructSketch canvas (deformation, moment, shear, axial, torsion, reaction, check, deflection) and report the resulting toggle state.","inputSchema":{"type":"object","properties":{"mode":{"type":"string","enum":["deformation","moment","shear","axial","torsion","reaction","check","deflection"],"description":"Result overlay to show."}},"required":["mode"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/StructSketch/"},{"name":"focus_member","kind":"act","impl":"imperative","description":"Identify a member by id in the visible model: turns on member numbers and check colouring and returns the member's geometry and governing design check. Does not re-centre the 3D camera.","inputSchema":{"type":"object","properties":{"member_id":{"type":"string","description":"Member id, e.g. from find_critical_members or get_model_summary."}},"required":["member_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/StructSketch/"},{"name":"preview_member_change","kind":"act","impl":"imperative","description":"Evaluate a proposed change to one member's section and/or material WITHOUT changing the model. Returns a proposal_id, the before/after section properties, and the analysis version the proposal is bound to. Read-only.","inputSchema":{"type":"object","properties":{"member_id":{"type":"string","description":"Member to change."},"section_id":{"type":"string","description":"New section id from the model catalog (optional)."},"material_id":{"type":"string","description":"New material id from the model catalog (optional)."}},"required":["member_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/StructSketch/"},{"name":"apply_member_change","kind":"act","impl":"imperative","description":"Apply a previously previewed member change. CHANGES THE MODEL and re-runs the analysis. Requires confirm:true and a proposal_id whose analysis version still matches the live model; a stale or unconfirmed proposal is rejected. Atomic — on failure the model is restored.","inputSchema":{"type":"object","properties":{"proposal_id":{"type":"string","description":"The id returned by preview_member_change."},"confirm":{"type":"boolean","description":"Must be true. The user must have approved this change."}},"required":["proposal_id","confirm"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/StructSketch/"},{"name":"revert_member_change","kind":"act","impl":"imperative","description":"Restore the model to its state immediately before the most recent apply_member_change. CHANGES THE MODEL.","inputSchema":{"type":"object","properties":{"proposal_id":{"type":"string","description":"Optional guard: must match the last applied proposal."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/StructSketch/"},{"name":"export_review_report","kind":"act","impl":"imperative","description":"Assemble a structured review report: model summary, deterministic quick check with assumptions and warnings, critical members, the approved-change history, and (by default) the agent activity log. Read-only.","inputSchema":{"type":"object","properties":{"include_activity":{"type":"boolean","description":"Include the agent activity trail (default true)."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/StructSketch/"},{"name":"create_warehouse_model","kind":"act","impl":"imperative","description":"Build a parametric post-frame (\"pole barn\") warehouse frame from a plain-language description and load it into StructSketch, REPLACING the current model, then run the deterministic analysis. The agent only chooses parameters from the user's intent; geometry, sections and loads are generated deterministically and the existing S-Structures core does every calculation. Two bents plus one per bay, gable roof, collar tie and optional knee braces. Requires confirm:true — the user must have approved the description.","inputSchema":{"type":"object","properties":{"span_m":{"type":"number","minimum":3,"maximum":30,"description":"Clear span between the two column lines, metres (default 12.2)."},"eave_height_m":{"type":"number","minimum":2,"maximum":10,"description":"Eave (column top) height, metres (default 4.9)."},"roof_pitch":{"type":"string","description":"Roof pitch as rise:run, e.g. \"4:12\", or a bare ratio (default \"4:12\")."},"post_spacing_m":{"type":"number","minimum":1.5,"maximum":12,"description":"Spacing between frames along the building, metres (default 4.8)."},"bay_count":{"type":"integer","minimum":1,"maximum":10,"description":"Number of bays; the model has bay_count + 1 frames (default 1)."},"material":{"type":"string","enum":["timber","steel"],"description":"Frame material (default timber: cedar posts and rafters)."},"bases":{"type":"string","enum":["pin","fixed"],"description":"Column base fixity (default pin / hinged)."},"snow_kN_m2":{"type":"number","minimum":0,"maximum":10,"description":"Design roof snow load, kN/m2 (default 1.0)."},"dead_kN_m2":{"type":"number","minimum":0,"maximum":5,"description":"Roof dead load, kN/m2 (default 0.3)."},"braces":{"type":"boolean","description":"Include the collar tie and knee braces (default true)."},"confirm":{"type":"boolean","description":"Must be true. The user must have approved the description before this is called."}},"required":["confirm"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/StructSketch/"},{"name":"create_structure_model","kind":"act","impl":"imperative","description":"Create a bounded deterministic structural model from the user's plain-language intent, REPLACING the current model, then run the existing S-Structures analysis. Supported structure_type values: warehouse, portal_frame, canopy, roof_truss, multi_storey_frame. The agent selects template parameters; the page generates geometry, members, supports and loads. Requires confirm:true after echoing the interpreted request to the user.","inputSchema":{"type":"object","properties":{"structure_type":{"type":"string","enum":["warehouse","portal_frame","canopy","roof_truss","multi_storey_frame"],"description":"Template selected from the user's intent."},"span_m":{"type":"number","minimum":2,"maximum":30,"description":"Main clear span or canopy projection, metres."},"height_m":{"type":"number","minimum":2,"maximum":10,"description":"Frame/eave height, or per-storey height for multi_storey_frame."},"depth_m":{"type":"number","minimum":1.5,"maximum":20,"description":"Out-of-plane spacing between the two stabilising frames, metres."},"bay_count":{"type":"integer","minimum":1,"maximum":10,"description":"Warehouse longitudinal bays, truss panels, or horizontal frame bays."},"storey_count":{"type":"integer","minimum":1,"maximum":8,"description":"Storeys for multi_storey_frame."},"roof_pitch":{"type":"string","description":"Pitch as rise:run, e.g. 3:12; used by warehouse, canopy, and roof_truss."},"material":{"type":"string","enum":["timber","steel"],"description":"Catalog material and matching default sections."},"bases":{"type":"string","enum":["pin","fixed"],"description":"Base condition. Canopies require fixed bases."},"load_kN_m":{"type":"number","minimum":0,"maximum":50,"description":"Downward line load on generated beams/roof members, kN/m."},"post_spacing_m":{"type":"number","minimum":1.5,"maximum":12,"description":"Warehouse frame spacing, metres."},"snow_kN_m2":{"type":"number","minimum":0,"maximum":10,"description":"Warehouse roof snow load, kN/m2."},"dead_kN_m2":{"type":"number","minimum":0,"maximum":5,"description":"Warehouse roof dead load, kN/m2."},"braces":{"type":"boolean","description":"Include warehouse collar/knee bracing."},"confirm":{"type":"boolean","description":"Must be true after the user approves the interpreted structure and parameters."}},"required":["structure_type","confirm"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/StructSketch/"}],"apiSurface":"spec","category":"Developer Tools","toolCount":11}}