[GH-ISSUE #34] Add a native macOS inspection provider #24

Closed
opened 2026-10-15 18:20:04 +00:00 by bsakaguchi · 2 comments
Owner

Originally created by @morluto on GitHub (Jul 12, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/34

Goal

Answer deterministic binary questions without launching Hopper by composing native macOS utilities behind provider-neutral capabilities.

Initial adapters

  • file
  • nm
  • otool
  • strings
  • codesign
  • plutil
  • lipo
  • dwarfdump
  • dyld_info
  • swift-demangle
  • xcrun vtool

Requirements

  • Expose semantic operations such as inspect_macho, inspect_signature, inspect_plist, list_architectures, and demangle_swift.
  • Parse subprocess output at an explicit boundary; do not leak raw command-specific formats into public contracts.
  • Record the command, tool version, artifact SHA-256, exit status, limitations, and source locations.
  • Bound output and support cancellation and timeouts.
  • Detect unavailable tools as typed capability errors.
  • Keep command execution read-only.

Acceptance criteria

  • inspect_macho returns slices, load commands, imports, exports, linked frameworks, UUID/build metadata, segments, sections, and permissions when supported.
  • CLI and MCP use identical schemas.
  • Fixture tests cover Mach-O and universal binaries plus unavailable or malformed-tool output.
  • Results can participate in evidence bundles and provider comparison.
Originally created by @morluto on GitHub (Jul 12, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/34 ## Goal Answer deterministic binary questions without launching Hopper by composing native macOS utilities behind provider-neutral capabilities. ## Initial adapters - file - nm - otool - strings - codesign - plutil - lipo - dwarfdump - dyld_info - swift-demangle - xcrun vtool ## Requirements - Expose semantic operations such as inspect_macho, inspect_signature, inspect_plist, list_architectures, and demangle_swift. - Parse subprocess output at an explicit boundary; do not leak raw command-specific formats into public contracts. - Record the command, tool version, artifact SHA-256, exit status, limitations, and source locations. - Bound output and support cancellation and timeouts. - Detect unavailable tools as typed capability errors. - Keep command execution read-only. ## Acceptance criteria - inspect_macho returns slices, load commands, imports, exports, linked frameworks, UUID/build metadata, segments, sections, and permissions when supported. - CLI and MCP use identical schemas. - Fixture tests cover Mach-O and universal binaries plus unavailable or malformed-tool output. - Results can participate in evidence bundles and provider comparison.
Author
Owner

@morluto commented on GitHub (Jul 17, 2026):

Completed on current . and provide the native macOS inspection boundary, including Mach-O inventory, signature/plist inspection, architecture listing, and demangling, with CLI/MCP wiring and native-provider tests. Additional format-specific depth can remain in focused capability issues.

<!-- gh-comment-id:5001519073 --> @morluto commented on GitHub (Jul 17, 2026): Completed on current . and provide the native macOS inspection boundary, including Mach-O inventory, signature/plist inspection, architecture listing, and demangling, with CLI/MCP wiring and native-provider tests. Additional format-specific depth can remain in focused capability issues.
Author
Owner

@morluto commented on GitHub (Jul 17, 2026):

Correction to the preceding comment: completed on current main. NativeMacOSProvider.ts and NativeMachoInspection.ts provide Mach-O inventory, signature and plist inspection, architecture listing, and demangling, with CLI/MCP wiring and native-provider tests.

<!-- gh-comment-id:5001528035 --> @morluto commented on GitHub (Jul 17, 2026): Correction to the preceding comment: completed on current main. NativeMacOSProvider.ts and NativeMachoInspection.ts provide Mach-O inventory, signature and plist inspection, architecture listing, and demangling, with CLI/MCP wiring and native-provider tests.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#24
No description provided.