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) print(f"Error: File not found: {gx_path}", file=sys.stderr)
return 1 return 1
print(f"Inspecting {gx_path}") manifest, payload = load_gx(gx_path)
try: print("\n[Manifest]")
from codex_lineage.inspector import inspect_gx print(f" version: {manifest.get('version')}")
result = inspect_gx(gx_path) print(f" source_file: {manifest.get('source_file')}")
print(result) print(f" source_type: {manifest.get('source_type')}")
return 0 print(f" origin: {manifest.get('origin')}")
except ImportError: print(f" compression_model: {manifest.get('compression_model')}")
manifest, payload = load_gx(gx_path) print(f" contributor: {manifest.get('contributor')}")
print("\n[Manifest]") segments = manifest.get('codex_lineage', {}).get('segments', [])
print(f" version: {manifest.get('version')}") print(f"\n[Segments] ({len(segments)})")
print(f" origin: {manifest.get('origin')}") for seg in segments:
print(f" source_file: {manifest.get('source_file')}") seg_id = seg.get('id')
print(f" source_type: {manifest.get('source_type')}") start = seg.get('start')
print(f" compression_model: {manifest.get('compression_model')}") end = seg.get('end')
print(f" contributor: {manifest.get('contributor')}") print(f" {seg_id}: lines {start}-{end}")
segments = manifest.get('codex_lineage', {}).get('segments', []) print(f"\n[Payload] {len(payload)} bytes (compressed)")
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)") return 0
return 0
except GXLoaderError as e: except GXLoaderError as e:
print(f"Load error: {e}", file=sys.stderr) 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) print(f"Error: File not found: {gx_path}", file=sys.stderr)
return 1 return 1
try: manifest, payload = load_gx(gx_path)
from codex_lineage.inspector import inspect_gx
result = inspect_gx(gx_path)
print(result)
return 0
except ImportError:
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"GX File: {gx_path}")
print(f"Source: {manifest.get('source_file')}") print(f"Source: {manifest.get('source_file')}")
print(f"Type: {manifest.get('source_type')}") print(f"Type: {manifest.get('source_type')}")
print(f"Segments: {len(segments)}") print(f"Segments: {len(segments)}")
print(f"Compressed: {len(payload)} bytes") print(f"Compressed: {len(payload)} bytes")
print(f"Version: {manifest.get('version')}") print(f"Version: {manifest.get('version')}")
return 0 return 0
except GXLoaderError as e: except GXLoaderError as e:
print(f"Load error: {e}", file=sys.stderr) print(f"Load error: {e}", file=sys.stderr)