buildai-cli 0.3.85__tar.gz → 0.3.87__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 (40) hide show
  1. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/PKG-INFO +1 -1
  2. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/commands/ingest.py +8 -2
  3. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/commands/ingest_docs.py +12 -7
  4. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/pyproject.toml +1 -1
  5. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/.gitignore +0 -0
  6. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/AGENTS.md +0 -0
  7. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/CLAUDE.md +0 -0
  8. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/buildai_bootstrap.py +0 -0
  9. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/__init__.py +0 -0
  10. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/_has_core.py +0 -0
  11. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/auth_local.py +0 -0
  12. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/commands/__init__.py +0 -0
  13. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/commands/api_proxy.py +0 -0
  14. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/commands/auth.py +0 -0
  15. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/commands/db/__init__.py +0 -0
  16. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/commands/db/broker.py +0 -0
  17. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/commands/db/common.py +0 -0
  18. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/commands/db/migrate.py +0 -0
  19. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/commands/db/query.py +0 -0
  20. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/commands/db/schema.py +0 -0
  21. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/commands/db/status.py +0 -0
  22. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/commands/db/tunnel.py +0 -0
  23. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/commands/dev.py +0 -0
  24. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/commands/doctor.py +0 -0
  25. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/commands/egoexo.py +0 -0
  26. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/commands/gigcamera.py +0 -0
  27. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/commands/grid.py +0 -0
  28. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/commands/processing.py +0 -0
  29. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/config.py +0 -0
  30. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/console.py +0 -0
  31. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/context.py +0 -0
  32. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/db_broker.py +0 -0
  33. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/guard.py +0 -0
  34. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/internal_api.py +0 -0
  35. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/main.py +0 -0
  36. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/nl_query/__init__.py +0 -0
  37. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/nl_query/dataset_tools.py +0 -0
  38. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/ops_init.py +0 -0
  39. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/output.py +0 -0
  40. {buildai_cli-0.3.85 → buildai_cli-0.3.87}/cli/pagination.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: buildai-cli
3
- Version: 0.3.85
3
+ Version: 0.3.87
4
4
  Summary: Build AI CLI (Typer)
5
5
  Requires-Python: >=3.11
6
6
  Requires-Dist: httpx>=0.27.0
@@ -165,11 +165,16 @@ def deploy_run(
165
165
  include_reconcile: bool = typer.Option(
166
166
  False,
167
167
  "--include-reconcile",
168
- help="Also reconcile mini host surfaces such as 10G NIC, native tools, kiosk app, and DND.",
168
+ help="Deprecated and rejected; use `buildai ingest host repair <mini>` for host drift.",
169
+ ),
170
+ strategy: str = typer.Option(
171
+ "parallel",
172
+ "--strategy",
173
+ help="Rollout strategy: parallel for the normal fast path, staged for canary/station rollout.",
169
174
  ),
170
175
  json_output: bool = typer.Option(False, "--json", help="Emit JSON result."),
171
176
  ) -> None:
172
- """Build an immutable release artifact and execute a canaried staged fleet rollout."""
177
+ """Build an immutable release artifact and execute the selected fleet rollout."""
173
178
 
174
179
  engine = _ingest_engine()
175
180
  record, exit_code = engine.run_deploy(
@@ -178,6 +183,7 @@ def deploy_run(
178
183
  transport=transport,
179
184
  allow_dirty=allow_dirty,
180
185
  include_reconcile=include_reconcile,
186
+ strategy=strategy,
181
187
  )
182
188
  _emit_deploy_run_result(record, json_output=json_output, engine=engine, run_id=record.run_id)
183
189
  raise typer.Exit(exit_code)
@@ -55,12 +55,13 @@ All operator workflows go through the BuildAI CLI from a monorepo checkout:
55
55
  uv run buildai ingest <group> <command> [options]
56
56
 
57
57
  Command groups:
58
- deploy — artifact build, staged rollout, status, resume, rollback
58
+ deploy — artifact build, role-parallel rollout, status, resume, rollback
59
59
  fleet — preflight, auth, readiness (read-only gates)
60
60
  host — bootstrap and repair (host toolchain, not app code)
61
61
  docs — this guide
62
62
 
63
63
  Canonical runbook (more detail): apps/buildai-ingest/docs/deploy.md
64
+ Remote operations guide: apps/buildai-ingest/docs/remote-operations.md
64
65
  Semantic contract: apps/buildai-ingest/docs/deploy-contract.md
65
66
  Topology source of truth: apps/buildai-ingest/fleet/inventory.json
66
67
  """,
@@ -157,16 +158,20 @@ STANDARD DEPLOY WORKFLOW
157
158
  4. Plan (dry run — targets, rollout order, git warnings)
158
159
  uv run buildai ingest deploy plan --scope active
159
160
 
160
- 5. Deploy (build artifact + staged rollout)
161
+ 5. Deploy (build artifact + role-parallel rollout)
161
162
  uv run buildai ingest deploy run --scope active --reason "describe change"
162
163
 
163
164
  6. Verify
164
165
  uv run buildai ingest deploy status
165
166
 
166
167
  Rollout order for multi-target scopes:
167
- Canary: ingest-mini-1 first
168
- • Then station batches (minis per station, then servers, aggregator)
169
- Convergence audit at the end when in rollout plan
168
+ Selected minis in parallel
169
+ • Then selected upload servers in parallel
170
+ Then aggregator
171
+ • Convergence audit at the end
172
+
173
+ Use --strategy staged only when deliberately requesting the slower
174
+ canary/station rollout.
170
175
 
171
176
  Partial failure:
172
177
  uv run buildai ingest deploy status
@@ -193,7 +198,7 @@ Comma lists: station:1,station:2
193
198
  Notes:
194
199
  • ingest-mini-11 is maintenance by default — target explicitly if needed
195
200
  • Targeted deploys do not satisfy full-fleet convergence alone; follow with active scope
196
- First production cutover to release layout: prefer --scope mini:1 as canary
201
+ Use --strategy staged for deliberate canary/station serialization
197
202
  """,
198
203
  "host-layout": """
199
204
  ON-HOST RELEASE LAYOUT
@@ -224,7 +229,7 @@ COMMAND REFERENCE
224
229
  =================
225
230
 
226
231
  deploy plan Dry plan: targets, rollout order, git warnings
227
- deploy run Build artifact + execute staged rollout
232
+ deploy run Build artifact + execute role-parallel rollout by default
228
233
  deploy status Latest or specific run state (ledger under ~/.buildai/ingest-deploy-runs/)
229
234
  deploy resume Continue a non-terminal run from saved artifact
230
235
  deploy rollback Flip current to previous release (re-stage only if pruned)
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "buildai-cli"
7
- version = "0.3.85"
7
+ version = "0.3.87"
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
File without changes
File without changes
File without changes
File without changes