app
Altium - the Altium Bridge
Public Made by Adomby adom
Adom Bridge for Altium Designer: a resident DelphiScript agent gives the AI eval, the 1,100-command process launcher, all 8 EDA surfaces with screenshots, compile/ERC, DRC, OutJob outputs, native SchLib/PcbLib authoring with STEP 3D bodies, and dialog handling by PID.
← Commit history
Publish 0.2.23
4 files changed
+19−3
README.md+5@@ -136,6 +136,11 @@ the License Management page), `ensure_licensed` (launch if needed, claim a seat, human step; `launchWaitSec`, `allowSignInReset`, `allowTrial`) and `setup_trial` (returns the one next onboarding action) are covered in the `altium-licensing` skill. +`selftest_script_error` (from 0.2.23) proves the script-error safety net on this machine: it makes the+agent raise a real DelphiScript runtime error and answers `netWorks: true` when the bridge photographed+Altium's error box, stopped the halted script itself and left no dialog behind. Any verb that hits a script+error returns `errorCode: agent_script_error` with `errorShot` (a PNG of Altium's message) instead of timing out.+ **Surfaces** — `show_project`, `show_schematic`, `show_2d_board`, `show_3d_board`, `show_library`, `show_symbol`, `show_footprint`, `show_3d_chip`, `open_document`, `close_document` (`path`; closes one open document through its handle, never saves), `state`, `demo`, `animate_view` (camera/zoom
SKILL.md+3−1@@ -89,7 +89,7 @@ Altium is a licensed host app. The bridge never installs it silently; it detects | `altium_demo` | six-beat tour: symbol → footprint → 3D part → schematic → 2D → 3D board | `stage` | | `altium_describe` | the full machine-readable catalog | — | -Lifecycle: `altium_launch`, `altium_close`, `altium_agent_start` / `_stop` / `_status` / `_recover`, `altium_diagnostics`, `altium_progress`, `altium_uninstall`. `altium_agent_status` is read-only: `alive`, `responsive`, `residentAnywhere`, `liveWorkspaces[]` (a loop resident in another workspace is a freeze-on-close hazard; `altium_close` stops every workspace's loop).+Lifecycle: `altium_launch`, `altium_close`, `altium_agent_start` / `_stop` / `_status` / `_recover`, `altium_selftest_script_error` (from 0.2.23: proves the script-error net, `netWorks: true`), `altium_diagnostics`, `altium_progress`, `altium_uninstall`. `altium_agent_status` is read-only: `alive`, `responsive`, `residentAnywhere`, `liveWorkspaces[]` (a loop resident in another workspace is a freeze-on-close hazard; `altium_close` stops every workspace's loop). ## Quick examples @@ -135,3 +135,5 @@ Read-only, need a .PcbDoc (or .SchDoc for `schematic_data`) as the CURRENT docum | `altium_read_rules` | Every design rule: name, kind, enabled, priority, scopes. | | `altium_set_layer_visibility` | Show/hide a layer {layerId, displayed}. | | `altium_footprint_primitives` | Geometry dump of a placed component: tracks, arcs, pads, texts. |++**`errorCode: agent_script_error` (from 0.2.21).** A DelphiScript runtime error no longer times out: the reply carries `errorShot`, a PNG of Altium's own message (Altium paints dialog text, so the picture is the only copy). READ it, do not retry the same call, and the bridge has already cleared Altium (`autoRecovered` / `answered`).
page.json+2−2@@ -4,7 +4,7 @@ "type": "app", "title": "Altium - the Altium Bridge", "brief": "Adom Bridge for Altium Designer: a resident DelphiScript agent gives the AI eval, the 1,100-command process launcher, all 8 EDA surfaces with screenshots, compile/ERC, DRC, OutJob outputs, native SchLib/PcbLib authoring with STEP 3D bodies, and dialog handling by PID.",- "version": "0.2.22",+ "version": "0.2.23", "hero": { "type": "image", "path": "screenshots/hero.png"@@ -140,4 +140,4 @@ "skills/altium-wiki-import/SKILL.md", "uninstall.sh" ]-}+}
skills/altium-instances/SKILL.md+9@@ -79,3 +79,12 @@ thread's agent. Kill only processes whose command line carries a script request. Two Altiums can run; only one can be licensed — see [altium-licensing](../altium-licensing/SKILL.md). So a genuinely parallel two-thread test is limited to one licensed instance at a time, and swapping the seat means closing one app politely. Never kill it: that strands the seat.++## `altium_selftest_script_error` (from 0.2.23)++A script runtime error used to leave Altium parked on a breakpoint with every verb timing out. From 0.2.21 the+bridge catches it (`errorCode: agent_script_error`, with `errorShot`, a PNG of Altium's message) and frees Altium+itself. This verb proves that on the machine in front of you: it raises a deliberate error and answers+`netWorks: true` when the box was photographed, the halted script stopped and no dialog is left. It flashes one+error box for under a second and leaves the agent stopped (the next verb restarts it). If any verb ever returns+`agent_script_error`, read `errorShot`, do not retry the same call, and report it on adom/altium-bridge.