@miller-tech/uap 1.31.0 → 1.33.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.
Files changed (37) hide show
  1. package/README.md +10 -3
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/bin/cli.js +2 -0
  4. package/dist/bin/cli.js.map +1 -1
  5. package/dist/cli/deliver.d.ts +19 -0
  6. package/dist/cli/deliver.d.ts.map +1 -1
  7. package/dist/cli/deliver.js +66 -2
  8. package/dist/cli/deliver.js.map +1 -1
  9. package/dist/delivery/applier.d.ts +36 -3
  10. package/dist/delivery/applier.d.ts.map +1 -1
  11. package/dist/delivery/applier.js +154 -7
  12. package/dist/delivery/applier.js.map +1 -1
  13. package/dist/delivery/auto-optimizer.d.ts +43 -0
  14. package/dist/delivery/auto-optimizer.d.ts.map +1 -0
  15. package/dist/delivery/auto-optimizer.js +70 -0
  16. package/dist/delivery/auto-optimizer.js.map +1 -0
  17. package/dist/delivery/convergence-loop.d.ts +7 -0
  18. package/dist/delivery/convergence-loop.d.ts.map +1 -1
  19. package/dist/delivery/convergence-loop.js +44 -9
  20. package/dist/delivery/convergence-loop.js.map +1 -1
  21. package/dist/delivery/explorer.d.ts +4 -2
  22. package/dist/delivery/explorer.d.ts.map +1 -1
  23. package/dist/delivery/explorer.js +2 -2
  24. package/dist/delivery/explorer.js.map +1 -1
  25. package/dist/delivery/index.d.ts +2 -1
  26. package/dist/delivery/index.d.ts.map +1 -1
  27. package/dist/delivery/index.js +2 -1
  28. package/dist/delivery/index.js.map +1 -1
  29. package/dist/memory/dynamic-retrieval.d.ts +8 -7
  30. package/dist/memory/dynamic-retrieval.d.ts.map +1 -1
  31. package/dist/memory/dynamic-retrieval.js +8 -52
  32. package/dist/memory/dynamic-retrieval.js.map +1 -1
  33. package/dist/utils/query-complexity.d.ts +25 -0
  34. package/dist/utils/query-complexity.d.ts.map +1 -0
  35. package/dist/utils/query-complexity.js +68 -0
  36. package/dist/utils/query-complexity.js.map +1 -0
  37. package/package.json +1 -1
package/README.md CHANGED
@@ -91,7 +91,7 @@ uap setup -p all
91
91
  | Browser | 1 module | Stealth web automation via CloakBrowser (Playwright drop-in) |
92
92
  | MCP Router | 11 modules | 2-tool meta-router + expert-consultation registry (98% token savings) |
93
93
  | Models | 10 modules | Multi-model routing, planning, execution, validation, 13 model profiles |
94
- | Delivery Harness | 11 modules | `uap deliver`: convergence loop, best-of-N explorer, critic, practice recall, escalation, ideation seeds, HALO tracing, coordination + deploy queueing |
94
+ | Delivery Harness | 12 modules | `uap deliver`: convergence loop, best-of-N explorer, critic, practice recall, escalation, ideation seeds, HALO tracing, coordination + deploy queueing |
95
95
  | Patterns | 23 patterns | Battle-tested workflows from Terminal-Bench 2.0 |
96
96
  | Droids | 30 experts | Full SDLC expert stack: strategy, design, build, review, release, ops ([reference](docs/reference/EXPERT_DROIDS.md)) |
97
97
  | Expert Orchestrator | 1 module | Adaptive droid-chain selection across plan→design→implement→review→release |
@@ -373,8 +373,10 @@ the model's say-so.
373
373
  8. **Coordination** (`--coordinate`) — registers the run with the multi-agent coordination layer (`uap agent`): announces work on the project, warns about overlapping agents, heartbeats every turn, completes/deregisters on exit.
374
374
  9. **Deploy batching** (`--deploy`) — on success, queues a commit of the applied files into the deploy batcher; execute with `uap deploy flush`.
375
375
  10. **`--optimize`** — one switch for every convergence aid: 4 candidates/turn + critic + practices + escalation + ideation + HALO + coordination (deploy stays explicit).
376
+ 11. **Test protection (default)** — pre-existing test/spec files are snapshotted at loop start (case-folded, symlink-alias-aware) and the applier refuses model writes to them, with steering feedback and a prompt warning; test-runner/compiler configs (`vitest.config.*`, `tsconfig*.json`, `jest.config.*`, `pytest.ini`, …) are blocked too, closing gate-rigging by indirection. New test files remain allowed. Opt out with `--no-protect-tests`.
377
+ 12. **Dynamic optimization (default)** — every instruction is classified for complexity (simple / moderate / complex); non-trivial requests automatically get the aids that improve outcomes (moderate → exploration ×3 + critic + practices + HALO + coordination; complex → the full `--optimize` stack). Any explicit aid flag, `--no-auto`, or `UAP_DELIVER_AUTO=0` disables auto mode. Deploy queueing is never auto-enabled.
376
378
 
377
- ### Components (11 modules)
379
+ ### Components (12 modules)
378
380
 
379
381
  | Component | File | Purpose |
380
382
  | ----------------- | ------------------------------------- | ----------------------------------------------------------------- |
@@ -389,6 +391,7 @@ the model's say-so.
389
391
  | Ideation Seeder | `src/delivery/ideation.ts` | Divergent strategy seeds (generated or from curated ideas) |
390
392
  | HALO Tracer | `src/delivery/halo-trace.ts` | Run/turn spans for `uap harness analyze` |
391
393
  | Run Coordinator | `src/delivery/run-coordinator.ts` | `uap agent` registration/heartbeat + `uap deploy` commit queueing |
394
+ | Auto-Optimizer | `src/delivery/auto-optimizer.ts` | Complexity-classified dynamic activation of convergence aids |
392
395
 
393
396
  The model is reached through an OpenAI-compatible client
394
397
  (`src/models/openai-compat-client.ts`) — the local inference gateway,
@@ -436,12 +439,16 @@ uap deliver "..." --ideate --candidates 4 --deploy
436
439
  | `--coordinate` | Register with `uap agent`: announce, heartbeat, overlap detection |
437
440
  | `--deploy` | On success, queue a commit into the deploy batcher (`uap deploy`) |
438
441
  | `--optimize` | Enable every convergence aid (deploy excluded) |
442
+ | `--no-auto` | Disable dynamic optimization (auto-classified aids are the default) |
443
+ | `--no-protect-tests` | Allow modifying pre-existing test files (protected by default) |
439
444
  | `--endpoint <url>` | Override the model endpoint (OpenAI-compatible `/v1`) |
440
445
  | `--dry-run` / `--json` | Show the plan only / emit machine-readable result |
441
446
 
442
447
  Model output is never executed — only written as files and checked by the
443
448
  gates. The applier refuses writes to executed config (`package.json`,
444
- lockfiles), `.git`/hooks/CI paths, and symlinks that escape the project root.
449
+ lockfiles), `.git`/hooks/CI paths, symlinks that escape the project root,
450
+ and pre-existing test/spec files (gate integrity — the spec defines "done",
451
+ so the model must satisfy it, not rewrite it).
445
452
 
446
453
  ---
447
454