{"ok":true,"site":{"host":"wadi.house","url":"https://wadi.house/app/","type":"live","desc":"Wadi: 3D Home Designer","tools":[{"name":"wadi_wdl_reference","kind":"act","impl":"imperative","description":"A self-contained primer for Wadi's .wdl design language and the authoring loop. Call this FIRST before writing WDL.","title":"Wadi .wdl primer","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app/","pages":["/app/"]},{"name":"wadi_get_wdl","kind":"answer","impl":"imperative","description":"Return the current live house as editable .wdl source. Read this before modifying an existing design.","title":"Read the current house as .wdl","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app/","pages":["/app/"]},{"name":"wadi_set_wdl","kind":"act","impl":"imperative","description":"Compile .wdl and load it into the live 3D model. STRONGLY PREFER EDITING A TEMPLATE over building from scratch: wadi_list_homes -> wadi_choose_home (closest match) -> wadi_get_wdl -> edit -> wadi_set_wdl. Authoring a whole house from a blank .wdl is error-prone (wall alignment, roof sizing, cantilever support, staircase); only do it if no template fits. On a compile/schema error the model is unchanged and errors are returned; on success returns the structural check — READ IT AND FIX WARNINGS before telling the user it is ready. Loop: get -> edit -> set -> fix -> repeat.","title":"Apply edited .wdl to the live model","inputSchema":{"type":"object","properties":{"wdl":{"type":"string","description":"The full .wdl source."}},"required":["wdl"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app/","pages":["/app/"]},{"name":"wadi_check_wdl","kind":"act","impl":"imperative","description":"Compile-check .wdl WITHOUT loading it (dry run). Returns errors, or ok.","title":"Check .wdl without loading","inputSchema":{"type":"object","properties":{"wdl":{"type":"string","description":"The full .wdl source."}},"required":["wdl"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app/","pages":["/app/"]},{"name":"wadi_list_modules","kind":"act","impl":"imperative","description":"List the custom component modules registered for the current model (import ref + source size). These reusable component .wdl files are saved inside the .wadi. Inbuilt packs (std-furniture, konkan/base) are always available and are not listed.","title":"List component modules","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app/","pages":["/app/"]},{"name":"wadi_add_module","kind":"act","impl":"imperative","description":"Register (or replace) a reusable component module by its import ref, then recompile the live model. The module is a .wdl holding `component Name { … }` definitions in LOCAL coords (no `house` block). After adding, `import \"ref\" as ns` in the main WDL (wadi_set_wdl) and place it with `use ns.Name at (x,y)`. Saved inside the .wadi so the design is self-contained. Returns the structural check.","title":"Add a reusable component module","inputSchema":{"type":"object","properties":{"ref":{"type":"string","description":"the import ref, e.g. \"dining-set\""},"wdl":{"type":"string","description":"the module's .wdl source (component definitions only)"}},"required":["ref","wdl"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app/","pages":["/app/"]},{"name":"wadi_remove_module","kind":"act","impl":"imperative","description":"Remove a custom component module by its import ref and recompile. Also remove its `import` line from the main WDL if the component is no longer used.","title":"Remove a component module","inputSchema":{"type":"object","properties":{"ref":{"type":"string","description":"the import ref to remove"}},"required":["ref"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app/","pages":["/app/"]},{"name":"wadi_list_homes","kind":"act","impl":"imperative","description":"List the ready-made home designs to start from (id, title, meta).","title":"List ready-made homes","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app/","pages":["/app/"]},{"name":"wadi_choose_home","kind":"act","impl":"imperative","description":"Load one ready-made home by id (from wadi_list_homes) as your STARTING POINT — pick the one closest to what the user wants, then read it with wadi_get_wdl and edit it. This is the recommended way to begin; it is far more reliable than authoring from scratch.","title":"Load a ready-made home to edit","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"template id, e.g. family_home"}},"required":["id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app/","pages":["/app/"]},{"name":"wadi_read_home","kind":"answer","impl":"imperative","description":"Return a ready-made home's .wdl source WITHOUT loading it — study an example (how it does a roof, staircase, grid, etc.) without disturbing the user's current model. Use this to look things up; use wadi_choose_home only when you actually want to start from that home. Ids come from wadi_list_homes.","title":"Read a ready-made home's WDL","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"template id, e.g. family_home"}},"required":["id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app/","pages":["/app/"]},{"name":"wadi_describe_house","kind":"answer","impl":"imperative","description":"The whole house as structured data (floors, rooms with sizes/positions in feet, connections, roof, plot, variables, staircases, and a structural summary). Read this to understand the current design. The `staircases` array reports each stair's flight count, climb direction, the top-landing rectangle (where you step onto the floor) with its facing, and the min box length for 1 and 2 flights — use it to size and orient stairs.","title":"Describe the house","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app/","pages":["/app/"]},{"name":"wadi_check","kind":"act","impl":"imperative","description":"Run the C1-C12 structural linter over the live house and return errors + warnings.","title":"Run the structural check","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app/","pages":["/app/"]},{"name":"wadi_capture_view","kind":"act","impl":"imperative","description":"Render the current 3D model to a PNG image so you can see the result.","title":"Capture the 3D view","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app/","pages":["/app/"]},{"name":"wadi_undo","kind":"act","impl":"imperative","description":"Undo the last change.","title":"Undo","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app/","pages":["/app/"]},{"name":"wadi_redo","kind":"act","impl":"imperative","description":"Redo the last undone change.","title":"Redo","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app/","pages":["/app/"]}],"favicon":"/favicons/wadi.house.png","apiSurface":"spec","category":"Developer Tools","toolCount":15}}