[GH-ISSUE #35] Model applications as artifact graphs and add safe decomposition #22

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/35

Goal

Treat an application or package as a graph of related artifacts instead of resolving it only to one executable.

Scope

Add inventory_artifact and extract_artifact capabilities for DMG, ZIP, package, ASAR, JavaScript bundles, source maps, universal slices, IPA, APK, plists, entitlements, resources, native addons, and embedded frameworks.

Safety and provenance

  • Default to inventory-only behavior.
  • Require explicit output roots for extraction.
  • Prevent path traversal, symlink escape, overwrite, and decompression-bomb behavior.
  • Hash every discovered or derived artifact and record parent-child derivation.
  • Record producing commands and deterministic manifests.
  • Clearly label operations that mount media, write files, or invoke external tools.

Acceptance criteria

  • A bundle can be traversed from container to executable, frameworks, resources, JavaScript, source maps, and native addons.
  • Repeated inventory produces stable artifact identities.
  • Extraction is contained and cleanup is verified.
  • Large artifacts are paginated or exported to files instead of exceeding protocol limits.

Roadmap expansion

Historical-source and bundle children

Historical source is a structural donor, not current behavioral authority. Record immutable manifests and provenance, then classify mappings using strings, constants, call shapes, AST structure, and observed behavior. Preserve generated/original locations and derivation edges.

Originally created by @morluto on GitHub (Jul 12, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/35 ## Goal Treat an application or package as a graph of related artifacts instead of resolving it only to one executable. ## Scope Add inventory_artifact and extract_artifact capabilities for DMG, ZIP, package, ASAR, JavaScript bundles, source maps, universal slices, IPA, APK, plists, entitlements, resources, native addons, and embedded frameworks. ## Safety and provenance - Default to inventory-only behavior. - Require explicit output roots for extraction. - Prevent path traversal, symlink escape, overwrite, and decompression-bomb behavior. - Hash every discovered or derived artifact and record parent-child derivation. - Record producing commands and deterministic manifests. - Clearly label operations that mount media, write files, or invoke external tools. ## Acceptance criteria - A bundle can be traversed from container to executable, frameworks, resources, JavaScript, source maps, and native addons. - Repeated inventory produces stable artifact identities. - Extraction is contained and cleanup is verified. - Large artifacts are paginated or exported to files instead of exceeding protocol limits. ## Roadmap expansion ### Historical-source and bundle children - [x] #66 - [x] #67 - [x] #68 Historical source is a structural donor, not current behavioral authority. Record immutable manifests and provenance, then classify mappings using strings, constants, call shapes, AST structure, and observed behavior. Preserve generated/original locations and derivation edges.
Author
Owner

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

Current main delivers artifact graphs and safe readers for directories, ASAR, ZIP, DMG, and Mach-O slices, with containment-safe extraction, JavaScript reconstruction, and historical import. Remaining scope is unsupported container/resource families, live packaged-artifact cleanup proof, and the focused semantic mapping/index work in #67/#68.

<!-- gh-comment-id:5001711205 --> @morluto commented on GitHub (Jul 17, 2026): Current main delivers artifact graphs and safe readers for directories, ASAR, ZIP, DMG, and Mach-O slices, with containment-safe extraction, JavaScript reconstruction, and historical import. Remaining scope is unsupported container/resource families, live packaged-artifact cleanup proof, and the focused semantic mapping/index work in #67/#68.
Author
Owner

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

Split into focused child issues:

These replace the broad remaining scope in this issue. Closing this parent can happen once all children are closed.

<!-- gh-comment-id:5023443447 --> @morluto commented on GitHub (Jul 20, 2026): Split into focused child issues: - [ ] #356 - [ ] #357 These replace the broad remaining scope in this issue. Closing this parent can happen once all children are closed.
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#22
No description provided.