From 45b5af079ccce3a6b1f178ac9f6a51518a59c5de Mon Sep 17 00:00:00 2001 From: Mark Randall Havens Date: Fri, 13 Mar 2026 03:47:23 +0000 Subject: [PATCH] Update README with local ingestion and output options --- README.md | 40 +++++++++++++++++++++++++++-------- opus_orchestrator/__init__.py | 6 +++++- 2 files changed, 36 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index dd00f24..ce2c930 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,23 @@ opus --api-url http://localhost:8000 generate --concept "Your idea" |--------|-------------|--------| | **GitHub** | Fetch from public/private repos | ✅ | | **S3/MinIO** | S3-compatible object storage | ✅ | -| **Local Files** | Direct file input | ✅ | +| **Local Files** | Direct file/directory input | ✅ | + +### Ingestion CLI Commands + +```bash +# Ingest from GitHub +opus ingest --repo owner/repo + +# Ingest from S3/MinIO +opus ingest-s3 --bucket my-bucket --prefix notes/ + +# Ingest from local files/directory +opus ingest-local ./my-notes/ +opus ingest-local ./manuscript.txt +opus ingest-local ./folder --extensions md,txt --recursive +opus ingest-local ./notes --summarize --max-length 5000 +``` ### Deployment @@ -105,12 +121,16 @@ opus --api-url http://localhost:8000 generate --concept "Your idea" ### CLI Commands ```bash -# Generate manuscript (local, save to file) +# Generate manuscript from concept (local) opus generate --concept "Your story idea" --framework snowflake --words 5000 # Generate from GitHub opus generate --repo owner/repo --framework hero-journey --words 80000 +# Generate from local files/directory +opus generate --local ./my-notes/ --framework snowflake --words 5000 +opus generate --local ./manuscript.txt --words 5000 + # Generate and save to S3/MinIO opus generate --concept "..." --save-s3 my-bucket/manuscripts/ opus generate --concept "..." --save-s3 my-bucket/path/ --save-s3-endpoint https://nyc3.digitaloceanspaces.com @@ -119,14 +139,16 @@ opus generate --concept "..." --save-s3 my-bucket/path/ --save-s3-endpoint https opus generate --concept "..." --save-repo owner/my-manuscripts opus generate --concept "..." --save-repo owner/my-manuscripts --save-branch develop --save-commit-msg "New story draft" -# Generate from S3, save to GitHub -opus generate --repo owner/repo --save-repo owner/output-repo +# Generate from one source, save to another +opus generate --repo owner/notes --save-s3 output-bucket/manuscripts/ +opus generate --local ./notes --save-repo owner/output-repo -# Generate from S3, save to different S3 bucket -opus ingest-s3 --bucket input-bucket --prefix notes/ | opus generate --save-s3 output-bucket/ - -# Ingest from S3/MinIO -opus ingest-s3 --bucket my-bucket --prefix notes/ --output content.txt +# Ingest from various sources +opus ingest --repo owner/repo +opus ingest-s3 --bucket my-bucket --prefix notes/ +opus ingest-local ./my-notes/ +opus ingest-local ./folder --extensions md,txt,notes --recursive +opus ingest-local ./notes --summarize --max-length 5000 # Start API server opus serve --port 8000 diff --git a/opus_orchestrator/__init__.py b/opus_orchestrator/__init__.py index c237d3f..fdca3a8 100644 --- a/opus_orchestrator/__init__.py +++ b/opus_orchestrator/__init__.py @@ -34,6 +34,7 @@ from opus_orchestrator.langgraph_workflow import OpusGraph, run_opus, OpusGraphS from opus_orchestrator.autogen_critique import CritiqueCrew, create_critique_crew from opus_orchestrator.utils.github_ingest import GitHubIngestor, create_github_ingestor from opus_orchestrator.utils.s3_ingest import S3Ingestor, create_s3_ingestor +from opus_orchestrator.utils.local_ingest import LocalIngestor, create_local_ingestor from opus_orchestrator.frameworks import StoryFramework from opus_orchestrator.crews import ( OpusCrew, @@ -113,9 +114,12 @@ __all__ = [ "create_critique_crew", "GitHubIngestor", "create_github_ingestor", - # S3/MinIO (NEW!) + # S3/MinIO "S3Ingestor", "create_s3_ingestor", + # Local Files + "LocalIngestor", + "create_local_ingestor", ] # Import legacy orchestrator for backward compatibility