buildai-cli 0.3.165__tar.gz → 0.3.166__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.165 → buildai_cli-0.3.166}/PKG-INFO +1 -1
  2. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/labeling.py +11 -5
  3. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/pyproject.toml +1 -1
  4. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/.gitignore +0 -0
  5. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/AGENTS.md +0 -0
  6. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/Dockerfile.hand-labels-export +0 -0
  7. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/Dockerfile.hand-labels-export.dockerignore +0 -0
  8. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/Dockerfile.rescaling-migration-jobs +0 -0
  9. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/Dockerfile.rescaling-migration-jobs.dockerignore +0 -0
  10. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/buildai_bootstrap.py +0 -0
  11. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/__init__.py +0 -0
  12. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/_has_core.py +0 -0
  13. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/auth_local.py +0 -0
  14. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/__init__.py +0 -0
  15. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/api_proxy.py +0 -0
  16. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/auth.py +0 -0
  17. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/db/__init__.py +0 -0
  18. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/db/broker.py +0 -0
  19. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/db/common.py +0 -0
  20. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/db/migrate.py +0 -0
  21. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/db/query.py +0 -0
  22. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/db/rescaling.py +0 -0
  23. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/db/schema.py +0 -0
  24. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/db/status.py +0 -0
  25. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/db/tunnel.py +0 -0
  26. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/dev.py +0 -0
  27. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/doctor.py +0 -0
  28. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/ego_frame_search.py +0 -0
  29. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/gigcamera.py +0 -0
  30. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/hand_labels_export.py +0 -0
  31. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/ingest.py +0 -0
  32. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/ingest_docs.py +0 -0
  33. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/intake.py +0 -0
  34. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/label_replay_recovery.py +0 -0
  35. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/processing.py +0 -0
  36. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/rescaling.py +0 -0
  37. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/spec.py +0 -0
  38. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/commands/spec_pr.py +0 -0
  39. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/config.py +0 -0
  40. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/console.py +0 -0
  41. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/context.py +0 -0
  42. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/db_broker.py +0 -0
  43. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/guard.py +0 -0
  44. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/internal_api.py +0 -0
  45. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/labeling_onboarding.py +0 -0
  46. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/main.py +0 -0
  47. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/nl_query/__init__.py +0 -0
  48. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/nl_query/dataset_tools.py +0 -0
  49. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/ops_init.py +0 -0
  50. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/output.py +0 -0
  51. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/pagination.py +0 -0
  52. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rescaling_migration/__init__.py +0 -0
  53. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rescaling_migration/canonical.py +0 -0
  54. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rescaling_migration/export.py +0 -0
  55. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rescaling_migration/feed_proofs.py +0 -0
  56. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rescaling_migration/fence.py +0 -0
  57. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rescaling_migration/importer.py +0 -0
  58. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rescaling_migration/jobs.py +0 -0
  59. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rescaling_migration/management.py +0 -0
  60. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rescaling_migration/orchestrator.py +0 -0
  61. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rescaling_migration/probes.py +0 -0
  62. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rescaling_migration/reconcile.py +0 -0
  63. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rescaling_migration/run_record.py +0 -0
  64. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rescaling_migration/runtime.py +0 -0
  65. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rescaling_migration/sql/legacy_export_closeout.sql +0 -0
  66. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rescaling_migration/sql/legacy_export_prepare.sql +0 -0
  67. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rescaling_migration/sql/legacy_fence.sql +0 -0
  68. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rescaling_migration/sql/legacy_unfreeze.sql +0 -0
  69. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rescaling_migration/sql/v2_export_closeout.sql +0 -0
  70. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rescaling_migration/sql/v2_export_prepare.sql +0 -0
  71. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rescaling_migration/sql/v2_fence.sql +0 -0
  72. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rescaling_migration/sql/v2_unfreeze.sql +0 -0
  73. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rescaling_migration/storage.py +0 -0
  74. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rescaling_migration/transform.py +0 -0
  75. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/cli/rls_guard.py +0 -0
  76. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/hand_labels_export/__init__.py +0 -0
  77. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/hand_labels_export/__main__.py +0 -0
  78. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/hand_labels_export/encode.py +0 -0
  79. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/hand_labels_export/export.py +0 -0
  80. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/hand_labels_export/reader.py +0 -0
  81. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/hand_labels_export/schema.py +0 -0
  82. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/hand_labels_export/store.py +0 -0
  83. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/hand_labels_export/validate.py +0 -0
  84. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/rescaling_logical_backup/__init__.py +0 -0
  85. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/rescaling_logical_backup/__main__.py +0 -0
  86. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/rescaling_migration_job/__init__.py +0 -0
  87. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/rescaling_migration_job/__main__.py +0 -0
  88. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/rescaling_recovery_extractor/__init__.py +0 -0
  89. {buildai_cli-0.3.165 → buildai_cli-0.3.166}/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.165
3
+ Version: 0.3.166
4
4
  Summary: Build AI CLI (Typer)
5
5
  Requires-Python: >=3.11
6
6
  Requires-Dist: google-crc32c>=1.7.1
@@ -82,7 +82,7 @@ hand_practice_app = typer.Typer(
82
82
  )
83
83
  app.add_typer(hand_practice_app, name="hand-practice")
84
84
  practice_bonus_payouts_app = typer.Typer(
85
- help="The instant practice bonus payout: switch, status, and backfill.",
85
+ help="The instant bonus payout (practice bonus, referral steps): switch, status, backfill.",
86
86
  no_args_is_help=True,
87
87
  )
88
88
  app.add_typer(practice_bonus_payouts_app, name="practice-bonus-payouts")
@@ -990,7 +990,7 @@ def practice_bonus_payouts_status_command(
990
990
  env: Annotated[str | None, typer.Option("--env", "-e")] = None,
991
991
  format: Format = format_option(),
992
992
  ) -> None:
993
- """Whether the lane is on, and payouts by state and reason."""
993
+ """Whether each lane is on, and payouts by kind, state, and reason."""
994
994
 
995
995
  async def _run() -> dict:
996
996
  effective_profile = _resolve_profile(profile=profile, env=env, write=False)
@@ -1006,15 +1006,21 @@ def practice_bonus_payouts_switch_command(
1006
1006
  typer_ctx: typer.Context,
1007
1007
  state: Annotated[str, typer.Argument(help="on or off")],
1008
1008
  actor_account_id: Annotated[UUID, typer.Option("--actor-account-id")],
1009
+ lane: Annotated[
1010
+ str,
1011
+ typer.Option("--lane", help="practice (the practice bonus) or referral (both steps)."),
1012
+ ] = "practice",
1009
1013
  profile: Annotated[str | None, typer.Option("--profile")] = None,
1010
1014
  env: Annotated[str | None, typer.Option("--env", "-e")] = None,
1011
1015
  write: Annotated[bool, typer.Option("--write", help="Required: this moves money.")] = False,
1012
1016
  format: Format = format_option(),
1013
1017
  ) -> None:
1014
- """The kill switch: on orders passed bonuses at once; off leaves them to the manual payout."""
1018
+ """One lane's kill switch: on pays its bonuses at once; off leaves them to the manual payout."""
1015
1019
 
1016
1020
  if state not in {"on", "off"}:
1017
1021
  raise typer.BadParameter("Pass on or off.")
1022
+ if lane not in practice_bonus_payouts.LANES:
1023
+ raise typer.BadParameter("Pass --lane practice or --lane referral.")
1018
1024
  if not write:
1019
1025
  raise typer.BadParameter("Switching changes who is paid at once; pass --write.")
1020
1026
 
@@ -1023,7 +1029,7 @@ def practice_bonus_payouts_switch_command(
1023
1029
  settings = _init_settings(typer_ctx, env=env, profile=effective_profile, write=write)
1024
1030
  async with get_cli_context(settings, profile=effective_profile) as (_db, dal_ctx):
1025
1031
  return await practice_bonus_payouts.set_payouts_enabled(
1026
- dal_ctx, enabled=state == "on", actor_id=actor_account_id
1032
+ dal_ctx, lane=lane, enabled=state == "on", actor_id=actor_account_id
1027
1033
  )
1028
1034
 
1029
1035
  output(asyncio.run(_run()), format=format)
@@ -1039,7 +1045,7 @@ def practice_bonus_payouts_backfill_command(
1039
1045
  ] = False,
1040
1046
  format: Format = format_option(),
1041
1047
  ) -> None:
1042
- """Queue every unpaid practice bonus minted before the lane existed, once.
1048
+ """Queue every unpaid bonus line minted before the lane existed, once.
1043
1049
 
1044
1050
  The sweep then checks every guardrail and orders each one while the lane is on.
1045
1051
  """
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "buildai-cli"
7
- version = "0.3.165"
7
+ version = "0.3.166"
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