Files
gh-rawe-claude-agent-orches…/skills/document-sync/commands/doc-read
2025-11-30 08:49:56 +08:00

49 lines
1.1 KiB
Plaintext
Executable File

#!/usr/bin/env -S uv run --script
# /// script
# requires-python = ">=3.11"
# dependencies = [
# "httpx",
# "typer",
# ]
# ///
"""Read text document content from the document sync server."""
import typer
from pathlib import Path
import json
import sys
# Add lib directory to path for imports
sys.path.insert(0, str(Path(__file__).parent / "lib"))
from config import Config
from client import DocumentClient
app = typer.Typer(add_completion=False)
@app.command()
def main(
document_id: str = typer.Argument(..., help="Document ID to read content from"),
):
"""Read text document content directly to stdout (text files only)."""
try:
# Create client and read document
config = Config()
client = DocumentClient(config)
content = client.read_document(document_id)
# Output raw content to stdout (no JSON wrapper)
print(content, end="")
except Exception as e:
# Output error as JSON to stderr
error = {"error": str(e)}
print(json.dumps(error), file=sys.stderr)
raise typer.Exit(1)
if __name__ == "__main__":
app()