buildai-cli 0.3.170__tar.gz → 0.3.172__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 (90) hide show
  1. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/.gitignore +8 -0
  2. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/Dockerfile.hand-labels-export +7 -4
  3. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/Dockerfile.hand-labels-export.dockerignore +2 -0
  4. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/PKG-INFO +1 -1
  5. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/auth_local.py +2 -18
  6. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/hand_labels_export/schema.py +2 -0
  7. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/pyproject.toml +1 -1
  8. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/AGENTS.md +0 -0
  9. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/Dockerfile.rescaling-migration-jobs +0 -0
  10. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/Dockerfile.rescaling-migration-jobs.dockerignore +0 -0
  11. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/buildai_bootstrap.py +0 -0
  12. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/__init__.py +0 -0
  13. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/_has_core.py +0 -0
  14. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/__init__.py +0 -0
  15. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/api_proxy.py +0 -0
  16. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/auth.py +0 -0
  17. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/db/__init__.py +0 -0
  18. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/db/broker.py +0 -0
  19. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/db/common.py +0 -0
  20. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/db/migrate.py +0 -0
  21. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/db/query.py +0 -0
  22. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/db/rescaling.py +0 -0
  23. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/db/schema.py +0 -0
  24. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/db/status.py +0 -0
  25. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/db/tunnel.py +0 -0
  26. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/dev.py +0 -0
  27. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/doctor.py +0 -0
  28. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/ego_frame_search.py +0 -0
  29. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/gigcamera.py +0 -0
  30. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/hand_labels_export.py +0 -0
  31. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/ingest.py +0 -0
  32. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/ingest_docs.py +0 -0
  33. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/intake.py +0 -0
  34. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/label_accounts.py +0 -0
  35. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/label_replay_recovery.py +0 -0
  36. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/labeling.py +0 -0
  37. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/processing.py +0 -0
  38. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/rescaling.py +0 -0
  39. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/spec.py +0 -0
  40. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/commands/spec_pr.py +0 -0
  41. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/config.py +0 -0
  42. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/console.py +0 -0
  43. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/context.py +0 -0
  44. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/db_broker.py +0 -0
  45. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/guard.py +0 -0
  46. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/internal_api.py +0 -0
  47. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/labeling_onboarding.py +0 -0
  48. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/main.py +0 -0
  49. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/nl_query/__init__.py +0 -0
  50. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/nl_query/dataset_tools.py +0 -0
  51. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/ops_init.py +0 -0
  52. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/output.py +0 -0
  53. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/pagination.py +0 -0
  54. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rescaling_migration/__init__.py +0 -0
  55. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rescaling_migration/canonical.py +0 -0
  56. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rescaling_migration/export.py +0 -0
  57. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rescaling_migration/feed_proofs.py +0 -0
  58. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rescaling_migration/fence.py +0 -0
  59. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rescaling_migration/importer.py +0 -0
  60. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rescaling_migration/jobs.py +0 -0
  61. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rescaling_migration/management.py +0 -0
  62. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rescaling_migration/orchestrator.py +0 -0
  63. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rescaling_migration/probes.py +0 -0
  64. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rescaling_migration/reconcile.py +0 -0
  65. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rescaling_migration/run_record.py +0 -0
  66. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rescaling_migration/runtime.py +0 -0
  67. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rescaling_migration/sql/legacy_export_closeout.sql +0 -0
  68. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rescaling_migration/sql/legacy_export_prepare.sql +0 -0
  69. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rescaling_migration/sql/legacy_fence.sql +0 -0
  70. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rescaling_migration/sql/legacy_unfreeze.sql +0 -0
  71. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rescaling_migration/sql/v2_export_closeout.sql +0 -0
  72. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rescaling_migration/sql/v2_export_prepare.sql +0 -0
  73. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rescaling_migration/sql/v2_fence.sql +0 -0
  74. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rescaling_migration/sql/v2_unfreeze.sql +0 -0
  75. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rescaling_migration/storage.py +0 -0
  76. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rescaling_migration/transform.py +0 -0
  77. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/cli/rls_guard.py +0 -0
  78. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/hand_labels_export/__init__.py +0 -0
  79. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/hand_labels_export/__main__.py +0 -0
  80. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/hand_labels_export/encode.py +0 -0
  81. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/hand_labels_export/export.py +0 -0
  82. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/hand_labels_export/reader.py +0 -0
  83. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/hand_labels_export/store.py +0 -0
  84. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/hand_labels_export/validate.py +0 -0
  85. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/rescaling_logical_backup/__init__.py +0 -0
  86. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/rescaling_logical_backup/__main__.py +0 -0
  87. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/rescaling_migration_job/__init__.py +0 -0
  88. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/rescaling_migration_job/__main__.py +0 -0
  89. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/rescaling_recovery_extractor/__init__.py +0 -0
  90. {buildai_cli-0.3.170 → buildai_cli-0.3.172}/rescaling_recovery_extractor/__main__.py +0 -0
@@ -123,6 +123,8 @@ reference/
123
123
  # scratch dir. The bare pattern above silently swallowed every page in it
124
124
  # (found 2026-08-16: meta.json navigates to pages that exist nowhere in git).
125
125
  !docs/content/reference/
126
+ # ...and the reference engine of the inference runtime (pose3d.infer) is source.
127
+ !packages/pose3d/src/pose3d/infer/reference/
126
128
  recording-cache/
127
129
  /datasets/1m-hour-dataset/*
128
130
  !/datasets/1m-hour-dataset/README.md
@@ -325,6 +327,9 @@ infra/**/apply*.txt
325
327
  # Deliberately NOT LFS: Vercel does not resolve LFS pointers at build time, so
326
328
  # an LFS-tracked APK would deploy as a text stub instead of an installable app.
327
329
  !apps/rescaling/rescaling-landing/app/*.apk
330
+ # and the card check-in Android app, which app.rescaling.ai offers on its
331
+ # Metadata page and the operator's home (not LFS, for the same reason).
332
+ !apps/rescaling/rescaling-app/public/downloads/*.apk
328
333
  .tmp-*.yml
329
334
 
330
335
  # TLS certs
@@ -335,3 +340,6 @@ test-buildai-data/
335
340
 
336
341
  # Generated multi-service app factory (local dev only)
337
342
  _combined_factory.py
343
+
344
+ # W&B client run folders (local probes and tools)
345
+ wandb/
@@ -1,6 +1,8 @@
1
1
  # Hand-labels export job image (Cloud Run Job hand-labels-export, us-central1).
2
- # Runs `python -m hand_labels_export`; see hand_labels_export/__main__.py for the
3
- # environment contract. Built by the release workflow only (target
2
+ # Production runs `python -m egoexo.human.daily` (the daily human truth; the
3
+ # job's command in infra/production/cloud-run-jobs). The entrypoint stays
4
+ # `python -m hand_labels_export` for the staging job; see
5
+ # hand_labels_export/__main__.py. Built by the release workflow only (target
4
6
  # hand-labels-export-prod). The release uploads a filtered build context
5
7
  # (hand_labels_export_included_files in .github/release-targets.hcl), so core/
6
8
  # holds only the job's generated import closure.
@@ -33,12 +35,13 @@ RUN uv sync --locked --no-dev --package buildai-cli --extra ops --no-install-wor
33
35
 
34
36
  COPY core/ core/
35
37
  COPY apps/buildai/buildai-cli/ apps/buildai/buildai-cli/
38
+ COPY packages/egoexo/src/ packages/egoexo/src/
36
39
 
37
40
  ENV PATH="/app/.venv/bin:${PATH}" \
38
- PYTHONPATH="/app/core:/app/apps/buildai/buildai-cli"
41
+ PYTHONPATH="/app/core:/app/apps/buildai/buildai-cli:/app/packages/egoexo/src"
39
42
 
40
43
  # Fail the build, not the first 02:00 run, when an import is missing.
41
- RUN python -c "import pyarrow, google.cloud.storage; import hand_labels_export.__main__"
44
+ RUN python -c "import pyarrow, google.cloud.storage; import hand_labels_export.__main__; import egoexo.human.daily, egoexo.human.labelsdb, egoexo.stages.pose, egoexo.stages.head"
42
45
 
43
46
  # Recorded in every snapshot manifest. Last, so a new commit keeps the layer cache.
44
47
  ARG BUILDAI_COMMIT_SHA=""
@@ -6,6 +6,8 @@
6
6
  !packages/
7
7
  !packages/egoexo/
8
8
  !packages/egoexo/pyproject.toml
9
+ !packages/egoexo/src/
10
+ !packages/egoexo/src/**
9
11
  !services/
10
12
  !services/pyproject.toml
11
13
  !apps/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: buildai-cli
3
- Version: 0.3.170
3
+ Version: 0.3.172
4
4
  Summary: Build AI CLI (Typer)
5
5
  Requires-Python: >=3.11
6
6
  Requires-Dist: google-crc32c>=1.7.1
@@ -212,25 +212,17 @@ def sanctioned_auth_profiles() -> tuple[LocalAuthProfile, ...]:
212
212
  ),
213
213
  LocalAuthProfile(
214
214
  name="migrations-local",
215
- audience="founders",
215
+ audience="admins",
216
216
  summary="Run migration flows through the canonical migrations identity.",
217
217
  purpose="Use this for reviewed DDL and scheduler ownership work.",
218
218
  ),
219
219
  LocalAuthProfile(
220
220
  name="db-admin-local",
221
- audience="founders",
221
+ audience="admins",
222
222
  summary="Use the canonical AlloyDB admin identity for platform DB work.",
223
223
  purpose="Use this only for platform-level DB support and ownership repair.",
224
224
  break_glass=True,
225
225
  ),
226
- LocalAuthProfile(
227
- name="quarantine-policy-admin",
228
- audience="founders",
229
- summary="Operate the quarantine deny-policy control plane explicitly.",
230
- purpose="Use this only for storage deny-policy and quarantine-control work.",
231
- break_glass=True,
232
- db_access=False,
233
- ),
234
226
  )
235
227
 
236
228
 
@@ -324,10 +316,6 @@ def _fixed_targets_for_environment(
324
316
  "buildai-db-admin-staging-sa@data-470400.iam.gserviceaccount.com",
325
317
  "buildai-db-admin-staging-sa@data-470400.iam",
326
318
  ),
327
- "quarantine-policy-admin": (
328
- "quarantine-policy-admin@data-470400.iam.gserviceaccount.com",
329
- None,
330
- ),
331
319
  }
332
320
 
333
321
  return {
@@ -343,10 +331,6 @@ def _fixed_targets_for_environment(
343
331
  "buildai-db-admin-sa@data-470400.iam.gserviceaccount.com",
344
332
  "buildai-db-admin-sa@data-470400.iam",
345
333
  ),
346
- "quarantine-policy-admin": (
347
- "quarantine-policy-admin@data-470400.iam.gserviceaccount.com",
348
- None,
349
- ),
350
334
  }
351
335
 
352
336
 
@@ -156,6 +156,8 @@ INDEX_SCHEMA = pa.schema(
156
156
  ("qa_reviewed_at", _UTC),
157
157
  # completion: a claim's completed revision. fix_round: a re-checked
158
158
  # fix round's revision (``fix_attempt``); fixed cameras count from it.
159
+ # qa_fix: the revision QA saved when it fixed that round's cameras in
160
+ # the re-check; those cameras count from it.
159
161
  ("unit", pa.string()),
160
162
  ("fix_attempt", pa.int64()),
161
163
  # {camera_id: {side: visible | not_visible}}: the labeler's answers in
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "buildai-cli"
7
- version = "0.3.170"
7
+ version = "0.3.172"
8
8
  description = "Build AI CLI (Typer)"
9
9
  requires-python = ">=3.11"
10
10
  dependencies = [
File without changes
File without changes