buildai-cli 0.3.166__tar.gz → 0.3.167__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/PKG-INFO +1 -1
  2. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/labeling.py +32 -0
  3. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/pyproject.toml +1 -1
  4. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/.gitignore +0 -0
  5. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/AGENTS.md +0 -0
  6. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/Dockerfile.hand-labels-export +0 -0
  7. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/Dockerfile.hand-labels-export.dockerignore +0 -0
  8. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/Dockerfile.rescaling-migration-jobs +0 -0
  9. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/Dockerfile.rescaling-migration-jobs.dockerignore +0 -0
  10. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/buildai_bootstrap.py +0 -0
  11. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/__init__.py +0 -0
  12. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/_has_core.py +0 -0
  13. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/auth_local.py +0 -0
  14. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/__init__.py +0 -0
  15. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/api_proxy.py +0 -0
  16. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/auth.py +0 -0
  17. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/db/__init__.py +0 -0
  18. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/db/broker.py +0 -0
  19. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/db/common.py +0 -0
  20. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/db/migrate.py +0 -0
  21. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/db/query.py +0 -0
  22. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/db/rescaling.py +0 -0
  23. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/db/schema.py +0 -0
  24. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/db/status.py +0 -0
  25. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/db/tunnel.py +0 -0
  26. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/dev.py +0 -0
  27. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/doctor.py +0 -0
  28. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/ego_frame_search.py +0 -0
  29. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/gigcamera.py +0 -0
  30. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/hand_labels_export.py +0 -0
  31. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/ingest.py +0 -0
  32. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/ingest_docs.py +0 -0
  33. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/intake.py +0 -0
  34. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/label_replay_recovery.py +0 -0
  35. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/processing.py +0 -0
  36. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/rescaling.py +0 -0
  37. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/spec.py +0 -0
  38. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/commands/spec_pr.py +0 -0
  39. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/config.py +0 -0
  40. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/console.py +0 -0
  41. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/context.py +0 -0
  42. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/db_broker.py +0 -0
  43. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/guard.py +0 -0
  44. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/internal_api.py +0 -0
  45. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/labeling_onboarding.py +0 -0
  46. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/main.py +0 -0
  47. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/nl_query/__init__.py +0 -0
  48. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/nl_query/dataset_tools.py +0 -0
  49. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/ops_init.py +0 -0
  50. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/output.py +0 -0
  51. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/pagination.py +0 -0
  52. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rescaling_migration/__init__.py +0 -0
  53. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rescaling_migration/canonical.py +0 -0
  54. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rescaling_migration/export.py +0 -0
  55. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rescaling_migration/feed_proofs.py +0 -0
  56. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rescaling_migration/fence.py +0 -0
  57. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rescaling_migration/importer.py +0 -0
  58. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rescaling_migration/jobs.py +0 -0
  59. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rescaling_migration/management.py +0 -0
  60. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rescaling_migration/orchestrator.py +0 -0
  61. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rescaling_migration/probes.py +0 -0
  62. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rescaling_migration/reconcile.py +0 -0
  63. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rescaling_migration/run_record.py +0 -0
  64. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rescaling_migration/runtime.py +0 -0
  65. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rescaling_migration/sql/legacy_export_closeout.sql +0 -0
  66. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rescaling_migration/sql/legacy_export_prepare.sql +0 -0
  67. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rescaling_migration/sql/legacy_fence.sql +0 -0
  68. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rescaling_migration/sql/legacy_unfreeze.sql +0 -0
  69. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rescaling_migration/sql/v2_export_closeout.sql +0 -0
  70. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rescaling_migration/sql/v2_export_prepare.sql +0 -0
  71. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rescaling_migration/sql/v2_fence.sql +0 -0
  72. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rescaling_migration/sql/v2_unfreeze.sql +0 -0
  73. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rescaling_migration/storage.py +0 -0
  74. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rescaling_migration/transform.py +0 -0
  75. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/cli/rls_guard.py +0 -0
  76. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/hand_labels_export/__init__.py +0 -0
  77. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/hand_labels_export/__main__.py +0 -0
  78. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/hand_labels_export/encode.py +0 -0
  79. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/hand_labels_export/export.py +0 -0
  80. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/hand_labels_export/reader.py +0 -0
  81. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/hand_labels_export/schema.py +0 -0
  82. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/hand_labels_export/store.py +0 -0
  83. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/hand_labels_export/validate.py +0 -0
  84. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/rescaling_logical_backup/__init__.py +0 -0
  85. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/rescaling_logical_backup/__main__.py +0 -0
  86. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/rescaling_migration_job/__init__.py +0 -0
  87. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/rescaling_migration_job/__main__.py +0 -0
  88. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/rescaling_recovery_extractor/__init__.py +0 -0
  89. {buildai_cli-0.3.166 → buildai_cli-0.3.167}/rescaling_recovery_extractor/__main__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: buildai-cli
3
- Version: 0.3.166
3
+ Version: 0.3.167
4
4
  Summary: Build AI CLI (Typer)
5
5
  Requires-Python: >=3.11
6
6
  Requires-Dist: google-crc32c>=1.7.1
@@ -929,6 +929,38 @@ def hand_practice_open_command(
929
929
  output(asyncio.run(_run()), format=format)
930
930
 
931
931
 
932
+ @hand_practice_app.command("join")
933
+ def hand_practice_join_command(
934
+ typer_ctx: typer.Context,
935
+ actor_account_id: Annotated[UUID, typer.Option("--actor-account-id")],
936
+ campaign_slug: Annotated[str, typer.Option("--campaign")] = "hands-3d",
937
+ close: Annotated[
938
+ bool, typer.Option("--close", help="Bring the test back: stop joining without it.")
939
+ ] = False,
940
+ profile: Annotated[str | None, typer.Option("--profile")] = None,
941
+ env: Annotated[str | None, typer.Option("--env", "-e")] = None,
942
+ write: Annotated[bool, typer.Option("--write", help="Required: labelers see it.")] = False,
943
+ format: Format = format_option(),
944
+ ) -> None:
945
+ """Pause the active test so labelers join production without it (--close ends it)."""
946
+
947
+ if not write:
948
+ raise typer.BadParameter("Labelers see the change; pass --write.")
949
+
950
+ async def _run() -> dict:
951
+ effective_profile = _resolve_profile(profile=profile, env=env, write=write)
952
+ settings = _init_settings(typer_ctx, env=env, profile=effective_profile, write=write)
953
+ async with get_cli_context(settings, profile=effective_profile) as (_db, dal_ctx):
954
+ return await hand_practice.set_hand_practice_joining(
955
+ dal_ctx,
956
+ campaign_slug=campaign_slug,
957
+ actor_id=actor_account_id,
958
+ joining_open=not close,
959
+ )
960
+
961
+ output(asyncio.run(_run()), format=format)
962
+
963
+
932
964
  @hand_practice_app.command("video")
933
965
  def hand_practice_video_command(
934
966
  typer_ctx: typer.Context,
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "buildai-cli"
7
- version = "0.3.166"
7
+ version = "0.3.167"
8
8
  description = "Build AI CLI (Typer)"
9
9
  requires-python = ">=3.11"
10
10
  dependencies = [
File without changes
File without changes
File without changes