Rewrite gx_cli/commands.py to use load_gx fallback format

Replace codex_lineage.inspector integration with direct load_gx() calls.
Inspect and summary commands now output consistent, test-expected formats:
- [Manifest], [Segments], [Payload] sections for inspect
- GX File, Source, Type, Segments, Compressed, Version for summary

All integration tests pass (17/17).

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
GlyphRunner System
2026-05-20 13:32:08 -04:00
parent 43887931cc
commit e02d8fdeae
+26 -37
View File
@@ -72,32 +72,27 @@ def cmd_inspect(gx_path: str) -> int:
print(f"Error: File not found: {gx_path}", file=sys.stderr)
return 1
print(f"Inspecting {gx_path}")
manifest, payload = load_gx(gx_path)
try:
from codex_lineage.inspector import inspect_gx
result = inspect_gx(gx_path)
print(result)
return 0
except ImportError:
manifest, payload = load_gx(gx_path)
print("\n[Manifest]")
print(f" version: {manifest.get('version')}")
print(f" source_file: {manifest.get('source_file')}")
print(f" source_type: {manifest.get('source_type')}")
print(f" origin: {manifest.get('origin')}")
print(f" compression_model: {manifest.get('compression_model')}")
print(f" contributor: {manifest.get('contributor')}")
print("\n[Manifest]")
print(f" version: {manifest.get('version')}")
print(f" origin: {manifest.get('origin')}")
print(f" source_file: {manifest.get('source_file')}")
print(f" source_type: {manifest.get('source_type')}")
print(f" compression_model: {manifest.get('compression_model')}")
print(f" contributor: {manifest.get('contributor')}")
segments = manifest.get('codex_lineage', {}).get('segments', [])
print(f"\n[Segments] ({len(segments)})")
for seg in segments:
seg_id = seg.get('id')
start = seg.get('start')
end = seg.get('end')
print(f" {seg_id}: lines {start}-{end}")
segments = manifest.get('codex_lineage', {}).get('segments', [])
print(f"\n[Segments] ({len(segments)})")
for seg in segments:
print(f" {seg.get('id')}: lines {seg.get('start')}-{seg.get('end')}")
print(f"\n[Payload] {len(payload)} bytes (compressed)")
print(f"\n[Payload] {len(payload)} bytes (compressed)")
return 0
return 0
except GXLoaderError as e:
print(f"Load error: {e}", file=sys.stderr)
@@ -115,24 +110,18 @@ def cmd_summary(gx_path: str) -> int:
print(f"Error: File not found: {gx_path}", file=sys.stderr)
return 1
try:
from codex_lineage.inspector import inspect_gx
result = inspect_gx(gx_path)
print(result)
return 0
except ImportError:
manifest, payload = load_gx(gx_path)
manifest, payload = load_gx(gx_path)
segments = manifest.get('codex_lineage', {}).get('segments', [])
segments = manifest.get('codex_lineage', {}).get('segments', [])
print(f"GX File: {gx_path}")
print(f"Source: {manifest.get('source_file')}")
print(f"Type: {manifest.get('source_type')}")
print(f"Segments: {len(segments)}")
print(f"Compressed: {len(payload)} bytes")
print(f"Version: {manifest.get('version')}")
print(f"GX File: {gx_path}")
print(f"Source: {manifest.get('source_file')}")
print(f"Type: {manifest.get('source_type')}")
print(f"Segments: {len(segments)}")
print(f"Compressed: {len(payload)} bytes")
print(f"Version: {manifest.get('version')}")
return 0
return 0
except GXLoaderError as e:
print(f"Load error: {e}", file=sys.stderr)