CLI entrypoint.
()
| 301 | |
| 302 | |
| 303 | def main() -> int: |
| 304 | """CLI entrypoint.""" |
| 305 | args = parse_args() |
| 306 | |
| 307 | if not args.yes: |
| 308 | print(f"Action: {args.action}") |
| 309 | if args.roles: |
| 310 | print(f"Roles: {', '.join(args.roles)}") |
| 311 | confirmation = input("Continue? (yes/no): ").strip().lower() |
| 312 | if confirmation != "yes": |
| 313 | print("Cancelled.") |
| 314 | return 1 |
| 315 | |
| 316 | if args.action == "full_reset": |
| 317 | result = full_reset(roles=args.roles) |
| 318 | print(f"Backup: {result['backup_path']}") |
| 319 | print(f"Before: {json.dumps(result['before_counts'], ensure_ascii=False)}") |
| 320 | print(f"After: {json.dumps(result['after_counts'], ensure_ascii=False)}") |
| 321 | print("Seeded profiles:") |
| 322 | for role_name, directions in result["seeded_profiles"].items(): |
| 323 | print(f" - {role_name}: {json.dumps(directions, ensure_ascii=False)}") |
| 324 | return 0 |
| 325 | |
| 326 | if args.action == "benchmark_reset": |
| 327 | result = benchmark_reset(roles=args.roles) |
| 328 | print(f"Backup: {result['backup_path']}") |
| 329 | print(f"Before: {json.dumps(result['before_counts'], ensure_ascii=False)}") |
| 330 | print(f"After: {json.dumps(result['after_counts'], ensure_ascii=False)}") |
| 331 | print("Seeded profiles:") |
| 332 | for role_name, directions in result["seeded_profiles"].items(): |
| 333 | print(f" - {role_name}: {json.dumps(directions, ensure_ascii=False)}") |
| 334 | print("Papers table was preserved.") |
| 335 | return 0 |
| 336 | |
| 337 | backup_path = backup_database() |
| 338 | roles_meta = load_roles_meta() |
| 339 | conn = get_connection() |
| 340 | try: |
| 341 | if args.action == "reset_profiles": |
| 342 | seeded_profiles = reset_user_profiles(conn, roles_meta, roles=args.roles) |
| 343 | reset_sqlite_sequences(conn, ("profiles",)) |
| 344 | conn.commit() |
| 345 | print(f"Backup: {backup_path}") |
| 346 | for role_name, directions in seeded_profiles.items(): |
| 347 | print(f" - {role_name}: {json.dumps(directions, ensure_ascii=False)}") |
| 348 | elif args.action == "clear_logs": |
| 349 | clear_tables(conn, ("behavior_logs",)) |
| 350 | reset_sqlite_sequences(conn, ("behavior_logs",)) |
| 351 | conn.commit() |
| 352 | print(f"Backup: {backup_path}") |
| 353 | print("Cleared behavior_logs.") |
| 354 | elif args.action == "clear_papers": |
| 355 | clear_tables(conn, ("papers",)) |
| 356 | reset_sqlite_sequences(conn, ("papers",)) |
| 357 | conn.commit() |
| 358 | print(f"Backup: {backup_path}") |
| 359 | print("Cleared papers.") |
| 360 | elif args.action == "clear_tasks": |
no test coverage detected