@miller-tech/uap 1.221.0 → 2.0.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 (238) hide show
  1. package/README.md +19 -9
  2. package/config/exl3-profiles/qwen38-27b-exl3.env +68 -0
  3. package/config/llama-profiles/qwen38-27b-dflash2.env +6 -1
  4. package/dist/.tsbuildinfo +1 -1
  5. package/dist/benchmarks/paired/adapter.d.ts +15 -0
  6. package/dist/benchmarks/paired/adapter.d.ts.map +1 -1
  7. package/dist/benchmarks/paired/adapter.js +22 -1
  8. package/dist/benchmarks/paired/adapter.js.map +1 -1
  9. package/dist/bin/cli.js +20 -24
  10. package/dist/bin/cli.js.map +1 -1
  11. package/dist/cli/deliver.d.ts +34 -0
  12. package/dist/cli/deliver.d.ts.map +1 -1
  13. package/dist/cli/deliver.js +147 -20
  14. package/dist/cli/deliver.js.map +1 -1
  15. package/dist/cli/guided-setup.d.ts.map +1 -1
  16. package/dist/cli/guided-setup.js +15 -0
  17. package/dist/cli/guided-setup.js.map +1 -1
  18. package/dist/cli/init.d.ts.map +1 -1
  19. package/dist/cli/init.js +3 -0
  20. package/dist/cli/init.js.map +1 -1
  21. package/dist/cli/plan.d.ts.map +1 -1
  22. package/dist/cli/plan.js +8 -2
  23. package/dist/cli/plan.js.map +1 -1
  24. package/dist/cli/policy.d.ts.map +1 -1
  25. package/dist/cli/policy.js +104 -2
  26. package/dist/cli/policy.js.map +1 -1
  27. package/dist/cli/quality.d.ts +11 -0
  28. package/dist/cli/quality.d.ts.map +1 -0
  29. package/dist/cli/quality.js +213 -0
  30. package/dist/cli/quality.js.map +1 -0
  31. package/dist/cli/wizard-config.d.ts.map +1 -1
  32. package/dist/cli/wizard-config.js +19 -9
  33. package/dist/cli/wizard-config.js.map +1 -1
  34. package/dist/cli/worktree.d.ts.map +1 -1
  35. package/dist/cli/worktree.js +8 -1
  36. package/dist/cli/worktree.js.map +1 -1
  37. package/dist/dashboard/savings.d.ts +1 -4
  38. package/dist/dashboard/savings.d.ts.map +1 -1
  39. package/dist/dashboard/savings.js +2 -52
  40. package/dist/dashboard/savings.js.map +1 -1
  41. package/dist/delivery/acceptance-judge.d.ts +10 -0
  42. package/dist/delivery/acceptance-judge.d.ts.map +1 -1
  43. package/dist/delivery/acceptance-judge.js +45 -3
  44. package/dist/delivery/acceptance-judge.js.map +1 -1
  45. package/dist/delivery/agentic-executor.d.ts +12 -1
  46. package/dist/delivery/agentic-executor.d.ts.map +1 -1
  47. package/dist/delivery/agentic-executor.js +25 -5
  48. package/dist/delivery/agentic-executor.js.map +1 -1
  49. package/dist/delivery/bash-sweep.d.ts +12 -0
  50. package/dist/delivery/bash-sweep.d.ts.map +1 -1
  51. package/dist/delivery/bash-sweep.js +8 -1
  52. package/dist/delivery/bash-sweep.js.map +1 -1
  53. package/dist/delivery/convergence-loop.d.ts.map +1 -1
  54. package/dist/delivery/convergence-loop.js +6 -4
  55. package/dist/delivery/convergence-loop.js.map +1 -1
  56. package/dist/delivery/execution-gate.d.ts +1 -1
  57. package/dist/delivery/execution-gate.d.ts.map +1 -1
  58. package/dist/delivery/execution-gate.js +248 -5
  59. package/dist/delivery/execution-gate.js.map +1 -1
  60. package/dist/delivery/snapshot.d.ts +16 -0
  61. package/dist/delivery/snapshot.d.ts.map +1 -1
  62. package/dist/delivery/snapshot.js +113 -2
  63. package/dist/delivery/snapshot.js.map +1 -1
  64. package/dist/delivery/user-validation.d.ts.map +1 -1
  65. package/dist/delivery/user-validation.js +55 -10
  66. package/dist/delivery/user-validation.js.map +1 -1
  67. package/dist/delivery/verifier-ladder.d.ts +24 -0
  68. package/dist/delivery/verifier-ladder.d.ts.map +1 -1
  69. package/dist/delivery/verifier-ladder.js +119 -2
  70. package/dist/delivery/verifier-ladder.js.map +1 -1
  71. package/dist/delivery/visual-gate.d.ts +24 -0
  72. package/dist/delivery/visual-gate.d.ts.map +1 -1
  73. package/dist/delivery/visual-gate.js +70 -9
  74. package/dist/delivery/visual-gate.js.map +1 -1
  75. package/dist/generators/claude-md.js +17 -4
  76. package/dist/generators/claude-md.js.map +1 -1
  77. package/dist/policies/liveness.d.ts +105 -0
  78. package/dist/policies/liveness.d.ts.map +1 -0
  79. package/dist/policies/liveness.js +251 -0
  80. package/dist/policies/liveness.js.map +1 -0
  81. package/dist/policies/policy-memory.d.ts.map +1 -1
  82. package/dist/policies/policy-memory.js +3 -4
  83. package/dist/policies/policy-memory.js.map +1 -1
  84. package/dist/quality/baseline.d.ts +29 -0
  85. package/dist/quality/baseline.d.ts.map +1 -0
  86. package/dist/quality/baseline.js +79 -0
  87. package/dist/quality/baseline.js.map +1 -0
  88. package/dist/quality/complexity.d.ts +38 -0
  89. package/dist/quality/complexity.d.ts.map +1 -0
  90. package/dist/quality/complexity.js +239 -0
  91. package/dist/quality/complexity.js.map +1 -0
  92. package/dist/quality/config.d.ts +40 -0
  93. package/dist/quality/config.d.ts.map +1 -0
  94. package/dist/quality/config.js +77 -0
  95. package/dist/quality/config.js.map +1 -0
  96. package/dist/quality/crap.d.ts +11 -0
  97. package/dist/quality/crap.d.ts.map +1 -0
  98. package/dist/quality/crap.js +54 -0
  99. package/dist/quality/crap.js.map +1 -0
  100. package/dist/quality/languages.d.ts +25 -0
  101. package/dist/quality/languages.d.ts.map +1 -0
  102. package/dist/quality/languages.js +150 -0
  103. package/dist/quality/languages.js.map +1 -0
  104. package/dist/quality/report.d.ts +38 -0
  105. package/dist/quality/report.d.ts.map +1 -0
  106. package/dist/quality/report.js +251 -0
  107. package/dist/quality/report.js.map +1 -0
  108. package/dist/quality/scanner.d.ts +32 -0
  109. package/dist/quality/scanner.d.ts.map +1 -0
  110. package/dist/quality/scanner.js +127 -0
  111. package/dist/quality/scanner.js.map +1 -0
  112. package/dist/quality/tools.d.ts +28 -0
  113. package/dist/quality/tools.d.ts.map +1 -0
  114. package/dist/quality/tools.js +189 -0
  115. package/dist/quality/tools.js.map +1 -0
  116. package/dist/types/config.d.ts +148 -0
  117. package/dist/types/config.d.ts.map +1 -1
  118. package/dist/types/config.js +35 -0
  119. package/dist/types/config.js.map +1 -1
  120. package/docs/ATTRIBUTION.md +0 -1
  121. package/docs/INDEX.md +38 -4
  122. package/docs/analysis/MARKET_POSITION.md +179 -0
  123. package/docs/architecture/OVERVIEW.md +82 -18
  124. package/docs/architecture/PROTOCOL.md +1 -1
  125. package/docs/benchmarks/PAIRED_FINDINGS.md +106 -0
  126. package/docs/benchmarks/PAIRED_HARNESS.md +16 -0
  127. package/docs/benchmarks/README.md +59 -0
  128. package/docs/design/UAP_REACTOR.md +0 -1
  129. package/docs/getting-started/INSTALLATION.md +1 -1
  130. package/docs/guides/AUTOMATIC.md +0 -14
  131. package/docs/guides/AUTOMATIC_FEATURES.md +1 -9
  132. package/docs/guides/COORDINATION.md +1 -1
  133. package/docs/guides/DELIVERY_PIPELINE.md +5 -0
  134. package/docs/guides/DEPLOY_BATCHING.md +1 -1
  135. package/docs/guides/DROIDS_AND_SKILLS.md +1 -1
  136. package/docs/guides/LOCAL_MODELS.md +6 -1
  137. package/docs/guides/MCP_ROUTER.md +1 -1
  138. package/docs/guides/MEMORY.md +1 -1
  139. package/docs/guides/MULTI_MODEL.md +1 -1
  140. package/docs/guides/ORCHESTRATOR.md +1 -1
  141. package/docs/guides/POLICIES.md +19 -3
  142. package/docs/guides/QWEN38_EXL3.md +114 -0
  143. package/docs/guides/WORKTREE_WORKFLOW.md +45 -1
  144. package/docs/integrations/MCP_ROUTER.md +1 -4
  145. package/docs/plans/deliver-hardening-plan-2026-07-13.md +173 -0
  146. package/docs/plans/deliver-hardening-review-response-2026-07-13.md +180 -0
  147. package/docs/plans/k3-uap-uplift-validation.md +216 -0
  148. package/docs/plans/qwen38-uap-retest-plan.md +196 -0
  149. package/docs/reference/API.md +1 -1
  150. package/docs/reference/CLI.md +49 -14
  151. package/docs/reference/COMPARISON.md +248 -0
  152. package/docs/reference/CONFIGURATION.md +1 -3
  153. package/docs/reference/DATABASE_SCHEMA.md +1 -1
  154. package/docs/reference/FEATURES.md +3 -3
  155. package/docs/reference/PATTERNS.md +1 -1
  156. package/docs/reference/PLATFORMS.md +1 -1
  157. package/package.json +2 -2
  158. package/scripts/maintenance/update-skills.py +0 -22
  159. package/scripts/maintenance/verify-compliance.sh +3 -3
  160. package/src/policies/enforcers/__pycache__/_common.cpython-312.pyc +0 -0
  161. package/src/policies/enforcers/__pycache__/quality_metrics_gate.cpython-312.pyc +0 -0
  162. package/src/policies/enforcers/adr_guard.py +0 -0
  163. package/src/policies/enforcers/bearer_lockdown.py +0 -0
  164. package/src/policies/enforcers/branch_freshness.py +0 -0
  165. package/src/policies/enforcers/design_token_gate.py +0 -0
  166. package/src/policies/enforcers/enforcement_self_protect.py +70 -0
  167. package/src/policies/enforcers/expert_review_required.py +22 -0
  168. package/src/policies/enforcers/iac_plan_destruction_check.py +0 -0
  169. package/src/policies/enforcers/quality_metrics_gate.py +447 -0
  170. package/src/policies/enforcers/ship_loop_gate.py +0 -0
  171. package/src/policies/enforcers/validate_plan_on_change.py +0 -0
  172. package/src/policies/enforcers/visual_verification.py +0 -0
  173. package/src/policies/enforcers/workdir_scope.py +0 -0
  174. package/src/policies/schemas/policies/expert-review-required.md +9 -1
  175. package/src/policies/schemas/policies/quality-metrics-gate.md +74 -0
  176. package/templates/CLAUDE.template.md +1 -1
  177. package/templates/hooks/__pycache__/deliver_autoroute.cpython-312.pyc +0 -0
  178. package/templates/hooks/pre-tool-use-bash.sh +50 -3
  179. package/templates/hooks/pre-tool-use-edit-write.sh +31 -0
  180. package/templates/hooks/session-start.sh +15 -0
  181. package/templates/hooks/uap-policy-gate.sh +187 -5
  182. package/templates/stryker.config.json +14 -0
  183. package/tools/agents/scripts/__pycache__/toolcall_path_normalizer.cpython-312.pyc +0 -0
  184. package/tools/agents/scripts/anthropic_proxy.py +254 -28
  185. package/tools/agents/tests/run_acceptance.py +0 -0
  186. package/tools/agents/tests/test_client_disconnect.py +0 -0
  187. package/tools/agents/tests/test_cycle_break_exploration.py +0 -0
  188. package/tools/agents/tests/test_deferral_break.py +0 -0
  189. package/tools/agents/tests/test_delivery_enforcement_all_langs.py +0 -0
  190. package/tools/agents/tests/test_delivery_enforcement_exemptions.py +0 -0
  191. package/tools/agents/tests/test_delivery_enforcement_filepath.py +0 -0
  192. package/tools/agents/tests/test_delivery_enforcement_web_and_bash.py +0 -0
  193. package/tools/agents/tests/test_delivery_enforcement_worktree.py +0 -0
  194. package/tools/agents/tests/test_delivery_enforcement_write_complexity.py +0 -0
  195. package/tools/agents/tests/test_disconnect_watcher.py +0 -0
  196. package/tools/agents/tests/test_doubling_break.py +0 -0
  197. package/tools/agents/tests/test_empty_maxtokens_recovery.py +0 -0
  198. package/tools/agents/tests/test_empty_tool_loop_break.py +0 -0
  199. package/tools/agents/tests/test_enforcement_self_protect.py +90 -0
  200. package/tools/agents/tests/test_enforcer_escape_hatches.py +0 -0
  201. package/tools/agents/tests/test_error_loop_break.py +0 -0
  202. package/tools/agents/tests/test_expert_review_pr_scope.py +13 -5
  203. package/tools/agents/tests/test_fastpath_config.py +0 -0
  204. package/tools/agents/tests/test_finalize_suppression.py +0 -0
  205. package/tools/agents/tests/test_gate_evidence.py +0 -0
  206. package/tools/agents/tests/test_gate_failclosed_indirection.py +0 -0
  207. package/tools/agents/tests/test_gate_integrity.py +0 -0
  208. package/tools/agents/tests/test_live_deliver_kill.py +0 -0
  209. package/tools/agents/tests/test_malformed_unclosed_think.py +0 -0
  210. package/tools/agents/tests/test_mandate_beats_recon.py +0 -0
  211. package/tools/agents/tests/test_mandate_deliver.py +0 -0
  212. package/tools/agents/tests/test_non_stream_resp_log.py +0 -0
  213. package/tools/agents/tests/test_output_token_ceilings.py +0 -0
  214. package/tools/agents/tests/test_overflow_truncate_count_tokens.py +0 -0
  215. package/tools/agents/tests/test_path_containment.py +0 -0
  216. package/tools/agents/tests/test_path_normalizer_hardened.py +0 -0
  217. package/tools/agents/tests/test_repeat_call_guard.py +0 -0
  218. package/tools/agents/tests/test_repeat_guard.py +0 -0
  219. package/tools/agents/tests/test_session_admission.py +0 -0
  220. package/tools/agents/tests/test_stream_heartbeat.py +0 -0
  221. package/tools/agents/tests/test_stream_thinking_deltas.py +405 -0
  222. package/tools/agents/tests/test_stuck_break_hard.py +0 -0
  223. package/tools/agents/tests/test_stuck_break_reattach.py +0 -0
  224. package/tools/agents/tests/test_turn_count_breaker_periodic.py +0 -0
  225. package/tools/agents/tests/test_upstream_chokepoint.py +0 -0
  226. package/tools/agents/tests/test_upstream_model_aliases.py +0 -0
  227. package/tools/agents/tests/test_validate_plan_gate.py +0 -0
  228. package/tools/agents/tests/test_vision_passthrough.py +0 -0
  229. package/tools/agents/tests/test_workdir_scope_enforcer.py +0 -0
  230. package/dist/cli/rtk.d.ts +0 -34
  231. package/dist/cli/rtk.d.ts.map +0 -1
  232. package/dist/cli/rtk.js +0 -401
  233. package/dist/cli/rtk.js.map +0 -1
  234. package/docs/integrations/RTK.md +0 -113
  235. package/scripts/setup/install-rtk.sh +0 -184
  236. package/src/policies/enforcers/rtk_wrap.py +0 -205
  237. package/src/policies/schemas/policies/rtk-wrap.md +0 -50
  238. package/tools/agents/tests/test_rtk_wrap.py +0 -151
package/README.md CHANGED
@@ -6,10 +6,10 @@
6
6
 
7
7
  [![npm](https://img.shields.io/npm/v/@miller-tech/uap?color=blue&label=npm)](https://www.npmjs.com/package/@miller-tech/uap)
8
8
  [![Node](https://img.shields.io/badge/node-%3E%3D18-brightgreen)](https://nodejs.org)
9
- [![Tests](https://img.shields.io/badge/tests-170%2B_suites-brightgreen)](#testing)
9
+ [![Tests](https://img.shields.io/badge/tests-450%2B_suites-brightgreen)](#testing)
10
10
  [![License](https://img.shields.io/badge/license-MIT-black)](LICENSE)
11
11
 
12
- `v1.163` · 220+ modules · 200+ test suites · 9 agent harnesses
12
+ `v1.224.0` · 367 TypeScript modules across 26 subsystems · 459 vitest suites (+ a ~1,200-test Python enforcer/proxy suite) · 9 agent harnesses
13
13
 
14
14
  [Quickstart](#quickstart) · [Why UAP?](#why-uap) · [The delivery pipeline](docs/guides/DELIVERY_PIPELINE.md) · [`uap deliver`](#the-deliver-harness) · [Docs](docs/INDEX.md)
15
15
 
@@ -76,6 +76,8 @@ What happens under the hood:
76
76
 
77
77
  It works with frontier models *and* local models (llama.cpp / Qwen) served over the Anthropic Messages API. See **[docs/guides/DELIVER.md](docs/guides/DELIVER.md)**.
78
78
 
79
+ Hardened for shared floors (v1.224): rollback is scoped to the run's own write-set (a shared-worktree rollback can't revert another agent's work), projects can declare extra gates in `delivery.gates[]`, the execution gate is polyglot (Python packages, native binaries), and `delivery.model`/`routing`/`criticality` in `.uap.json` steer model choice — with root-owned, expiring operator overrides for emergencies.
80
+
79
81
  ---
80
82
 
81
83
  ## The line, station by station
@@ -91,7 +93,7 @@ It works with frontier models *and* local models (llama.cpp / Qwen) served over
91
93
  | **Shipping** | Regressions, red CI, skipped version bumps | Worktree→PR flow, version gates, CI feedback watcher |
92
94
  | **Feedback** | The same mistake every session | Memory promotion, pattern learning, session analysis |
93
95
 
94
- Running the whole length of the floor: **policy gates** (24 executable enforcers that *block* non-compliant tool calls — worktree, test, schema-diff, expert-review, delivery-enforcement…) and the **MCP Router** (keeps the context window lean). Full catalog: **[docs/reference/FEATURES.md](docs/reference/FEATURES.md)**.
96
+ Running the whole length of the floor: **policy gates** (32 executable enforcers that *block* non-compliant tool calls — worktree, test, schema-diff, expert-review, delivery-enforcement, quality-metrics, design-token, visual-verification…), the **quality-metrics gate** (deterministic complexity/coverage/mutation budgets with a ratchet baseline, so standards can only tighten), and the **MCP Router** (keeps the context window lean). Full catalog: **[docs/reference/FEATURES.md](docs/reference/FEATURES.md)**.
95
97
 
96
98
  ---
97
99
 
@@ -109,14 +111,16 @@ UAP installs hooks into your agent harness, then mediates every tool call throug
109
111
  ┌─────────────────────────────────────────────────────────────┐
110
112
  │ UAP CLI (uap) │
111
113
  │ setup · memory · deliver · verify · worktree · policy │
112
- │ task · coord · droids · model · mcp-router · design … │
114
+ │ quality · plan · fidelity · interaction · task · coord · │
115
+ │ droids · model · mcp-router · proxy · orchestrator · │
116
+ │ self-harness · tune · design · principles · bench … │
113
117
  └──┬─────────┬──────────┬──────────┬──────────┬───────────────┘
114
118
  ▼ ▼ ▼ ▼ ▼
115
119
  Memory Policy MCP Router Delivery Coordination
116
- 4 tiers 24 gates compression + verify + deploy batch
120
+ 4 tiers 32 gates compression + verify + deploy batch
117
121
  ```
118
122
 
119
- - **30+ CLI commands** across 18 source subsystems (220+ TypeScript modules).
123
+ - **60 CLI commands** across 26 source subsystems (367 TypeScript modules).
120
124
  - Deep dive: **[docs/architecture/OVERVIEW.md](docs/architecture/OVERVIEW.md)** · protocol spec: **[docs/architecture/PROTOCOL.md](docs/architecture/PROTOCOL.md)**.
121
125
 
122
126
  ---
@@ -187,11 +191,17 @@ Start at the **[documentation index](docs/INDEX.md)**.
187
191
 
188
192
  ```bash
189
193
  npm install
190
- npm run build # TypeScript compile
191
- npm test # vitest — 170+ suites
192
- npm run bench # benchmark suite
194
+ npm run build # TypeScript compile
195
+ npm test # vitest — 459 suites (~5,000 tests)
196
+ npm run test:enforcers # Python policy-enforcer suite (~1,200 tests)
197
+ npm run bench # benchmark suite
193
198
  ```
194
199
 
200
+ Every ship is gated: `npm test` and `npm run build` must be green, the change
201
+ must come from a worktree, and the version bump goes through
202
+ `npm run version:patch|minor|major` (no manual edits). Details:
203
+ [CONTRIBUTING.md](CONTRIBUTING.md).
204
+
195
205
  ---
196
206
 
197
207
  ## Acknowledgements
@@ -0,0 +1,68 @@
1
+ # =====================================================================
2
+ # Qwen 3.8 27B EXL3 3.5bpw + DFlash2 EXL3 5.0bpw draft, exllamav3
3
+ # (MiaAI-Lab fork 1.4.2) @ 131072 ctx/request, batch-1 -- 2026-09-04.
4
+ # THIS IS THE PRODUCTION PROFILE. Service: uap-exl3-server.service ->
5
+ # /home/cogtek/Qwen3.8-EXL3-kit/start.sh
6
+ # Install: this is a REFERENCE copy; the live file is the kit's .env at
7
+ # /home/cogtek/Qwen3.8-EXL3-kit/.env
8
+ #
9
+ # Supersedes config/llama-profiles/qwen38-27b-dflash2.env (kept as the
10
+ # rollback profile). Same base model, same per-request context -- the
11
+ # serving engine changes: GGUF/llama.cpp -> EXL3/exllamav3.
12
+ #
13
+ # MEASURED on the RTX 3090 (sm_86) after cutover 2026-09-04:
14
+ # decode, short ctx, warm: ~82 tok/s (vs ~55 llama.cpp baseline,
15
+ # same 600-word essay probe, 1192 tokens)
16
+ # decode, deep long ctx: ~41-51 tok/s (KV cache growth falloff)
17
+ # VRAM resident: 20964 MiB / 24576 MiB
18
+ # model load: < 90 s
19
+ # tool calling: native OpenAI-style tool_calls, verified
20
+ #
21
+ # 3090 (sm_86) CAVEATS -- do not copy the 4090 recipe blindly:
22
+ # * CACHE_QUANT=nvfp4 / fp8 need CC >= 8.9 (Ada/Hopper). sm_86 is fixed
23
+ # in hardware; CACHE_QUANT=4 (Hadamard int4) is the same ~4.5
24
+ # bits/elem and is what runs.
25
+ # * nvcc is 12.4 (deb layout at /usr/bin, no /usr/local/cuda), so torch
26
+ # is pinned to cu124 wheels and CUDA_HOME=/usr.
27
+ # * The engine fork needs triton >= 3.3 (ASTSource constexprs kwarg)
28
+ # while torch 2.6 pins triton 3.2 and its inductor breaks on 3.3
29
+ # (AttrsDescriptor removed). Working pair: torch 2.6.0+cu124 +
30
+ # triton 3.3.1 + the torch.compile->identity shim in the kit's
31
+ # tools/serve_openai.py. pip's dependency-conflict warning about
32
+ # this is expected; do not "fix" it by downgrading triton.
33
+ # * start.sh re-runs its bootstrap if its health check fails; the
34
+ # unshimmed import check fails for the reason above, so the kit
35
+ # carries tools/healthcheck.py (shimmed) as the gate. Without it,
36
+ # every start downgraded triton 3.3.1 -> 3.2.0 and broke the engine.
37
+ #
38
+ # PROXY RAILS (unchanged, still correct): PROXY_CONTEXT_WINDOW=131072
39
+ # (--cache_size is per-request here, matching llama.cpp's per-slot 131072
40
+ # at --parallel 1) and PROXY_CONCURRENCY_LIMIT=1 (the server is batch-1
41
+ # and queues concurrent callers internally). The server accepts ANY
42
+ # client-sent model id, so presets (qwen3.8-27b, ...) need no alias
43
+ # maintenance -- the llama.cpp std::set alias-ordering trap is gone.
44
+ # =====================================================================
45
+
46
+ # --- engine install ------------------------------------------
47
+ TORCH_INDEX_URL=https://download.pytorch.org/whl/cu124
48
+
49
+ # --- models ---------------------------------------------------
50
+ MODEL_DIR=models/Qwen3.8-27B-EXL3-3.5bpw
51
+
52
+ # --- speculative decoding -------------------------------------
53
+ DRAFT=dflash2
54
+ DRAFT_DIR=models/Qwen3.8-27B-DFlash2-EXL3-5.0bpw
55
+
56
+ # --- HTTP ------------------------------------------------------
57
+ PORT=8080
58
+ HOST=0.0.0.0
59
+
60
+ # --- cache / context -------------------------------------------
61
+ CONTEXT_SIZE=131072
62
+ CACHE_QUANT=4
63
+ GPU_MEM_GB=22
64
+ CPU_CACHE_GB=0
65
+
66
+ # Box layout: nvcc is /usr/bin/nvcc (deb), no /usr/local/cuda
67
+ CUDA_HOME=/usr
68
+ CUDA_PATH=/usr
@@ -1,6 +1,11 @@
1
1
  # =====================================================================
2
2
  # Qwen 3.8 27B (dense, UD-IQ4_XS) @ 131072 ctx/slot / 2 slots, DFlash2
3
- # speculative decoding -- 2026-08-20. THIS IS THE DEFAULT PROFILE.
3
+ # speculative decoding -- 2026-08-20.
4
+ # SUPERSEDED 2026-09-04 by the EXL3/exllamav3 stack (see
5
+ # docs/guides/QWEN38_EXL3.md, config/exl3-profiles/qwen38-27b-exl3.env) --
6
+ # ~1.5x faster decode at the same 131072 context. This profile is kept as
7
+ # the ROLLBACK path: systemctl --user stop uap-exl3-server && systemctl
8
+ # --user enable --now uap-llama-server.
4
9
  # Service: uap-llama-server.service -> scripts/run-llama-server-continuity.sh
5
10
  # Install: cp to ~/.config/uap/llama-server.env
6
11
  #