@miller-tech/uap 1.163.13 → 1.164.0
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/README.md +1 -1
- package/dist/.tsbuildinfo +1 -1
- package/dist/bin/cli.js +5 -4
- package/dist/bin/cli.js.map +1 -1
- package/dist/cli/deliver.d.ts +5 -3
- package/dist/cli/deliver.d.ts.map +1 -1
- package/dist/cli/deliver.js +95 -19
- package/dist/cli/deliver.js.map +1 -1
- package/dist/cli/guided-setup.d.ts.map +1 -1
- package/dist/cli/guided-setup.js +13 -1
- package/dist/cli/guided-setup.js.map +1 -1
- package/dist/cli/model.d.ts.map +1 -1
- package/dist/cli/model.js +9 -1
- package/dist/cli/model.js.map +1 -1
- package/dist/cli/proxy-lifecycle.d.ts +66 -13
- package/dist/cli/proxy-lifecycle.d.ts.map +1 -1
- package/dist/cli/proxy-lifecycle.js +116 -49
- package/dist/cli/proxy-lifecycle.js.map +1 -1
- package/dist/cli/proxy.d.ts +46 -0
- package/dist/cli/proxy.d.ts.map +1 -1
- package/dist/cli/proxy.js +353 -23
- package/dist/cli/proxy.js.map +1 -1
- package/dist/cli/wizard-config.d.ts +4 -0
- package/dist/cli/wizard-config.d.ts.map +1 -1
- package/dist/cli/wizard-config.js +14 -3
- package/dist/cli/wizard-config.js.map +1 -1
- package/dist/config/settings-registry.d.ts.map +1 -1
- package/dist/config/settings-registry.js +25 -0
- package/dist/config/settings-registry.js.map +1 -1
- package/dist/coordination/effort-profile.d.ts +39 -0
- package/dist/coordination/effort-profile.d.ts.map +1 -0
- package/dist/coordination/effort-profile.js +74 -0
- package/dist/coordination/effort-profile.js.map +1 -0
- package/dist/dashboard/server.d.ts.map +1 -1
- package/dist/dashboard/server.js +68 -10
- package/dist/dashboard/server.js.map +1 -1
- package/dist/delivery/convergence-loop.d.ts +37 -0
- package/dist/delivery/convergence-loop.d.ts.map +1 -1
- package/dist/delivery/convergence-loop.js +51 -4
- package/dist/delivery/convergence-loop.js.map +1 -1
- package/dist/delivery/critic.d.ts +7 -0
- package/dist/delivery/critic.d.ts.map +1 -1
- package/dist/delivery/critic.js.map +1 -1
- package/dist/delivery/decompose.d.ts +9 -0
- package/dist/delivery/decompose.d.ts.map +1 -1
- package/dist/delivery/decompose.js +11 -0
- package/dist/delivery/decompose.js.map +1 -1
- package/dist/delivery/graph-safety.d.ts +75 -0
- package/dist/delivery/graph-safety.d.ts.map +1 -0
- package/dist/delivery/graph-safety.js +98 -0
- package/dist/delivery/graph-safety.js.map +1 -0
- package/dist/delivery/per-phase-escalation-controller.d.ts +37 -0
- package/dist/delivery/per-phase-escalation-controller.d.ts.map +1 -0
- package/dist/delivery/per-phase-escalation-controller.js +68 -0
- package/dist/delivery/per-phase-escalation-controller.js.map +1 -0
- package/dist/delivery/per-phase-escalation.d.ts +53 -0
- package/dist/delivery/per-phase-escalation.d.ts.map +1 -0
- package/dist/delivery/per-phase-escalation.js +57 -0
- package/dist/delivery/per-phase-escalation.js.map +1 -0
- package/dist/delivery/reflect.d.ts +56 -0
- package/dist/delivery/reflect.d.ts.map +1 -0
- package/dist/delivery/reflect.js +79 -0
- package/dist/delivery/reflect.js.map +1 -0
- package/dist/delivery/verification-provenance.d.ts +47 -0
- package/dist/delivery/verification-provenance.d.ts.map +1 -0
- package/dist/delivery/verification-provenance.js +48 -0
- package/dist/delivery/verification-provenance.js.map +1 -0
- package/dist/models/complexity.d.ts +36 -0
- package/dist/models/complexity.d.ts.map +1 -0
- package/dist/models/complexity.js +75 -0
- package/dist/models/complexity.js.map +1 -0
- package/dist/models/router.d.ts.map +1 -1
- package/dist/models/router.js +39 -10
- package/dist/models/router.js.map +1 -1
- package/dist/models/types.d.ts +60 -10
- package/dist/models/types.d.ts.map +1 -1
- package/dist/models/types.js +128 -11
- package/dist/models/types.js.map +1 -1
- package/dist/self-tuning/prompt-variants.d.ts +93 -0
- package/dist/self-tuning/prompt-variants.d.ts.map +1 -0
- package/dist/self-tuning/prompt-variants.js +143 -0
- package/dist/self-tuning/prompt-variants.js.map +1 -0
- package/dist/tasks/types.d.ts +2 -2
- package/dist/types/config.d.ts +8 -0
- package/dist/types/config.d.ts.map +1 -1
- package/docs/INDEX.md +1 -1
- package/docs/benchmarks/COMPREHENSIVE_BENCHMARKS.md +47 -53
- package/docs/benchmarks/VALIDATION_RESULTS.md +0 -2
- package/docs/guides/COORDINATION.md +1 -1
- package/docs/guides/DEPLOY_BATCHING.md +1 -1
- package/docs/guides/DROIDS_AND_SKILLS.md +1 -1
- package/docs/guides/LOCAL_MODELS.md +1 -1
- package/docs/guides/MCP_ROUTER.md +1 -1
- package/docs/guides/MEMORY.md +2 -2
- package/docs/guides/MULTI_MODEL.md +1 -1
- package/docs/guides/POLICIES.md +1 -1
- package/docs/guides/PROXY.md +47 -4
- package/docs/guides/SANDBOX.md +1 -1
- package/docs/guides/WORKTREE_WORKFLOW.md +1 -1
- package/docs/reference/CLI.md +16 -3
- package/docs/reference/CONFIGURATION.md +1 -1
- package/docs/reference/FEATURES.md +1 -1
- package/package.json +1 -1
- package/src/policies/enforcers/__pycache__/_common.cpython-312.pyc +0 -0
- package/templates/hooks/__pycache__/deliver_autoroute.cpython-312.pyc +0 -0
- package/templates/hooks/session-end.sh +9 -0
- package/templates/hooks/session-start.sh +10 -0
- package/tools/agents/scripts/__pycache__/toolcall_path_normalizer.cpython-312.pyc +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# MCP Router
|
|
2
2
|
|
|
3
|
-
> UAP v1.
|
|
3
|
+
> UAP v1.163
|
|
4
4
|
|
|
5
5
|
> **🏭 Where this fits:** CROSS-CUTTING — keeping the context window lean at every station of the [delivery pipeline](./DELIVERY_PIPELINE.md). In a normal agentic workflow every tool call dumps its full result into context, so mostly-irrelevant output crowds out the details your agent actually needs. **What it delivers:** a proxy that compresses tool output before it reaches the model — up to 98% fewer tokens on large results — so the agent keeps room for real work and you spend less per session.
|
|
6
6
|
|
package/docs/guides/MEMORY.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Memory System
|
|
2
2
|
|
|
3
|
-
> UAP v1.
|
|
3
|
+
> UAP v1.163
|
|
4
4
|
|
|
5
5
|
> **🏭 Where this fits:** INTAKE + FEEDBACK — the front and back doors of the [delivery pipeline](./DELIVERY_PIPELINE.md). At intake, a fresh agent forgets everything the last session learned and re-hallucinates scope; at feedback, nobody records the lesson, so the same mistake ships again next week. **What it delivers:** a persistent, searchable memory that hands each new agent the relevant past learnings on the way in, and captures durable lessons on the way out — so your team of agents gets smarter every run instead of starting from zero.
|
|
6
6
|
|
|
@@ -199,7 +199,7 @@ uap memory correct <search> [options]
|
|
|
199
199
|
```bash
|
|
200
200
|
uap memory correct "uses pgvector" \
|
|
201
201
|
--correction "uses Qdrant for semantic recall" \
|
|
202
|
-
--reason "
|
|
202
|
+
--reason "superseded by newer approach"
|
|
203
203
|
```
|
|
204
204
|
|
|
205
205
|
### Maintain
|
package/docs/guides/POLICIES.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Policies
|
|
2
2
|
|
|
3
|
-
> Applies to UAP v1.
|
|
3
|
+
> Applies to UAP v1.163
|
|
4
4
|
|
|
5
5
|
> **🏭 Where this fits:** CROSS-CUTTING — the executable rules bolted to every station of the [delivery pipeline](./DELIVERY_PIPELINE.md). In a normal agentic workflow the "rules" live in a prose prompt the model is free to ignore; that's how work escapes isolation, skips tests, or ships without review. **What it delivers:** each rule is a Python enforcer that actually inspects an operation and can *block* it before it runs — worktree isolation, test deltas, expert review, schema diffs, artifact hygiene, and more — so the guardrails hold instead of merely being suggested.
|
|
6
6
|
|
package/docs/guides/PROXY.md
CHANGED
|
@@ -51,16 +51,17 @@ the last session leaves — but it **never** kills a proxy that systemd manages
|
|
|
51
51
|
that other sessions are still using.
|
|
52
52
|
|
|
53
53
|
```
|
|
54
|
-
uap proxy [ensure | release | status | start | stop | restart | enable | disable]
|
|
54
|
+
uap proxy [ensure | release | status | start | stop | restart | enable | disable | dashboard [on|off]]
|
|
55
55
|
```
|
|
56
56
|
|
|
57
57
|
| Subcommand | What it does |
|
|
58
58
|
|---|---|
|
|
59
|
-
| `ensure` | Start the proxy if none is running, or **adopt** a running one; register this session as a client |
|
|
60
|
-
| `release` | Deregister this session; stop the proxy **only if** we spawned it as a plain process and no other client remains |
|
|
61
|
-
| `status` | Report whether
|
|
59
|
+
| `ensure` | Start the proxy if none is running, or **adopt** a running one; register this session as a client; start-or-adopt the dashboard |
|
|
60
|
+
| `release` | Deregister this session; stop the proxy (and dashboard) **only if** we spawned it as a plain process and no other client remains |
|
|
61
|
+
| `status` | Report whether the proxy and dashboard are running, how (systemd vs spawned), ports, URL, and client count (`--json` for machine-readable) |
|
|
62
62
|
| `start` / `stop` / `restart` | Explicit control (e.g. `restart` after changing `PROXY_*` in `.uap/proxy.env`) |
|
|
63
63
|
| `enable` / `disable` | Toggle `.uap.json` `proxy.autostart` so hooks auto-start it (or not) |
|
|
64
|
+
| `dashboard [on\|off]` | Show or toggle the ride-along dashboard (`.uap.json` `proxy.dashboard`) |
|
|
64
65
|
|
|
65
66
|
| Flag | Purpose |
|
|
66
67
|
|---|---|
|
|
@@ -68,8 +69,50 @@ uap proxy [ensure | release | status | start | stop | restart | enable | disable
|
|
|
68
69
|
| `--client-pid <n>` | Long-lived agent pid for liveness (hooks pass `$PPID`) |
|
|
69
70
|
| `--port <n>` | Proxy port (default `4000` / `$PROXY_PORT`) |
|
|
70
71
|
| `--if-enabled` | No-op unless `.uap.json` `proxy.autostart` is `true` (hook-safe) |
|
|
72
|
+
| `--no-dashboard` | Don't *start* the ride-along dashboard on this `ensure`/`start` (teardown still reaps a dashboard we own) |
|
|
71
73
|
| `--quiet` / `--json` | Suppress output (hooks) / machine-readable status |
|
|
72
74
|
|
|
75
|
+
### Ride-along dashboard
|
|
76
|
+
|
|
77
|
+
**The operational dashboard starts with the proxy** — no second command. `ensure`
|
|
78
|
+
and `start` also start-or-adopt `uap dashboard serve` (default
|
|
79
|
+
<http://localhost:3847>), concurrently with the proxy so session start isn't
|
|
80
|
+
serialized behind two health waits. Teardown follows ownership: a dashboard **we**
|
|
81
|
+
spawned stops when the last client leaves (`release`) or immediately on an
|
|
82
|
+
explicit `stop`; one you started yourself is adopted and **never** stopped. If a
|
|
83
|
+
foreign process holds the port, UAP declines to spawn (fast, no stall) and tells
|
|
84
|
+
you to run `uap dash serve` manually.
|
|
85
|
+
|
|
86
|
+
| Setting | Where | Default |
|
|
87
|
+
|---|---|---|
|
|
88
|
+
| enabled | `.uap.json` `proxy.dashboard` (bool or `{enabled, port, host}`) / `UAP_PROXY_DASHBOARD=0\|1` | on |
|
|
89
|
+
| port | `proxy.dashboard.port` / `UAP_DASH_PORT` | `3847` |
|
|
90
|
+
| host | `proxy.dashboard.host` / `UAP_DASH_HOST` | `localhost` |
|
|
91
|
+
| startup wait | `UAP_DASH_HEALTH_WAIT_MS` | `10000` |
|
|
92
|
+
|
|
93
|
+
Env wins over config. These govern the **ride-along** only — `uap dash serve`
|
|
94
|
+
still takes its own `--port`/`--host`.
|
|
95
|
+
|
|
96
|
+
**Identification.** Liveness is `GET /health`, which returns
|
|
97
|
+
`{"ok":true,"service":"uap-dashboard","port":…,"root":"<project dir>"}`. UAP adopts
|
|
98
|
+
a dashboard only when that marker is present *and* `root` matches the current
|
|
99
|
+
project — a dashboard is per-project (every panel reads its own working
|
|
100
|
+
directory), even though the proxy client registry is per-user. A dashboard from an
|
|
101
|
+
older UAP has no `/health`; it is recognised by its `UAP Dashboard` page title and
|
|
102
|
+
adopted as-is, since it cannot state which project it serves.
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
uap proxy dashboard # is it on, and where?
|
|
106
|
+
uap proxy dashboard off # opt this project out
|
|
107
|
+
uap proxy start --no-dashboard
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Security note.** Because the dashboard is now up for the whole session rather
|
|
111
|
+
than only while you run it by hand, the page carrying the policy-mutation token is
|
|
112
|
+
served same-origin only, WebSocket upgrades require a same-origin `Origin`, and the
|
|
113
|
+
token is not echoed into the ride-along log. Binding beyond loopback
|
|
114
|
+
(`UAP_DASH_HOST`) is reported with a warning — set `UAP_DASHBOARD_TOKEN` if you do.
|
|
115
|
+
|
|
73
116
|
**How it's managed.** When available, the proxy runs as the systemd unit
|
|
74
117
|
`uap-anthropic-proxy.service`, reading its environment from
|
|
75
118
|
`~/.config/uap/anthropic-proxy.env`; a plain spawned proxy seeds the same file
|
package/docs/guides/SANDBOX.md
CHANGED
|
@@ -65,7 +65,7 @@ it and calls `_strip_sandbox_unreachable_tools` (`anthropic_proxy.py:4393`), rem
|
|
|
65
65
|
tool whose name starts with a prefix in `PROXY_SANDBOX_UNREACHABLE_PREFIXES` (default
|
|
66
66
|
`mcp__claude-in-chrome__`). The model never sees the unreachable browser tools and falls
|
|
67
67
|
back to `WebFetch` / local reads instead. (This is the "strip unreachable browser MCP tools
|
|
68
|
-
from sandboxed sessions"
|
|
68
|
+
from sandboxed sessions" behavior.)
|
|
69
69
|
|
|
70
70
|
## Escape hatches (operator-only)
|
|
71
71
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Worktree Workflow
|
|
2
2
|
|
|
3
|
-
> Applies to UAP v1.
|
|
3
|
+
> Applies to UAP v1.163
|
|
4
4
|
|
|
5
5
|
> **🏭 Where this fits:** ISOLATION — the station where a normal agentic workflow smears half-finished edits across `main`, clobbers files, and lets parallel agents collide into corrupt merge state. **What it delivers:** every agent works on its own branch in its own checkout, so the project root stays clean, each unit of work has a tidy PR boundary, and any number of agents can run at once without stepping on each other.
|
|
6
6
|
|
package/docs/reference/CLI.md
CHANGED
|
@@ -126,7 +126,7 @@ uap setup [options]
|
|
|
126
126
|
| `--no-self-update` | Skip the automatic UAP CLI version check / self-update (also `UAP_NO_SELF_UPDATE=1`) |
|
|
127
127
|
| `--systemd-services` | Scaffold user systemd services for llama.cpp + anthropic proxy |
|
|
128
128
|
| `-d, --project-dir <path>` | Target project directory (defaults to cwd) |
|
|
129
|
-
| `-i, --interactive` | Run the guided wizard (
|
|
129
|
+
| `-i, --interactive` | Run the guided wizard (the default) |
|
|
130
130
|
|
|
131
131
|
The guided wizard (default) prompts for harnesses, memory tiers, coordination,
|
|
132
132
|
patterns, policies, model provider/profile, hooks, and browser — with smart
|
|
@@ -534,7 +534,18 @@ Anthropic-compatible gateway in front of a local llama.cpp/Qwen). Hooks
|
|
|
534
534
|
session leaves — but it never kills a proxy that systemd manages or that other
|
|
535
535
|
sessions still use.
|
|
536
536
|
|
|
537
|
-
`uap proxy [ensure | release | status | start | stop | restart | enable | disable]`
|
|
537
|
+
`uap proxy [ensure | release | status | start | stop | restart | enable | disable | dashboard [on|off]]`
|
|
538
|
+
|
|
539
|
+
The **operational dashboard rides along**: `ensure`/`start` also start-or-adopt
|
|
540
|
+
`uap dashboard serve` (default <http://localhost:3847>), so monitoring never needs
|
|
541
|
+
a second command. `release` stops it when the last client leaves; `stop` shuts it
|
|
542
|
+
down immediately (ownership only — it does not consult the client count). A
|
|
543
|
+
dashboard you started yourself, or one serving a different project, is never
|
|
544
|
+
touched. Opt out per project with `uap proxy dashboard off`, per `ensure`/`start`
|
|
545
|
+
with `--no-dashboard`, or globally with `UAP_PROXY_DASHBOARD=0`.
|
|
546
|
+
Ports/hosts: `UAP_DASH_PORT` (3847), `UAP_DASH_HOST` (localhost),
|
|
547
|
+
`UAP_DASH_HEALTH_WAIT_MS` (10000) — these govern the ride-along, not
|
|
548
|
+
`uap dash serve`.
|
|
538
549
|
|
|
539
550
|
| Flag | Purpose |
|
|
540
551
|
|------|---------|
|
|
@@ -542,11 +553,13 @@ sessions still use.
|
|
|
542
553
|
| `--client-pid <n>` | Long-lived agent pid for liveness (hooks pass `$PPID`) |
|
|
543
554
|
| `--port <n>` | Proxy port (default 4000 / `$PROXY_PORT`) |
|
|
544
555
|
| `--if-enabled` | No-op unless `.uap.json` `proxy.autostart` is true (hook-safe) |
|
|
556
|
+
| `--no-dashboard` | Don't start the ride-along dashboard on this `ensure`/`start` |
|
|
545
557
|
| `--quiet` / `--json` | Suppress output (hooks) / machine-readable status |
|
|
546
558
|
|
|
547
559
|
```bash
|
|
548
|
-
uap proxy status --json
|
|
560
|
+
uap proxy status --json # includes a `dashboard` block (port, url, healthy, owner)
|
|
549
561
|
uap proxy restart # e.g. after changing PROXY_* in .uap/proxy.env
|
|
562
|
+
uap proxy dashboard off # opt out of the ride-along dashboard
|
|
550
563
|
```
|
|
551
564
|
|
|
552
565
|
The proxy binds `127.0.0.1` by default; see the proxy `PROXY_*` settings in the
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Configuration Reference
|
|
2
2
|
|
|
3
|
-
> Universal Agent Protocol (UAP) v1.
|
|
3
|
+
> Universal Agent Protocol (UAP) v1.163
|
|
4
4
|
|
|
5
5
|
> **🏭 Where this fits:** Cross-cutting — the settings that tune every station.
|
|
6
6
|
> **What it delivers:** the dials that decide how your [delivery pipeline](../guides/DELIVERY_PIPELINE.md)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Feature Catalog
|
|
2
2
|
|
|
3
|
-
> Universal Agent Protocol (UAP) v1.
|
|
3
|
+
> Universal Agent Protocol (UAP) v1.163
|
|
4
4
|
|
|
5
5
|
> **🏭 Where this fits:** Every station on the line — this catalog is the parts list for the whole factory. **What it delivers:** each feature below is mapped to the stage of your [delivery pipeline](../guides/DELIVERY_PIPELINE.md) it protects, so you can see exactly where your agent's work stops being plausible-looking and starts being genuinely shippable.
|
|
6
6
|
|
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|
|
@@ -58,4 +58,13 @@ if [ -d "$BACKUP_DIR" ]; then
|
|
|
58
58
|
find "$BACKUP_DIR" -maxdepth 1 -mindepth 1 -type d -mtime +7 -exec rm -rf {} \; 2>/dev/null || true
|
|
59
59
|
fi
|
|
60
60
|
|
|
61
|
+
# Session-scoped proxy + dashboard release: stop them ONLY if THIS session
|
|
62
|
+
# started them and no other client remains (adopted/externally-managed services
|
|
63
|
+
# are never killed; other active clients keep them alive). Fail-open; never
|
|
64
|
+
# blocks exit.
|
|
65
|
+
if command -v uap >/dev/null 2>&1; then
|
|
66
|
+
_uap_pc="${CLAUDE_SESSION_ID:-${FACTORY_SESSION_ID:-${CURSOR_SESSION_ID:-${UAP_SESSION_ID:-ppid-$PPID}}}}"
|
|
67
|
+
( cd "$PROJECT_DIR" 2>/dev/null && timeout 20 uap proxy release --if-enabled --quiet --client "$_uap_pc" --client-pid "$PPID" ) >/dev/null 2>&1 || true
|
|
68
|
+
fi
|
|
69
|
+
|
|
61
70
|
exit 0
|
|
@@ -250,6 +250,16 @@ if command -v uap >/dev/null 2>&1; then
|
|
|
250
250
|
fi
|
|
251
251
|
fi
|
|
252
252
|
|
|
253
|
+
# Session-scoped proxy autostart (opt-in via .uap.json proxy.autostart). Starts
|
|
254
|
+
# the proxy if none is running, or ADOPTS an already-running one, and brings the
|
|
255
|
+
# operational dashboard up with it (http://localhost:3847 — opt out with
|
|
256
|
+
# `uap proxy dashboard off`). Reference-counted: released only when the last
|
|
257
|
+
# client leaves. Fail-open, never blocks.
|
|
258
|
+
if command -v uap >/dev/null 2>&1; then
|
|
259
|
+
_uap_pc="${CLAUDE_SESSION_ID:-${FACTORY_SESSION_ID:-${CURSOR_SESSION_ID:-${UAP_SESSION_ID:-ppid-$PPID}}}}"
|
|
260
|
+
( cd "$PROJECT_DIR" 2>/dev/null && timeout 30 uap proxy ensure --if-enabled --quiet --client "$_uap_pc" --client-pid "$PPID" ) >/dev/null 2>&1 || true
|
|
261
|
+
fi
|
|
262
|
+
|
|
253
263
|
if [ -n "$output" ]; then
|
|
254
264
|
echo "$output"
|
|
255
265
|
fi
|