feat: Add --thread-id and --resume flags for checkpointing
- Add --thread-id flag to CLI for checkpointing - Add --resume flag to resume from checkpoint - Generate UUID if no thread_id provided - Display thread_id for user to save for resume Usage: opus generate --concept "My book" --thread-id abc123 # If fails: opus generate --concept "My book" --thread-id abc123 --resume
This commit is contained in:
@@ -307,6 +307,17 @@ Examples:
|
|||||||
action="store_true",
|
action="store_true",
|
||||||
help="Disable AutoGen critique",
|
help="Disable AutoGen critique",
|
||||||
)
|
)
|
||||||
|
gen_parser.add_argument(
|
||||||
|
"--thread-id",
|
||||||
|
type=str,
|
||||||
|
default=None,
|
||||||
|
help="Thread ID for checkpointing/resume (if resuming, use same ID)",
|
||||||
|
)
|
||||||
|
gen_parser.add_argument(
|
||||||
|
"--resume",
|
||||||
|
action="store_true",
|
||||||
|
help="Resume from last checkpoint using --thread-id",
|
||||||
|
)
|
||||||
gen_parser.add_argument(
|
gen_parser.add_argument(
|
||||||
"--verbose", "-V",
|
"--verbose", "-V",
|
||||||
action="store_true",
|
action="store_true",
|
||||||
@@ -706,11 +717,22 @@ async def run_generate(args: argparse.Namespace) -> int:
|
|||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
# Use LangGraph pipeline
|
# Use LangGraph pipeline
|
||||||
|
# Generate thread_id if not provided
|
||||||
|
import uuid
|
||||||
|
thread_id = args.thread_id or str(uuid.uuid4())
|
||||||
|
|
||||||
|
print(f"🧵 Thread ID: {thread_id}")
|
||||||
|
if args.resume:
|
||||||
|
print(f" ↪️ Resuming from checkpoint\n")
|
||||||
|
else:
|
||||||
|
print()
|
||||||
|
|
||||||
result = await run_opus(
|
result = await run_opus(
|
||||||
seed_concept=seed_concept,
|
seed_concept=seed_concept,
|
||||||
framework=args.framework,
|
framework=args.framework,
|
||||||
genre=args.genre,
|
genre=args.genre,
|
||||||
target_word_count=args.words,
|
target_word_count=args.words,
|
||||||
|
thread_id=thread_id,
|
||||||
)
|
)
|
||||||
|
|
||||||
manuscript = result.get("manuscript", str(result))
|
manuscript = result.get("manuscript", str(result))
|
||||||
|
|||||||
Reference in New Issue
Block a user