@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/dist/cli/rtk.js DELETED
@@ -1,401 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * RTK (Rust Token Killer) Integration for UAP
4
- *
5
- * Provides commands to install and manage RTK CLI proxy
6
- * for 60-90% token savings on command outputs.
7
- */
8
- import { execSync } from 'child_process';
9
- import { existsSync, mkdirSync, readFileSync } from 'fs';
10
- import path from 'path';
11
- /**
12
- * Detect the operating system
13
- */
14
- function detectOS() {
15
- const platform = process.platform;
16
- if (platform === 'darwin')
17
- return 'macOS';
18
- if (platform === 'linux')
19
- return 'Linux';
20
- if (platform === 'win32')
21
- return 'Windows';
22
- return 'Unknown';
23
- }
24
- /**
25
- * Detect system architecture
26
- */
27
- function detectArch() {
28
- const arch = process.arch;
29
- if (arch === 'x64')
30
- return 'x86_64';
31
- if (arch === 'arm64')
32
- return 'arm64';
33
- return arch;
34
- }
35
- /**
36
- * Check if RTK is already installed
37
- */
38
- function checkRTKInstalled() {
39
- try {
40
- execSync('which rtk', { stdio: 'ignore' });
41
- return true;
42
- }
43
- catch {
44
- return false;
45
- }
46
- }
47
- /**
48
- * Get RTK version if installed
49
- */
50
- function getRTKVersion() {
51
- try {
52
- const output = execSync('rtk --version', { encoding: 'utf8' });
53
- return output.trim().split('\n')[0];
54
- }
55
- catch {
56
- return 'unknown';
57
- }
58
- }
59
- /**
60
- * Check if a command is available
61
- */
62
- function commandExists(command) {
63
- try {
64
- execSync(`which ${command}`, { stdio: 'ignore' });
65
- return true;
66
- }
67
- catch {
68
- return false;
69
- }
70
- }
71
- /**
72
- * Install RTK using Homebrew (macOS/Linux)
73
- */
74
- function installWithHomebrew() {
75
- console.log(' Installing via Homebrew...');
76
- try {
77
- execSync('brew install rtk', { stdio: 'inherit' });
78
- console.log('✅ Installed via Homebrew');
79
- }
80
- catch (error) {
81
- console.error('❌ Homebrew installation failed:', error);
82
- throw error;
83
- }
84
- }
85
- /**
86
- * Install RTK using Cargo (Rust package manager)
87
- */
88
- function installWithCargo() {
89
- console.log(' Installing via Cargo...');
90
- try {
91
- execSync('cargo install --git https://github.com/rtk-ai/rtk', { stdio: 'inherit' });
92
- console.log('✅ Installed via Cargo');
93
- }
94
- catch (error) {
95
- console.error('❌ Cargo installation failed:', error);
96
- throw error;
97
- }
98
- }
99
- /**
100
- * Install RTK using curl (download pre-built binary)
101
- */
102
- async function installWithCurl() {
103
- console.log(' Installing via curl...');
104
- const os = detectOS();
105
- const arch = detectArch();
106
- let binaryName;
107
- if (os === 'macOS') {
108
- binaryName =
109
- arch === 'arm64' ? 'rtk-aarch64-apple-darwin.tar.gz' : 'rtk-x86_64-apple-darwin.tar.gz';
110
- }
111
- else if (os === 'Linux') {
112
- binaryName =
113
- arch === 'arm64'
114
- ? 'rtk-aarch64-unknown-linux-gnu.tar.gz'
115
- : 'rtk-x86_64-unknown-linux-musl.tar.gz';
116
- }
117
- else {
118
- throw new Error('Unsupported OS for curl installation');
119
- }
120
- console.log(` Downloading: ${binaryName}`);
121
- const tempDir = process.env.TMPDIR || '/tmp';
122
- const downloadPath = path.join(tempDir, 'rtk-install');
123
- try {
124
- mkdirSync(downloadPath, { recursive: true });
125
- // Download binary
126
- execSync(`curl -fsSL "https://github.com/rtk-ai/rtk/releases/latest/download/${binaryName}" -o "${downloadPath}/rtk.tar.gz"`, { stdio: 'inherit' });
127
- // Extract
128
- execSync(`tar -xzf "${downloadPath}/rtk.tar.gz" -C "${downloadPath}"`, { stdio: 'inherit' });
129
- // Move to local bin
130
- const localBin = path.join(process.env.HOME || '/tmp', '.local', 'bin');
131
- mkdirSync(localBin, { recursive: true });
132
- execSync(`mv "${downloadPath}/rtk" "${localBin}/rtk"`, { stdio: 'inherit' });
133
- execSync(`chmod +x "${localBin}/rtk"`, { stdio: 'inherit' });
134
- console.log(`✅ Installed to ${localBin}/rtk`);
135
- }
136
- catch (error) {
137
- console.error('❌ Curl installation failed:', error);
138
- throw error;
139
- }
140
- }
141
- /**
142
- * Install RTK with auto-detection of best method
143
- */
144
- export async function installRTK(options = {}) {
145
- const os = detectOS();
146
- const arch = detectArch();
147
- console.log('🔧 Installing RTK (Rust Token Killer)...');
148
- console.log(' Reduces LLM token consumption by 60-90% on CLI commands');
149
- console.log('');
150
- console.log(`Detected: ${os} (${arch})`);
151
- console.log('');
152
- // Check if already installed
153
- if (checkRTKInstalled() && !options.force) {
154
- const version = getRTKVersion();
155
- console.log(`ℹ RTK is already installed: ${version}`);
156
- console.log('');
157
- if (!process.env.FORCE_INSTALL) {
158
- console.log('To force upgrade, set FORCE_INSTALL=1 and re-run the install command.');
159
- console.log('Skipping installation.');
160
- return;
161
- }
162
- }
163
- // Try installation methods in order of preference
164
- const methods = [
165
- { name: 'homebrew', check: () => os === 'macOS' || commandExists('brew') },
166
- { name: 'cargo', check: () => commandExists('cargo') },
167
- { name: 'curl', check: () => true }, // Fallback for all platforms
168
- ];
169
- let installed = false;
170
- for (const method of methods) {
171
- if (!options.method || options.method === method.name) {
172
- console.log(`📦 Trying installation method: ${method.name}`);
173
- try {
174
- switch (method.name) {
175
- case 'homebrew':
176
- installWithHomebrew();
177
- installed = true;
178
- break;
179
- case 'cargo':
180
- installWithCargo();
181
- installed = true;
182
- break;
183
- case 'curl':
184
- installWithCurl();
185
- installed = true;
186
- break;
187
- }
188
- if (installed) {
189
- console.log('');
190
- break;
191
- }
192
- }
193
- catch (error) {
194
- console.error(` ✗ Failed: ${method.name}`);
195
- }
196
- }
197
- }
198
- // Verify installation
199
- if (!checkRTKInstalled()) {
200
- console.log('');
201
- console.error('❌ All installation methods failed');
202
- console.log('');
203
- console.log('Manual installation options:');
204
- console.log(' 1. Homebrew (macOS/Linux): brew install rtk');
205
- console.log(' 2. Cargo: cargo install --git https://github.com/rtk-ai/rtk');
206
- console.log(' 3. Pre-built binaries: https://github.com/rtk-ai/rtk/releases');
207
- process.exit(1);
208
- }
209
- // Success!
210
- const version = getRTKVersion();
211
- console.log('');
212
- console.log('✅ RTK installed successfully!');
213
- console.log(` Version: ${version}`);
214
- console.log('');
215
- console.log('📚 Next steps:');
216
- console.log(' 1. Initialize hook for Claude Code:');
217
- console.log(' rtk init --global');
218
- console.log('');
219
- console.log(' 2. Verify installation:');
220
- console.log(' rtk gain');
221
- console.log('');
222
- console.log(' 3. View token savings:');
223
- console.log(' rtk gain --graph');
224
- }
225
- /**
226
- * Check RTK status
227
- */
228
- export async function checkRTKStatus() {
229
- console.log('🔍 Checking RTK status...');
230
- console.log('');
231
- if (!checkRTKInstalled()) {
232
- console.log('❌ RTK is not installed');
233
- console.log('');
234
- console.log('Install with: uap install rtk');
235
- return;
236
- }
237
- const version = getRTKVersion();
238
- console.log(`✅ RTK is installed`);
239
- console.log(` Version: ${version}`);
240
- console.log('');
241
- // Check hook installation
242
- const homeDir = process.env.HOME || '/tmp';
243
- const claudeHooksDir = path.join(homeDir, '.claude', 'hooks');
244
- const rtkHookPath = path.join(claudeHooksDir, 'rtk-rewrite.sh');
245
- if (existsSync(rtkHookPath)) {
246
- console.log('✅ RTK hook is installed');
247
- console.log(` Path: ${rtkHookPath}`);
248
- console.log('');
249
- }
250
- else {
251
- console.log('⚠️ RTK hook is not installed');
252
- console.log('');
253
- console.log('Install hook with: rtk init --global');
254
- console.log('');
255
- }
256
- // Show recent token savings if available
257
- try {
258
- const gainOutput = execSync('rtk gain', { encoding: 'utf8' });
259
- console.log('📊 Recent Token Savings:');
260
- console.log('─────────────────────────────────');
261
- // Show first 20 lines of gain output
262
- const lines = gainOutput.split('\n').slice(0, 20);
263
- console.log(lines.join('\n'));
264
- }
265
- catch {
266
- console.log('ℹ️ No token savings data available yet');
267
- }
268
- }
269
- /**
270
- * Run an arbitrary RTK command by passing through all args to the rtk binary.
271
- * If RTK is not installed, prints install instructions.
272
- */
273
- export function runRTKCommand(args) {
274
- if (!checkRTKInstalled()) {
275
- console.log('RTK is not installed.');
276
- console.log('');
277
- console.log('Install RTK using one of these methods:');
278
- console.log(' uap install rtk # Auto-detect best method');
279
- console.log(' brew install rtk # Homebrew (macOS/Linux)');
280
- console.log(' cargo install --git https://github.com/rtk-ai/rtk # Cargo');
281
- console.log(' Download from: https://github.com/rtk-ai/rtk/releases');
282
- return;
283
- }
284
- const command = ['rtk', ...args].join(' ');
285
- try {
286
- execSync(command, { stdio: 'inherit' });
287
- }
288
- catch (error) {
289
- // execSync throws on non-zero exit; the output is already shown via stdio: 'inherit'
290
- }
291
- }
292
- /**
293
- * Show unified analytics combining MCP Router stats and RTK stats.
294
- * Reads MCP Router config from .uap-mcp-router.json and RTK stats from `rtk gain`.
295
- */
296
- export function showUnifiedAnalytics() {
297
- console.log('');
298
- console.log('Unified Token Analytics');
299
- console.log('═══════════════════════════════════════════════════════');
300
- console.log('');
301
- // MCP Router stats
302
- console.log('MCP Router');
303
- console.log('───────────────────────────────────────────────────────');
304
- const mcpConfigPath = path.join(process.cwd(), '.uap-mcp-router.json');
305
- if (existsSync(mcpConfigPath)) {
306
- try {
307
- const raw = readFileSync(mcpConfigPath, 'utf-8');
308
- const mcpConfig = JSON.parse(raw);
309
- const rows = [
310
- ['Enabled', String(mcpConfig.enabled ?? 'unknown')],
311
- ['Compression', String(mcpConfig.compressionLevel ?? 'unknown')],
312
- ['Max Tools', String(mcpConfig.maxTools ?? 'unknown')],
313
- ['Version', String(mcpConfig.version ?? 'unknown')],
314
- ];
315
- for (const [label, value] of rows) {
316
- console.log(` ${label.padEnd(20)} ${value}`);
317
- }
318
- console.log(' Savings ~98% (150+ tools behind 2 meta-tools)');
319
- }
320
- catch {
321
- console.log(' Could not parse .uap-mcp-router.json');
322
- }
323
- }
324
- else {
325
- console.log(' Not configured. Run: uap setup mcp-router');
326
- }
327
- console.log('');
328
- // RTK stats
329
- console.log('RTK (Rust Token Killer)');
330
- console.log('───────────────────────────────────────────────────────');
331
- if (checkRTKInstalled()) {
332
- const version = getRTKVersion();
333
- console.log(` Installed ${version}`);
334
- try {
335
- const gainOutput = execSync('rtk gain', {
336
- encoding: 'utf8',
337
- stdio: ['pipe', 'pipe', 'pipe'],
338
- });
339
- const lines = gainOutput.trim().split('\n');
340
- for (const line of lines.slice(0, 15)) {
341
- console.log(` ${line}`);
342
- }
343
- if (lines.length > 15) {
344
- console.log(` ... (${lines.length - 15} more lines)`);
345
- }
346
- }
347
- catch {
348
- console.log(' No token savings data available yet');
349
- }
350
- }
351
- else {
352
- console.log(' Not installed. Run: uap install rtk');
353
- }
354
- console.log('');
355
- console.log('Combined Savings');
356
- console.log('───────────────────────────────────────────────────────');
357
- console.log(' MCP Router + RTK = 95%+ total token reduction');
358
- console.log('');
359
- }
360
- /**
361
- * Show RTK help
362
- */
363
- export function showRTKHelp() {
364
- console.log(`
365
- RTK (Rust Token Killer) Integration
366
-
367
- USAGE:
368
- uap rtk <command>
369
-
370
- COMMANDS:
371
- install [options] Install RTK CLI proxy
372
- --force Force reinstallation
373
- --method <m> Installation method (homebrew|cargo|curl)
374
-
375
- status Check RTK installation status
376
-
377
- help Show this help message
378
-
379
- EXAMPLES:
380
- uap rtk install # Install RTK
381
- uap rtk install --force # Force reinstall
382
- uap rtk status # Check installation status
383
-
384
- INTEGRATION WITH UAP:
385
- RTK works alongside UAP's MCP Router for maximum token savings:
386
-
387
- - MCP Router: Reduces tool definition overhead (~98% savings)
388
- • Hides 150+ tools behind 2 meta-tools
389
-
390
- - RTK: Compresses CLI command output (60-90% savings)
391
- • Filters git status, test output, file reads, etc.
392
-
393
- Combined: 95%+ total token reduction
394
-
395
- LEARN MORE:
396
- • RTK Documentation: https://www.rtk-ai.app
397
- • GitHub: https://github.com/rtk-ai/rtk
398
- • Architecture: docs/rtk-integration-analysis.md
399
- `);
400
- }
401
- //# sourceMappingURL=rtk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rtk.js","sourceRoot":"","sources":["../../src/cli/rtk.ts"],"names":[],"mappings":"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"}
@@ -1,113 +0,0 @@
1
- # RTK — Rust Token Killer
2
-
3
- `v1.93.1` · `src/cli/rtk.ts`
4
-
5
- > **🏭 Where this fits:** Cross-cutting (keeps the belt from jamming) — every
6
- > `git status`, test run, and file dump your agent echoes floods the context
7
- > window, so it loses focus and burns budget on terminal noise. **What it
8
- > delivers:** 60–90% fewer tokens on CLI-command output, transparently, so
9
- > context stays lean at every station of the
10
- > [delivery pipeline](../guides/DELIVERY_PIPELINE.md).
11
-
12
- RTK (Rust Token Killer) is a fast CLI proxy that compresses and filters the
13
- output of command-line tools — `git status`, test runs, file reads, and similar
14
- heavy commands — to cut the tokens your agent spends echoing terminal output.
15
- Source positions it at **60–90% token savings on CLI command output**.
16
-
17
- RTK is a separate, open-source tool (`https://github.com/rtk-ai/rtk`,
18
- docs at `https://www.rtk-ai.app`). UAP integrates with it but does not bundle
19
- it; `uap rtk` manages installation and wiring.
20
-
21
- ---
22
-
23
- ## Why RTK + the MCP Router
24
-
25
- The two integrations guard the same cross-cutting concern — keeping context lean
26
- so no station downstream jams — but target different sources of token waste, and
27
- they stack:
28
-
29
- | Layer | Tool | Saves on |
30
- |-------|------|----------|
31
- | MCP tool definitions + tool output | [MCP Router](MCP_ROUTER.md) | ~98% of tool-definition tokens |
32
- | Raw CLI command output | **RTK** | 60–90% of CLI-output tokens |
33
-
34
- Source describes the combination as **95%+ total token reduction**
35
- (`src/cli/rtk.ts`).
36
-
37
- ---
38
-
39
- ## How UAP integrates RTK
40
-
41
- `uap rtk <command>` (`src/cli/rtk.ts`):
42
-
43
- ```bash
44
- uap rtk install # install RTK, auto-detecting the best method
45
- uap rtk status # check install + hook wiring + recent savings
46
- uap rtk help # usage
47
- ```
48
-
49
- ### `uap rtk install`
50
-
51
- Auto-detects the best install method (Homebrew → Cargo → pre-built binary via
52
- curl) and runs it. Override with flags:
53
-
54
- ```bash
55
- uap rtk install --method homebrew # force a method: homebrew | cargo | curl
56
- uap rtk install --force # reinstall
57
- ```
58
-
59
- Equivalent manual installs:
60
-
61
- ```bash
62
- brew install rtk # Homebrew
63
- cargo install --git https://github.com/rtk-ai/rtk # Cargo
64
- # or download a release binary from:
65
- # https://github.com/rtk-ai/rtk/releases
66
- ```
67
-
68
- After install, initialize and verify:
69
-
70
- ```bash
71
- rtk init --global # set up the global rewrite hook
72
- rtk gain # show token savings analytics
73
- ```
74
-
75
- ### `uap rtk status`
76
-
77
- Reports whether the `rtk` binary is installed, whether the rewrite hook
78
- (`~/.claude/hooks/rtk-rewrite.sh`) is wired in, and recent savings from
79
- `rtk gain`.
80
-
81
- ---
82
-
83
- ## How it works in practice
84
-
85
- Once the rewrite hook is installed, heavy CLI commands are transparently routed
86
- through RTK (e.g. `git status` is rewritten to `rtk git status`) with zero
87
- extra tokens of overhead — the agent issues normal commands and RTK compresses
88
- the output before it reaches the model. Your agent never knows the belt is being
89
- kept clear underneath it.
90
-
91
- UAP can nudge agents to route heavy CLIs through RTK via the `rtk_wrap.py`
92
- policy enforcer (`src/policies/enforcers/rtk_wrap.py`).
93
-
94
- Useful RTK meta-commands:
95
-
96
- ```bash
97
- rtk gain # token savings analytics
98
- rtk gain --history # command usage history with savings
99
- rtk discover # find missed savings opportunities
100
- rtk --version # verify the install
101
- ```
102
-
103
- ---
104
-
105
- ## Combined analytics
106
-
107
- `uap rtk` can surface unified analytics combining MCP Router and RTK savings
108
- (`showUnifiedAnalytics` in `src/cli/rtk.ts`), so you can see total context
109
- reduction from both layers at once.
110
-
111
- See also: [MCP_ROUTER.md](MCP_ROUTER.md) ·
112
- [../architecture/OVERVIEW.md](../architecture/OVERVIEW.md) ·
113
- [../guides/DELIVERY_PIPELINE.md](../guides/DELIVERY_PIPELINE.md)