From c441609254c2963cc3285d02e4078aacd616f6b2 Mon Sep 17 00:00:00 2001 From: Umut CAN Date: Wed, 16 Sep 2026 12:29:04 +0300 Subject: [PATCH] feat(pid): pid_tag_parse, catalogue and ISA-5.1 resources, prompt rewritten onto the tools Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01FKFStjEFzpGyLq5bMpWxTd --- README.md | 2 +- discovery/aliases.py | 10 +++ docs/assets/pid-catalog.png | Bin 0 -> 165718 bytes docs/tool-inventory.json | 43 ++++++++++- scripts/render_pid_catalog.py | 93 +++++++++++++++++++++++ server.py | 115 +++++++++++++++++++++-------- tests/test_pid_resources_prompt.py | 73 ++++++++++++++++++ tests/test_tool_registry.py | 10 ++- 8 files changed, 309 insertions(+), 37 deletions(-) create mode 100644 docs/assets/pid-catalog.png create mode 100644 scripts/render_pid_catalog.py create mode 100644 tests/test_pid_resources_prompt.py diff --git a/README.md b/README.md index bfd25ff..4721fa6 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Live through COM on Windows, or headless through ezdxf anywhere — one typed co -> **v1.5 release snapshot:** 165 tools · 6 resources · 5 prompt templates · 1369 collected tests. +> **v1.5 release snapshot:** 166 tools · 8 resources · 5 prompt templates · 1369 collected tests. > 154 is the **registered** count; a default install advertises 149 over `tools/list`, > because `ENABLE_3D` is unset. `system_about` is the runtime authority. diff --git a/discovery/aliases.py b/discovery/aliases.py index fec4ebe..e8b9af9 100644 --- a/discovery/aliases.py +++ b/discovery/aliases.py @@ -1417,6 +1417,16 @@ TOOL_ALIASES: dict[str, ToolAliases] = { "batch p&id", ), ), + "pid_tag_parse": ToolAliases( + acad=(), + synonyms=( + "what does fic mean", + "isa 5.1 tag", + "instrument tag letters", + "decode the tag", + "loop number", + ), + ), } diff --git a/docs/assets/pid-catalog.png b/docs/assets/pid-catalog.png new file mode 100644 index 0000000000000000000000000000000000000000..761984ebccba78db2b1dfea3bff4a2bb309508c9 GIT binary patch literal 165718 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%0At=IQUg|tNuFb4`^@38SA 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 u5-L^E5 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

    ~m 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 iQf&ACAMI|O7CT+=9PPf bytes: + """The document as a PNG, at a size of our choosing.""" + import io + + from ezdxf.addons.drawing import Frontend, RenderContext + from ezdxf.addons.drawing.matplotlib import MatplotlibBackend + + from backends.ezdxf_backend import _new_agg_figure + + doc = backend._require_doc() + fig = _new_agg_figure(figsize=figsize, dpi=dpi) + ax = fig.add_axes([0, 0, 1, 1]) + out = MatplotlibBackend(ax, adjust_figure=False) # keep FIGSIZE; the default shrinks it to 5 in + Frontend(RenderContext(doc), out).draw_layout(doc.modelspace(), finalize=True) + buf = io.BytesIO() + fig.savefig(buf, format="png", bbox_inches="tight", dpi=dpi) + return buf.getvalue() + + +async def _render(output: Path) -> dict: + from backends.ezdxf_backend import EzdxfBackend + from engineering.layers import apply_layer_set + from engineering.pid.insert import insert_symbol + from engineering.pid.symbols import all_specs + + backend = EzdxfBackend() + await backend.connect() + try: + await backend.drawing_new() + await apply_layer_set(backend, "pid") + specs = all_specs() + for index, spec in enumerate(specs): + col, row = index % COLUMNS, index // COLUMNS + x, y = col * CELL, -row * CELL + layer = "PROCESS-PIPING-MAIN" if spec.family == "marker" else None + await insert_symbol(backend, spec, x, y, 0.0, 1.0, {}, layer) + await backend.entity_create_text( + spec.name.replace("PID_", ""), + x - CELL / 2 + 2, + y - CELL / 2 + 2, + 1.6, + layer="TEXT-NOTES", + ) + png = await asyncio.to_thread(_render_png, backend, FIGSIZE, DPI) + output.parent.mkdir(parents=True, exist_ok=True) + output.write_bytes(png) + return {"output": str(output), "symbols": len(specs), "bytes": len(png)} + finally: + await backend.disconnect() + + +def render(output: Path) -> dict: + return asyncio.run(_render(output)) + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--output", type=Path, default=DEFAULT_OUTPUT) + print(render(parser.parse_args().output)) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/server.py b/server.py index 6916f80..eaf966e 100644 --- a/server.py +++ b/server.py @@ -6369,7 +6369,7 @@ async def solid_boolean( # --------------------------------------------------------------------------- -# ── SECTION 17: P&ID (8 tools) ────────────────────────────────────────────── +# ── SECTION 17: P&ID (9 tools) ────────────────────────────────────────────── # --------------------------------------------------------------------------- @@ -6713,6 +6713,34 @@ async def pid_from_spec( return await run_spec(_backend(ctx), spec, dry_run) +@cad_tool( + summary="Parse an ISA-5.1 instrument tag or an equipment tag; explains every letter.", + cost="read", +) +@mcp.tool( + annotations={"title": "P&ID: Parse Tag", "readOnlyHint": True}, + tags={"pid", "query"}, +) +async def pid_tag_parse( + tag: Annotated[str, "e.g. FIC-101, 10-PDT-203A, P-101A"], + kind: Annotated[str, "auto | instrument | equipment"] = "auto", + equipment_prefixes: Annotated[ + dict | None, + "Replace the default equipment prefix map, e.g. {'Q': 'quench tower'}", + ] = None, + ctx: Context = None, +) -> dict: + """ISA-5.1-2009 Table 4.1 as a grammar: first letter, modifier, readout and + output functions, trailing high/low, loop number and suffix — with the + standard's description ("Flow Indicating Controller") or the first + offending letter. Equipment prefixes are not standardised, so the default + map (P pump, V vessel, E exchanger, ...) can be replaced per call. + """ + from engineering.pid.tags import parse_tag + + return parse_tag(tag, kind, equipment_prefixes) + + # --------------------------------------------------------------------------- # ── RESOURCES ─────────────────────────────────────────────────────────────── # --------------------------------------------------------------------------- @@ -6838,6 +6866,34 @@ async def resource_entities_by_layer(layer_name: str, ctx: Context = None) -> st return json.dumps({"error": str(exc)}) +@mcp.resource( + "autocad://pid/symbols", + name="P&ID Symbol Catalogue", + description="Every P&ID symbol pid_symbol_insert can place: families, variants, ports, parameters", + mime_type="application/json", + annotations={"readOnlyHint": True}, + tags={"pid"}, +) +async def resource_pid_symbols() -> str: + from engineering.pid.symbols import CATALOG_VERSION, list_symbols + + return json.dumps({"catalog_version": CATALOG_VERSION, "symbols": list_symbols()}, indent=2) + + +@mcp.resource( + "autocad://standards/isa51", + name="ISA-5.1 Identification Letters", + description="ISA-5.1-2009 Table 4.1 letter tables, the tag grammar and its disambiguation rules", + mime_type="application/json", + annotations={"readOnlyHint": True}, + tags={"pid", "standards"}, +) +async def resource_isa51() -> str: + from engineering.pid.tags import describe_tables + + return json.dumps(describe_tables(), indent=2) + + # --------------------------------------------------------------------------- # ── PROMPTS ────────────────────────────────────────────────────────────────── # --------------------------------------------------------------------------- @@ -6887,38 +6943,39 @@ def prompt_pid_diagram( revision: str = "Rev A", ) -> str: """Generate a prompt for creating a P&ID (Piping and Instrumentation Diagram).""" - return f"""You are creating a P&ID for '{project_name}' ({revision}). + return f"""You are creating a P&ID for '{project_name}' ({revision}) with the server's P&ID tools. +Never hand-draw a symbol from lines and circles: every valve, pump, vessel and instrument is a +catalogue block with ports, and every line is drawn port-to-port. -LAYER SETUP: - - PROCESS_LINES color=7 lineweight=50 (main process piping) - - UTILITY_LINES color=3 lineweight=25 (utility services) - - INSTRUMENTS color=2 lineweight=25 (instrument circles) - - EQUIPMENT color=5 lineweight=50 (vessels, pumps, HX) - - VALVES color=4 lineweight=25 (valve symbols) - - TAGS color=7 lineweight=13 (tag numbers) - - ANNOTATIONS color=8 lineweight=13 (notes) - - BORDER color=7 lineweight=100 (drawing border) +REFERENCE SIZES (symbol-local mm at A3/A1 paper scale): instrument bubble Ø10, valve body 8×4, +pump Ø8, grid 5. Keep equipment ≥ 40 mm apart so line numbers and tags have room. -STANDARD SYMBOLS (draw as entities): - - Vessels: rectangle with domed ends - - Pumps: circle with triangle (impeller) - - Heat Exchangers: two overlapping rectangles - - Valves: two triangles point-to-point - - Control valves: valve symbol + circle above - - Instruments: circle with tag number +WORKFLOW +1. drawing_plan(intent="{project_name} P&ID", sheet_size="A3", layer_set_id="pid") +2. drawing_apply_iso_layers("pid") +3. pid_symbol_list() — read the catalogue once; pid_tag_parse(tag) when unsure about ISA-5.1 letters +4. pid_symbol_insert(symbol, x, y, tag=...) for each item: + equipment tag P-101 / V-201 / E-301 (desc="Feed pump") + valves symbol=gate|globe|ball|... with actuator=diaphragm|piston|motor|solenoid|hand and fail=FO|FC|FL + instruments symbol="instrument", type=discrete|dcs|computer|plc, location=field|primary|auxiliary|..., tag="FIC-101" + vessels params={{"width", "height", "nozzles": [{{"name": "N1", "side": "top", "fraction": 0.5}}]}} + Each call returns the block's ports in WCS — use them, never guess coordinates. +5. pid_line_draw(from_={{"handle", "port"}}, to={{"handle", "port"}}, line_class=process_major|process_minor| + utility|pneumatic|electric|hydraulic|capillary|data, size="100", service="P", spec="CS1") + A bubble's radial port needs no name. Read `crossings` and `port_reuse` in the response. +6. pid_graph() — `dangling` must be empty and `stats.confidence_min` 1.0 for a drawing you made. +7. drawing_critique(focus=None) — must return [] (pid_dangling_line, pid_duplicate_tag, + pid_incompatible_connection, pid_untagged_instrument, pid_illegal_tag, pid_unconnected_equipment + are part of it). +8. pid_instrument_index() / pid_line_list() / pid_equipment_list() for the deliverables. +9. drawing_finalize(save_path=...) — the score is the objective quality metric. -INSTRUMENT TAG FORMAT: [Function][Loop Number][Suffix] - Examples: FT-101 (flow transmitter), FIC-101 (flow indicator controller) +ONE-CALL ALTERNATIVE: pid_from_spec(spec) draws the whole sheet in one transaction from +{{sheet, equipment[], valves[], instruments[], lines[], connectors[]}} and returns the graph and the +critique; use dry_run=true first to see the planned routes and crossings. -WORKFLOW: -1. layer_create() for all layers -2. entity_create_rectangle() for drawing border -3. Place major equipment first (vessels, columns) -4. Draw process lines (polylines) connecting equipment -5. Place valve symbols at control points -6. Add instrument bubbles (circles + text) -7. Add line numbers and stream labels -8. Add title block text +OFF-PAGE: pid_symbol_insert("offpage", direction="out"|"in", tag="TO P&ID-002", link="L-17"); two connectors +sharing a link are paired by pid_graph. """ diff --git a/tests/test_pid_resources_prompt.py b/tests/test_pid_resources_prompt.py new file mode 100644 index 0000000..9786ca0 --- /dev/null +++ b/tests/test_pid_resources_prompt.py @@ -0,0 +1,73 @@ +"""pid_tag_parse tool, the two P&ID resources, the rewritten prompt, the contact sheet.""" + +from __future__ import annotations + +import json + +import pytest +import pytest_asyncio +from fastmcp import Client + +import server + + +@pytest_asyncio.fixture +async def client(monkeypatch): + monkeypatch.setenv("AUTOCAD_MCP_BACKEND", "ezdxf") + async with Client(server.mcp) as connected: + yield connected + + +@pytest.mark.asyncio +async def test_tag_parse_tool(client): + out = (await client.call_tool("pid_tag_parse", {"tag": "10-FIC-101A"})).structured_content + assert out["valid"] is True and out["description"] == "Flow Indicating Controller" + out = ( + await client.call_tool( + "pid_tag_parse", + {"tag": "Q-1", "kind": "equipment", "equipment_prefixes": {"Q": "quench"}}, + ) + ).structured_content + assert out["equipment_kind"] == "quench" + + +@pytest.mark.asyncio +async def test_resources_serve_the_catalogue_and_the_letter_tables(client): + uris = {str(r.uri) for r in await client.list_resources()} + assert {"autocad://pid/symbols", "autocad://standards/isa51"} <= uris + symbols = json.loads((await client.read_resource("autocad://pid/symbols"))[0].text) + assert symbols["catalog_version"] == "1" and any( + s["symbol"] == "gate" for s in symbols["symbols"] + ) + isa = json.loads((await client.read_resource("autocad://standards/isa51"))[0].text) + assert isa["first_letters"]["F"] == "Flow" and "rules" in isa + + +@pytest.mark.asyncio +async def test_prompt_walks_the_tool_workflow(client): + prompt = await client.get_prompt( + "prompt_pid_diagram", {"project_name": "Unit 7", "revision": "B"} + ) + text = "\n".join(m.content.text for m in prompt.messages) + for needle in ( + "drawing_plan", + 'layer_set_id="pid"', + "pid_symbol_insert", + "pid_line_draw", + "pid_graph", + "drawing_critique", + "drawing_finalize", + "pid_from_spec", + "Unit 7", + "Ø10", + ): + assert needle in text, needle + assert "circle with triangle" not in text, "no hand-drawn symbols" + + +def test_catalog_contact_sheet_renders_every_symbol(tmp_path): + pytest.importorskip("matplotlib") + from scripts.render_pid_catalog import render + + result = render(tmp_path / "sheet.png") + assert result["symbols"] >= 100 and result["bytes"] > 10_000 diff --git a/tests/test_tool_registry.py b/tests/test_tool_registry.py index 2218e9b..13ab419 100644 --- a/tests/test_tool_registry.py +++ b/tests/test_tool_registry.py @@ -512,8 +512,10 @@ async def test_tool_group_sizes_are_unchanged(): `pid_symbol_insert`, then 2 -> 3 when `pid_line_draw` joined, 3 -> 4 when the reader `pid_graph` joined and 4 -> 7 when the three graph deliverables (`pid_instrument_index` / `pid_line_list` / - `pid_equipment_list`) joined and 7 -> 8 when `pid_from_spec` (a whole - sheet from one declarative spec, in one transaction) joined; the `pid` + `pid_equipment_list`) joined, 7 -> 8 when `pid_from_spec` (a whole + sheet from one declarative spec, in one transaction) joined and 8 -> 9 + when `pid_tag_parse` (the ISA-5.1 tag grammar as a read-only tool) + joined; the `pid` tag is ranked first in `_GROUP_TAG_PRIORITY` so those tools file under `pid` rather than under their secondary `query` / `create` tags. Every other number here has been unchanged since the snapshot was taken. @@ -532,7 +534,7 @@ async def test_tool_group_sizes_are_unchanged(): "entity_query": 9, "layers": 14, "layouts": 12, - "pid": 8, + "pid": 9, "premium": 12, "solids": 5, "system": 7, @@ -541,4 +543,4 @@ async def test_tool_group_sizes_are_unchanged(): "validation": 1, "view": 4, } - assert sum(sizes.values()) == 165 + assert sum(sizes.values()) == 166