from __future__ import annotations from textwrap import dedent def build_probe_model_description() -> str: return dedent( """ Execute a short Python snippet against the current bound `model.py` for inspection-only geometry diagnosis. This tool is intended for inspection-only use on the current model file. Use it when placements, clearances, containment, overlap risk, or pose behavior are uncertain. Execution contract: - Write ordinary Python code. - Use this tool only for non-mutating inspection and measurement. - `emit(value)` must be called exactly once. - `value` must be JSON-serializable. - `print(...)` is allowed for debugging only. It is captured separately and returned only when requested. - Do not write files, modify `object_model`, launch subprocesses, access the network, or perform destructive actions. - The snippet runs in an isolated subprocess with a timeout. Guidance: - Read `docs/sdk/references/probe-tooling.md` for the exact probe helper catalog and signatures. - `probe_model` is especially useful when an overlap, floating/support, containment, or exact-pair issue is ambiguous, or when a first geometry repair did not clarify the problem. - IMPORTANT: Do not import probe helpers from `sdk` or other modules inside the snippet. Helpers such as `part(...)`, `joint(...)`, `visual(...)`, `pose(...)`, `emit(...)`, `pair_report(...)`, and related review helpers are already injected into the snippet namespace. - The helper surface includes lookup, measurement, relationship, and review helpers such as `part(...)`, `visual(...)`, `pose(...)`, `summary(...)`, `pair_report(...)`, `find_clearance_risks(...)`, and `geometry_connectivity_report(...)`. - Except for the explicit `aabb(...)` helper, probe measurements should prefer exact geometry over transformed AABB approximations. - These helpers are tool-local review conveniences built on the current `object_model` and `TestContext`. - They are not part of the public SDK API and may use internal exact-geometry helpers. - Use `geometry_connectivity_report(...)` when a part visually appears to contain floating mesh islands and you need to compare raw mesh components against what the current connectivity QC can see. """ ).strip() PROBE_MODEL_DESCRIPTION = build_probe_model_description()