@miller-tech/uap 1.48.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.
- package/docs/INDEX.md +2 -2
- package/docs/getting-started/INSTALLATION.md +16 -7
- package/docs/guides/AUTOMATIC_FEATURES.md +14 -0
- package/docs/guides/DELIVER.md +47 -1
- package/docs/reference/CLI.md +23 -1
- package/package.json +1 -1
- package/src/policies/enforcers/__pycache__/_common.cpython-312.pyc +0 -0
package/docs/INDEX.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# UAP Documentation
|
|
2
2
|
|
|
3
|
-
The complete documentation for the **Universal Agent Protocol** (`@miller-tech/uap` v1.
|
|
3
|
+
The complete documentation for the **Universal Agent Protocol** (`@miller-tech/uap` v1.48.0) — a layer that gives AI coding agents memory, judgment, and the discipline to finish the job.
|
|
4
4
|
|
|
5
5
|
New here? Start with the [project README](../README.md), then [Getting Started](getting-started/).
|
|
6
6
|
|
|
@@ -19,7 +19,7 @@ New here? Start with the [project README](../README.md), then [Getting Started](
|
|
|
19
19
|
| Doc | What it covers |
|
|
20
20
|
|---|---|
|
|
21
21
|
| [**What UAP Does Automatically**](guides/AUTOMATIC_FEATURES.md) | Every feature in benefit / when-it-kicks-in terms — install once, it all self-applies ⭐ |
|
|
22
|
-
| [**`uap deliver`**](guides/DELIVER.md) | The delivery harness — verified
|
|
22
|
+
| [**`uap deliver`**](guides/DELIVER.md) | The delivery harness — convergence loop to verified completion, with tiered gates (fast → integration → deploy-dev) and a CI/deploy feedback loop ⭐ |
|
|
23
23
|
| [Memory](guides/MEMORY.md) | The 4-tier memory system, write-gates, semantic recall |
|
|
24
24
|
| [MCP Router](guides/MCP_ROUTER.md) | Token-optimizing tool proxy + FTS5 output compression |
|
|
25
25
|
| [Worktree Workflow](guides/WORKTREE_WORKFLOW.md) | Branch-per-feature isolation, auto-PR, enforcement |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
The Universal Agent Protocol (UAP) is an autonomous AI agent memory system with
|
|
4
4
|
CLAUDE.md protocol enforcement. It ships as a single npm package
|
|
5
|
-
(`@miller-tech/uap`, v1.
|
|
5
|
+
(`@miller-tech/uap`, v1.48.0) that installs the `uap` CLI.
|
|
6
6
|
|
|
7
7
|
## Prerequisites
|
|
8
8
|
|
|
@@ -32,7 +32,7 @@ npm install -g @miller-tech/uap
|
|
|
32
32
|
uap --version
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
This prints the installed package version (e.g. `1.
|
|
35
|
+
This prints the installed package version (e.g. `1.48.0`).
|
|
36
36
|
|
|
37
37
|
## One-command setup
|
|
38
38
|
|
|
@@ -45,6 +45,14 @@ uap setup
|
|
|
45
45
|
`uap setup` chains the individual commands so the whole system "just works". It
|
|
46
46
|
runs the following steps in order:
|
|
47
47
|
|
|
48
|
+
0. **Self-update the CLI** — before anything else, `setup` checks npm and
|
|
49
|
+
**auto-updates the globally-installed `uap` to the latest published version**
|
|
50
|
+
if it is behind, so every setup runs against current behaviour. It is
|
|
51
|
+
non-fatal and self-limiting: only a real global install is updated (a source
|
|
52
|
+
checkout or a local/monorepo dependency is left alone), it is downgrade-proof,
|
|
53
|
+
and it is **skipped in CI** for reproducibility (`UAP_SELF_UPDATE=1` forces
|
|
54
|
+
it). The update applies on the next `uap` invocation. Disable with
|
|
55
|
+
`--no-self-update` or `UAP_NO_SELF_UPDATE=1`.
|
|
48
56
|
1. **Initialize the project** (`uap init` under the hood) — creates `.uap.json`,
|
|
49
57
|
the `agents/data/memory` directory structure, the short-term memory database,
|
|
50
58
|
a `CLAUDE.md` (or `AGENT.md`), the worktree workflow scaffold, and the Python
|
|
@@ -68,11 +76,12 @@ runs the following steps in order:
|
|
|
68
76
|
### Useful `uap setup` flags
|
|
69
77
|
|
|
70
78
|
```bash
|
|
71
|
-
uap setup --no-memory
|
|
72
|
-
uap setup --no-patterns
|
|
73
|
-
uap setup -
|
|
74
|
-
uap setup
|
|
75
|
-
uap setup
|
|
79
|
+
uap setup --no-memory # init only, skip Qdrant/memory services
|
|
80
|
+
uap setup --no-patterns # skip pattern RAG setup and indexing
|
|
81
|
+
uap setup --no-self-update # do not auto-update the global CLI
|
|
82
|
+
uap setup -i # interactive wizard with feature toggles
|
|
83
|
+
uap setup --verbose # detailed output
|
|
84
|
+
uap setup -d <path> # set up a project directory other than the cwd
|
|
76
85
|
```
|
|
77
86
|
|
|
78
87
|
### Init only
|
|
@@ -68,6 +68,13 @@ Install UAP (`npm i -g universal-agent-protocol`) and every feature below activa
|
|
|
68
68
|
|
|
69
69
|
**Why it matters:** This is the single biggest uplift for small local models. A Qwen3.6-35B-A3B running locally with ~18GB VRAM will produce broken code on first try — but after 2-3 convergence iterations through real compiler feedback, it produces working code that matches what opus-4.8 would produce. The model learns from its mistakes in real-time.
|
|
70
70
|
|
|
71
|
+
### `uap deliver` — Tiered Gates & CI/Deploy Feedback
|
|
72
|
+
**What it does:** Gates are grouped into cheap-first tiers — `fast` (build/typecheck/test/lint) → `integration` (test:integration/e2e, pytest markers) → `deploy-dev` (local compose-up + smoke + teardown) — and only promote to the next, more expensive tier once the prior one is green. With `--watch-ci`/`--until-deployed`, once local tiers pass the loop commits + pushes the worktree branch, watches the CI run, and re-converges on CI/staging/prod deploy failure using the sanitized failure logs.
|
|
73
|
+
|
|
74
|
+
**When it kicks in:** The integration tier auto-enables when a suite is detected; `--optimize` also turns on `deploy-dev`. The CI watch boundary is opt-in (`--watch-ci`/`--until-deployed`) since it pushes.
|
|
75
|
+
|
|
76
|
+
**Why it matters:** "Delivered" comes to mean *integrates and deploys*, not just "unit tests pass locally" — and the loop gets real dev/staging/prod feedback to converge on, while never paying for expensive tiers until the cheap ones are green.
|
|
77
|
+
|
|
71
78
|
### Model Presets
|
|
72
79
|
**What it does:** Pre-configured model profiles in `src/models/types.ts` that set optimal parameters (temperature, max tokens, reasoning effort) per model.
|
|
73
80
|
|
|
@@ -129,6 +136,13 @@ Install UAP (`npm i -g universal-agent-protocol`) and every feature below activa
|
|
|
129
136
|
|
|
130
137
|
**Why it matters:** You describe the goal, not the steps. HALO figures out the plan and executes it.
|
|
131
138
|
|
|
139
|
+
### CLI Self-Update on Setup
|
|
140
|
+
**What it does:** `uap setup` checks npm and auto-updates the globally-installed `uap` CLI to the latest published version before configuring a project.
|
|
141
|
+
|
|
142
|
+
**When it kicks in:** At the start of every `uap setup`. Only a real global install is updated (source checkouts and local/monorepo deps are left alone), it is downgrade-proof, and it is skipped in CI for reproducibility (`UAP_SELF_UPDATE=1` forces). Opt out with `--no-self-update` / `UAP_NO_SELF_UPDATE=1`.
|
|
143
|
+
|
|
144
|
+
**Why it matters:** Install once; every subsequent setup self-applies the latest behaviour without a manual `npm install -g`. The update takes effect on the next `uap` invocation.
|
|
145
|
+
|
|
132
146
|
---
|
|
133
147
|
|
|
134
148
|
## Local Model Setup
|
package/docs/guides/DELIVER.md
CHANGED
|
@@ -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`) |
|
package/docs/reference/CLI.md
CHANGED
|
@@ -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.
|
|
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
|
Binary file
|