← Commit history

Initial commit: app/adom-desktop-fusion-bridge-macos

Kyle Bergstedt ·e54a51e9b6 ·2mo ago
2 files changed +144
README.mdadded+67
@@ -0,0 +1,67 @@+# Adom Desktop - Fusion 360 Bridge (macOS)++> The **macOS build** of the [Fusion 360 bridge](https://wiki.adom.inc/adom/adom-desktop-fusion-bridge).+> Same `fusion_*` verbs, same skills, same AI knowledge as the canonical (Windows) bridge - the+> only difference is the window-automation layer is natively ported to macOS. Published as a+> separate app so the mac line and the Windows line never step on each other's releases.++## Why a separate app++The canonical `adom-desktop-fusion-bridge` page is developed on Windows. Its window-automation+code (screenshots, clicks, keystrokes, dialog handling) is Win32 (`ctypes.windll`, `SendInput`,+`PrintWindow`). This build carries the identical bridge with those primitives reimplemented for+macOS, and lives on its own page so a Windows release can never overwrite the mac line (and vice+versa). Auto-update routing keeps each machine on its own platform's line - see below.++## What is different from the Windows bridge++Everything the add-in does in-process (geometry, exports, parameters, the Autodesk MCP client+verbs, APS cloud search, document ops) is platform-agnostic and identical. The macOS port is the+**window-automation layer** in `handlers/mac_ui.py`:++| Capability | Windows | macOS |+|---|---|---|+| Enumerate windows | Win32 `EnumWindows` | `CGWindowListCopyWindowInfo` (hwnd = CGWindowID) |+| Capture a window | `PrintWindow` / BitBlt | `screencapture -l <windowid>` |+| Click / keys | `SendInput` | `CGEvent` (named keys, unicode, `cmd+` combos) |+| Close / raise a dialog | `WM_CLOSE` / `SetForegroundWindow` | System Events `AXCloseButton` / `AXRaise` |+| Launch / quit / detect | `tasklist` / webdeploy | `pgrep` / `open -g` / `~/Library/Application Support/Autodesk/webdeploy` |++Verbs that are inherently Win32 UI-coordinate driven (`fusion_mcp_enable`, `fusion_prefs_open`,+`fusion_prefs_close`) return an honest manual hint on macOS instead of blind-clicking Windows+coordinates - Fusion's macOS Preferences layout differs (a flat section list). The MCP toggle has+no Autodesk API, so it is enabled manually on mac (General -> tick "Fusion MCP Server", Apply);+once on, every `fusion_mcp_*` client verb works unchanged.++## Auto-update routing (why this does not collide with the Windows page)++The bridge NAME is `fusion360` on both pages, so all verbs and skills transfer. Adom Desktop keys+its auto-update off the **installed copy's** `bridge.json`, not a global name lookup, so a machine+follows whatever line its bundle came from. This build's `bridge.json` declares:++```json+"updateManifestUrl": "https://wiki.adom.inc/api/v1/pages/adom-desktop-fusion-bridge-macos/files/adom-bridge-fusion-manifest.json",+"updateManifestUrls": {+  "windows": "https://wiki.adom.inc/api/v1/pages/adom-desktop-fusion-bridge/files/adom-bridge-fusion-manifest.json",+  "macos":   "https://wiki.adom.inc/api/v1/pages/adom-desktop-fusion-bridge-macos/files/adom-bridge-fusion-manifest.json"+}+```++A map-aware Adom Desktop picks the `macos` line; older ones fall back to the plain field.++## Install (via Adom Desktop on a Mac)++```bash+adom-desktop bridge_install '{"manifestUrl": "https://wiki.adom.inc/api/v1/pages/adom-desktop-fusion-bridge-macos/files/adom-bridge-fusion-manifest.json"}'+adom-wiki pkg install adom/adom-desktop-fusion-bridge-macos   # the skills pack for your AI+```++On macOS, Adom Desktop is normally hosted by Hydrogen Desktop, which bundles this build directly.++## Full documentation++The complete feature guides (APS cloud search, schematics, board layout, 3D export, library+manager, the Autodesk MCP server, sign-in) live on the canonical page and apply verbatim:+**[adom-desktop-fusion-bridge](https://wiki.adom.inc/adom/adom-desktop-fusion-bridge)**.++MIT licensed. Source is developed on the `hydrogen-desktop` macOS branch and published here.
page.jsonadded+77
@@ -0,0 +1,77 @@+{+  "slug": "adom-desktop-fusion-bridge-macos",+  "version": "1.8.3",+  "type": "app",+  "description": "macOS build of the Adom Desktop Fusion 360 bridge. Same fusion_* verbs and skills as the canonical (Windows) bridge, with the window-automation layer natively ported to macOS (CGWindowList + screencapture + CGEvent + System Events). Installs the SKILLS into your container; Adom Desktop loads the runtime from the release zip.",+  "dependencies": {+    "adom/adom-desktop": "*"+  },+  "scripts": {+    "install": "./install.sh",+    "uninstall": "./uninstall.sh"+  },+  "tags": [+    "fusion360",+    "autodesk",+    "cad",+    "pcb",+    "exports",+    "aps",+    "modeling"+  ],+  "hero": {+    "type": "image",+    "path": "screenshots/hero.png"+  },+  "discovery_triggers": [+    "drive fusion 360",+    "open a fusion design",+    "open my pcb in fusion",+    "launch fusion 360",+    "search our fusion cloud files",+    "find a fusion design in our cloud",+    "export a step file from fusion",+    "export gerbers from fusion",+    "get a bom from fusion",+    "lay out a pcb in fusion",+    "design electronics in fusion",+    "build a component library in fusion",+    "build a basic parts library",+    "add a 3d model to a component",+    "make a fusion 360 library with 3d",+    "set up the fusion bridge"+  ],+  "discovery_pitch": "Use the Adom Desktop Fusion 360 bridge when the user wants to DRIVE Autodesk Fusion 360 from the cloud: open/search their team's Fusion cloud designs, lay out a PCB or do electronics, export STEP/IGES/STL/Gerbers/BOM, or build a component library with real rendering 3D. It runs Fusion on the user's own machine via Adom Desktop. NOT for web/browser/login/form-filling (that's the native-browser extension) and NOT for KiCad (that's the kicad bridge).",+  "sample_prompts": [+    {+      "label": "Find a design",+      "prompt": "Search our Fusion cloud files for the wire bender and open it"+    },+    {+      "label": "Costed BOM",+      "prompt": "Give me a parts list for this assembly with quantities, and don't double-count the hardware inside the bracket kits"+    },+    {+      "label": "Open a board",+      "prompt": "Open my BQ25792 charger board in Fusion and show me the 3D PCB"+    },+    {+      "label": "Export for manufacturing",+      "prompt": "Export gerbers, the BOM and the CPL for this board so I can send it to JLCPCB"+    },+    {+      "label": "Sign Fusion in",+      "prompt": "Fusion is signed into the wrong Autodesk account, put it on my work profile"+    },+    {+      "label": "Part volume",+      "prompt": "How much material does each printed part in this assembly use?"+    }+  ],+  "visibility": "public",+  "org": "adom",+  "author": {+    "name": "Kyle Bergstedt",+    "email": "[email protected]"+  }+}\ No newline at end of file