Files
Dayuan Jiang f087b54ee4 feat: add get_shape_library tool for AI icon discovery (#335)
* feat: add get_shape_library tool for AI icon discovery

- Add server-side tool that returns shape library documentation
- AI can fetch icon/shape names on-demand before generating diagrams
- Includes path traversal protection and input sanitization
- Library index embedded in tool description for discoverability
- Supports 33 libraries: AWS, Azure, GCP, Kubernetes, Cisco, etc.

* fix: improve get_shape_library error handling and imports

- Move fs/path imports to top of file (avoid dynamic imports per call)
- Distinguish file-not-found vs other errors in catch block
- Include invalid input in validation error message
- Log unexpected errors for debugging

* docs: add get_shape_library to system prompt tool list

- Add Tool4 (get_shape_library) to available tools section
- Add usage guidance in 'Choose the right tool' section
- Update AWS icons note to reference get_shape_library for icon discovery

* fix: display get_shape_library tool output in chat UI

* fix: correct state check for get_shape_library output display

* fix: make get_shape_library output respect fold state

* style: auto-format with Biome

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-20 23:19:49 +09:00

1.5 KiB

cabinets

Type: mxgraph shapes Prefix: mxgraph.cabinets

Usage

<mxCell value="label" style="shape=mxgraph.cabinets.{shape};" vertex="1" parent="1">
  <mxGeometry x="0" y="0" width="60" height="60" as="geometry" />
</mxCell>

Shapes (54)

  • auxiliary_contact_contactor_1_32a
  • auxiliary_contact_contactor_32_125a
  • cb_1p
  • cb_1p_x10
  • cb_2p
  • cb_2p_x10
  • cb_3p
  • cb_3p_x5
  • cb_4p
  • cb_4p_x5
  • cb_auxiliary_contact
  • contactor_125_400a
  • contactor_1_32a
  • contactor_32_125a
  • din_rail
  • distribution_block_4p_125a_11_connections
  • distribution_block_4p_125a_11_connections_2
  • mccb_25_63a_3p
  • mccb_25_63a_4p
  • mccb_63_250a_3p
  • mccb_63_250a_4p
  • motor_cb_125_400a
  • motor_cb_1_32a
  • motor_cb_32_125a
  • motor_protection_cb
  • motor_starter_125_400a
  • motor_starter_1_32a
  • motor_starter_32_125a
  • motorized_switch_3p
  • motorized_switch_4p
  • mxgraph.cabinets
  • overcurrent_relay_125_400a
  • overcurrent_relay_1_32a
  • overcurrent_relay_32_125a
  • plugin_relay_1
  • plugin_relay_2
  • residual_current_device_2p
  • residual_current_device_4p
  • surge_protection_1p
  • surge_protection_2p
  • surge_protection_3p
  • surge_protection_4p
  • terminal_40mm2
  • terminal_40mm2_x10
  • terminal_4_6mm2
  • terminal_4_6mm2_x10
  • terminal_4mm2
  • terminal_4mm2_x10
  • terminal_50mm2
  • terminal_50mm2_x10
  • terminal_6_25mm2
  • terminal_6_25mm2_x10
  • terminal_75mm2
  • terminal_75mm2_x10