@miller-tech/uap 1.47.0 → 1.48.1

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.
@@ -51,7 +51,46 @@ uap deliver "big refactor across modules" --optimize # enable every aid
51
51
  uap deliver "trivial typo fix" --no-auto # disable dynamic optimization
52
52
  ```
53
53
 
54
- `--optimize` enables exploration, critic, practices, escalation, ideation, HALO spans, and coordination together.
54
+ `--optimize` enables exploration, critic, practices, escalation, ideation, HALO spans, and coordination together. It also turns on the local **integration** and **deploy-dev** gate tiers (below); the commit/push boundary (`--watch-ci`) stays opt-in.
55
+
56
+ ---
57
+
58
+ ## Tiered validation gates (cheap-first)
59
+
60
+ Real delivery is more than unit tests — it also has to integrate and deploy. `deliver` groups gates into **tiers** and runs them **cheapest-first**, only promoting to the next, more expensive tier once the prior one is green:
61
+
62
+ ```
63
+ fast → integration → deploy-dev → │ commit │ → ci → deploy-staging → deploy-prod
64
+ └──────── run locally ───────────┘ └──── verified by CI (the watcher) ────┘
65
+ ```
66
+
67
+ - **`fast`** — build, typecheck, unit tests, lint (the original ladder). Always on.
68
+ - **`integration`** — `test:integration` / `test:e2e` scripts, or a pytest `integration` marker. **Auto-detected and on by default** (like lint); disable with `--no-integration`.
69
+ - **`deploy-dev`** — a local dev deploy + smoke check: brings a `docker compose` stack up (or runs a `deploy:dev` / `smoke` script), health-checks it, then **always tears it down**. Opt-in with `--deploy-dev`. If docker is unavailable the tier is *skipped*, never failed.
70
+
71
+ Because promotion is cheap-first, a turn that fails the build never pays for integration or deploy — the expensive tiers run only once the cheap ones pass.
72
+
73
+ ### CI / deploy feedback loop
74
+
75
+ The `ci`, `deploy-staging`, and `deploy-prod` tiers are **never run locally** — they are verified by CI after commit. With `--watch-ci`, once the local tiers are green `deliver`:
76
+
77
+ 1. commits the applied files and **pushes the current worktree branch** (never `master`/`main`, never force-push);
78
+ 2. resolves the CI run for that exact commit (matched by SHA) and watches it;
79
+ 3. on CI / deploy failure, feeds the **sanitized failure logs back into a fresh convergence pass** and re-converges (bounded by `--ci-passes`).
80
+
81
+ `--until-deployed` implies `--watch-ci` and additionally requires the `deploy-staging` and `deploy-prod` jobs to be green before exiting 0 — so "delivered" means *deployed and verified*, not just "tests pass locally".
82
+
83
+ The bundled workflow [`.github/workflows/deploy-verify.yml`](../../.github/workflows/deploy-verify.yml) provides the `deploy-dev` / `deploy-staging` / `deploy-prod` jobs the watcher reads. Add `deploy:dev` / `deploy:staging` / `deploy:prod` and `smoke` npm scripts to your project and the no-op verification steps become real.
84
+
85
+ ```bash
86
+ # iterate locally through fast → integration → local dev deploy+smoke
87
+ uap deliver "add the orders endpoint" --deploy-dev
88
+
89
+ # …then push, watch CI, and re-converge until staging + prod deploy verify green
90
+ uap deliver "add the orders endpoint" --until-deployed
91
+ ```
92
+
93
+ > Gate inputs are protected like tests: the model cannot "pass" by editing `docker-compose.yml`, `Dockerfile`, `*.tf`, CI workflows, or runner configs (`--no-protect-tests` lifts this).
55
94
 
56
95
  ---
57
96
 
@@ -67,6 +106,13 @@ uap deliver "trivial typo fix" --no-auto # disable dynamic optimiz
67
106
  | `--escalate-model <preset>` | Stronger model for escalation (default `$UAP_ESCALATE_MODEL`) |
68
107
  | `--temperature <t>` | Sampling temperature (default: execution-profile value) |
69
108
  | `--gates <ids>` | Gate subset: `build,typecheck,test,lint` |
109
+ | `--tiers <list>` | Explicit local tiers to run, e.g. `fast,integration,deploy-dev` (overrides auto-detection) |
110
+ | `--integration` / `--no-integration` | Run the integration tier (on by default when a suite is detected) |
111
+ | `--deploy-dev` / `--no-deploy-dev` | Run a local dev deploy + smoke tier (compose up → smoke → teardown) |
112
+ | `--watch-ci` | After local-green, commit + push the worktree branch and watch CI; re-converge on failure |
113
+ | `--until-deployed` | Imply `--watch-ci` and require CI + staging/prod deploy jobs green before exiting 0 |
114
+ | `--ci-passes <n>` | Max CI re-converge passes on failure (1–10, default `2`) |
115
+ | `--ci-timeout <minutes>` | CI watch budget in minutes (1–120, default `20`) |
70
116
  | `--candidates <n>` | Best-of-N exploration: candidates per turn (2–8) |
71
117
  | `--critic` | Structured critique of failed turns |
72
118
  | `--practices` / `--no-semantic` | Inject/record best-practice cards (keyword retrieval with `--no-semantic`) |
@@ -1,7 +1,7 @@
1
1
  # UAP CLI Reference
2
2
 
3
3
  > Complete command reference for the Universal Agent Protocol command-line interface (`uap`).
4
- > Version v1.40.0.
4
+ > Version v1.48.0.
5
5
 
6
6
  The `uap` binary is the single entry point for every UAP capability: project
7
7
  initialization, the tiered memory system, git worktree workflow, multi-agent
@@ -97,13 +97,23 @@ uap setup [options]
97
97
  | `-p, --platform <platforms...>` | Targets: `claude`, `factory`, `vscode`, `opencode`, `omp`, `cline`, `codex`, `aider`, `continue`, `windsurf`, `zed`, `copilot`, `jetbrains`, `swe-agent`, `all` (default `all`) |
98
98
  | `--no-patterns` | Skip pattern RAG setup |
99
99
  | `--no-memory` | Skip memory system setup |
100
+ | `--no-self-update` | Skip the automatic UAP CLI version check / self-update (also `UAP_NO_SELF_UPDATE=1`) |
100
101
  | `--systemd-services` | Scaffold user systemd services for llama.cpp + anthropic proxy |
101
102
  | `-d, --project-dir <path>` | Target project directory (defaults to cwd) |
102
103
  | `-i, --interactive` | Run the interactive setup wizard with feature toggles |
103
104
 
105
+ Before configuring the project, `setup` ensures the **globally-installed UAP CLI
106
+ is at the latest published npm version** and self-updates if it is behind. It is
107
+ safe and non-fatal: it only updates a real global install (a source checkout or a
108
+ local/monorepo dependency is left untouched), is downgrade-proof, and is
109
+ **skipped in CI** for reproducibility (`UAP_SELF_UPDATE=1` forces it). The update
110
+ takes effect on the next `uap` invocation. Disable with `--no-self-update` or
111
+ `UAP_NO_SELF_UPDATE=1`.
112
+
104
113
  ```bash
105
114
  uap setup -i
106
115
  uap setup -p claude -d ~/projects/myapp
116
+ uap setup --no-self-update # configure without touching the global CLI
107
117
  ```
108
118
 
109
119
  ---
@@ -293,6 +303,13 @@ uap deliver <instruction...> [options]
293
303
  | `--endpoint <url>` | Override the model endpoint (OpenAI-compatible `/v1`) |
294
304
  | `--temperature <t>` | Sampling temperature (default: execution-profile value) |
295
305
  | `--gates <ids>` | Comma-separated gate subset: `build,typecheck,test,lint` |
306
+ | `--tiers <list>` | Local tiers to run: `fast,integration,deploy-dev` (overrides auto-detection) |
307
+ | `--integration` / `--no-integration` | Run the integration tier (on by default when `test:integration`/`test:e2e`/pytest marker is detected) |
308
+ | `--deploy-dev` / `--no-deploy-dev` | Run a local dev deploy + smoke tier (compose up -> smoke -> teardown) |
309
+ | `--watch-ci` | After local-green, commit + push the worktree branch and watch CI; re-converge on CI/deploy failure (never pushes master/main) |
310
+ | `--until-deployed` | Imply `--watch-ci` and require CI + staging/prod deploy jobs green before exiting 0 |
311
+ | `--ci-passes <n>` | Max CI re-converge passes on failure (1-10, default 2) |
312
+ | `--ci-timeout <minutes>` | CI watch budget in minutes (1-120, default 20) |
296
313
  | `--candidates <n>` | Best-of-N exploration: candidates per turn (2-8) |
297
314
  | `--critic` | Structured critique of failed turns (extra model call per failure) |
298
315
  | `--practices` | Inject learned best-practice cards; record new ones on success |
@@ -316,9 +333,14 @@ uap deliver <instruction...> [options]
316
333
  ```bash
317
334
  uap deliver "add a /healthz endpoint with a test" --gates build,test
318
335
  uap deliver "refactor the auth module" --optimize --ceiling 20
336
+ uap deliver "add the orders endpoint" --deploy-dev # incl. local dev deploy+smoke
337
+ uap deliver "add the orders endpoint" --until-deployed # push, watch CI, verify staging/prod
319
338
  uap deliver "fix the failing CI" --dry-run
320
339
  ```
321
340
 
341
+ See the [deliver guide](../guides/DELIVER.md#tiered-validation-gates-cheap-first)
342
+ for the tiered gate model and the CI/deploy feedback loop.
343
+
322
344
  ---
323
345
 
324
346
  ## `harness`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@miller-tech/uap",
3
- "version": "1.47.0",
3
+ "version": "1.48.1",
4
4
  "description": "Autonomous AI agent memory system with CLAUDE.md protocol enforcement",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",