@hasna/terminal 2.0.5 → 2.3.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 (263) hide show
  1. package/dist/cli.js +52 -21
  2. package/package.json +1 -1
  3. package/src/ai.ts +77 -130
  4. package/src/cli.tsx +51 -21
  5. package/src/command-validator.ts +11 -0
  6. package/src/context-hints.ts +291 -0
  7. package/src/discover.ts +238 -0
  8. package/src/economy.ts +53 -0
  9. package/src/output-processor.ts +7 -18
  10. package/src/output-store.ts +65 -0
  11. package/src/providers/base.ts +3 -1
  12. package/src/providers/groq.ts +108 -0
  13. package/src/providers/index.ts +26 -2
  14. package/src/providers/providers.test.ts +4 -2
  15. package/src/providers/xai.ts +108 -0
  16. package/src/sessions-db.ts +81 -0
  17. package/temp/rtk/.claude/agents/code-reviewer.md +221 -0
  18. package/temp/rtk/.claude/agents/debugger.md +519 -0
  19. package/temp/rtk/.claude/agents/rtk-testing-specialist.md +461 -0
  20. package/temp/rtk/.claude/agents/rust-rtk.md +511 -0
  21. package/temp/rtk/.claude/agents/technical-writer.md +355 -0
  22. package/temp/rtk/.claude/commands/diagnose.md +352 -0
  23. package/temp/rtk/.claude/commands/test-routing.md +362 -0
  24. package/temp/rtk/.claude/hooks/bash/pre-commit-format.sh +16 -0
  25. package/temp/rtk/.claude/hooks/rtk-rewrite.sh +70 -0
  26. package/temp/rtk/.claude/hooks/rtk-suggest.sh +152 -0
  27. package/temp/rtk/.claude/rules/cli-testing.md +526 -0
  28. package/temp/rtk/.claude/skills/issue-triage/SKILL.md +348 -0
  29. package/temp/rtk/.claude/skills/issue-triage/templates/issue-comment.md +134 -0
  30. package/temp/rtk/.claude/skills/performance.md +435 -0
  31. package/temp/rtk/.claude/skills/pr-triage/SKILL.md +315 -0
  32. package/temp/rtk/.claude/skills/pr-triage/templates/review-comment.md +71 -0
  33. package/temp/rtk/.claude/skills/repo-recap.md +206 -0
  34. package/temp/rtk/.claude/skills/rtk-tdd/SKILL.md +78 -0
  35. package/temp/rtk/.claude/skills/rtk-tdd/references/testing-patterns.md +124 -0
  36. package/temp/rtk/.claude/skills/security-guardian.md +503 -0
  37. package/temp/rtk/.claude/skills/ship.md +404 -0
  38. package/temp/rtk/.github/workflows/benchmark.yml +34 -0
  39. package/temp/rtk/.github/workflows/dco-check.yaml +12 -0
  40. package/temp/rtk/.github/workflows/release-please.yml +51 -0
  41. package/temp/rtk/.github/workflows/release.yml +343 -0
  42. package/temp/rtk/.github/workflows/security-check.yml +135 -0
  43. package/temp/rtk/.github/workflows/validate-docs.yml +78 -0
  44. package/temp/rtk/.release-please-manifest.json +3 -0
  45. package/temp/rtk/ARCHITECTURE.md +1491 -0
  46. package/temp/rtk/CHANGELOG.md +640 -0
  47. package/temp/rtk/CLAUDE.md +605 -0
  48. package/temp/rtk/CONTRIBUTING.md +199 -0
  49. package/temp/rtk/Cargo.lock +1668 -0
  50. package/temp/rtk/Cargo.toml +64 -0
  51. package/temp/rtk/Formula/rtk.rb +43 -0
  52. package/temp/rtk/INSTALL.md +390 -0
  53. package/temp/rtk/LICENSE +21 -0
  54. package/temp/rtk/README.md +386 -0
  55. package/temp/rtk/README_es.md +159 -0
  56. package/temp/rtk/README_fr.md +197 -0
  57. package/temp/rtk/README_ja.md +159 -0
  58. package/temp/rtk/README_ko.md +159 -0
  59. package/temp/rtk/README_zh.md +167 -0
  60. package/temp/rtk/ROADMAP.md +15 -0
  61. package/temp/rtk/SECURITY.md +217 -0
  62. package/temp/rtk/TEST_EXEC_TIME.md +102 -0
  63. package/temp/rtk/build.rs +57 -0
  64. package/temp/rtk/docs/AUDIT_GUIDE.md +432 -0
  65. package/temp/rtk/docs/FEATURES.md +1410 -0
  66. package/temp/rtk/docs/TROUBLESHOOTING.md +309 -0
  67. package/temp/rtk/docs/filter-workflow.md +102 -0
  68. package/temp/rtk/docs/images/gain-dashboard.jpg +0 -0
  69. package/temp/rtk/docs/tracking.md +583 -0
  70. package/temp/rtk/hooks/opencode-rtk.ts +39 -0
  71. package/temp/rtk/hooks/rtk-awareness.md +29 -0
  72. package/temp/rtk/hooks/rtk-rewrite.sh +61 -0
  73. package/temp/rtk/hooks/test-rtk-rewrite.sh +442 -0
  74. package/temp/rtk/install.sh +124 -0
  75. package/temp/rtk/release-please-config.json +10 -0
  76. package/temp/rtk/scripts/benchmark.sh +592 -0
  77. package/temp/rtk/scripts/check-installation.sh +162 -0
  78. package/temp/rtk/scripts/install-local.sh +37 -0
  79. package/temp/rtk/scripts/rtk-economics.sh +137 -0
  80. package/temp/rtk/scripts/test-all.sh +561 -0
  81. package/temp/rtk/scripts/test-aristote.sh +227 -0
  82. package/temp/rtk/scripts/test-tracking.sh +79 -0
  83. package/temp/rtk/scripts/update-readme-metrics.sh +32 -0
  84. package/temp/rtk/scripts/validate-docs.sh +73 -0
  85. package/temp/rtk/src/aws_cmd.rs +880 -0
  86. package/temp/rtk/src/binlog.rs +1645 -0
  87. package/temp/rtk/src/cargo_cmd.rs +1727 -0
  88. package/temp/rtk/src/cc_economics.rs +1157 -0
  89. package/temp/rtk/src/ccusage.rs +340 -0
  90. package/temp/rtk/src/config.rs +187 -0
  91. package/temp/rtk/src/container.rs +855 -0
  92. package/temp/rtk/src/curl_cmd.rs +134 -0
  93. package/temp/rtk/src/deps.rs +268 -0
  94. package/temp/rtk/src/diff_cmd.rs +367 -0
  95. package/temp/rtk/src/discover/mod.rs +274 -0
  96. package/temp/rtk/src/discover/provider.rs +388 -0
  97. package/temp/rtk/src/discover/registry.rs +2022 -0
  98. package/temp/rtk/src/discover/report.rs +202 -0
  99. package/temp/rtk/src/discover/rules.rs +667 -0
  100. package/temp/rtk/src/display_helpers.rs +402 -0
  101. package/temp/rtk/src/dotnet_cmd.rs +1771 -0
  102. package/temp/rtk/src/dotnet_format_report.rs +133 -0
  103. package/temp/rtk/src/dotnet_trx.rs +593 -0
  104. package/temp/rtk/src/env_cmd.rs +204 -0
  105. package/temp/rtk/src/filter.rs +462 -0
  106. package/temp/rtk/src/filters/README.md +52 -0
  107. package/temp/rtk/src/filters/ansible-playbook.toml +34 -0
  108. package/temp/rtk/src/filters/basedpyright.toml +47 -0
  109. package/temp/rtk/src/filters/biome.toml +45 -0
  110. package/temp/rtk/src/filters/brew-install.toml +37 -0
  111. package/temp/rtk/src/filters/composer-install.toml +40 -0
  112. package/temp/rtk/src/filters/df.toml +16 -0
  113. package/temp/rtk/src/filters/dotnet-build.toml +64 -0
  114. package/temp/rtk/src/filters/du.toml +16 -0
  115. package/temp/rtk/src/filters/fail2ban-client.toml +15 -0
  116. package/temp/rtk/src/filters/gcc.toml +49 -0
  117. package/temp/rtk/src/filters/gcloud.toml +22 -0
  118. package/temp/rtk/src/filters/hadolint.toml +24 -0
  119. package/temp/rtk/src/filters/helm.toml +29 -0
  120. package/temp/rtk/src/filters/iptables.toml +27 -0
  121. package/temp/rtk/src/filters/jj.toml +28 -0
  122. package/temp/rtk/src/filters/jq.toml +24 -0
  123. package/temp/rtk/src/filters/make.toml +41 -0
  124. package/temp/rtk/src/filters/markdownlint.toml +24 -0
  125. package/temp/rtk/src/filters/mix-compile.toml +27 -0
  126. package/temp/rtk/src/filters/mix-format.toml +15 -0
  127. package/temp/rtk/src/filters/mvn-build.toml +44 -0
  128. package/temp/rtk/src/filters/oxlint.toml +43 -0
  129. package/temp/rtk/src/filters/ping.toml +63 -0
  130. package/temp/rtk/src/filters/pio-run.toml +40 -0
  131. package/temp/rtk/src/filters/poetry-install.toml +50 -0
  132. package/temp/rtk/src/filters/pre-commit.toml +35 -0
  133. package/temp/rtk/src/filters/ps.toml +16 -0
  134. package/temp/rtk/src/filters/quarto-render.toml +41 -0
  135. package/temp/rtk/src/filters/rsync.toml +48 -0
  136. package/temp/rtk/src/filters/shellcheck.toml +27 -0
  137. package/temp/rtk/src/filters/shopify-theme.toml +29 -0
  138. package/temp/rtk/src/filters/skopeo.toml +45 -0
  139. package/temp/rtk/src/filters/sops.toml +16 -0
  140. package/temp/rtk/src/filters/ssh.toml +44 -0
  141. package/temp/rtk/src/filters/stat.toml +34 -0
  142. package/temp/rtk/src/filters/swift-build.toml +41 -0
  143. package/temp/rtk/src/filters/systemctl-status.toml +33 -0
  144. package/temp/rtk/src/filters/terraform-plan.toml +35 -0
  145. package/temp/rtk/src/filters/tofu-fmt.toml +16 -0
  146. package/temp/rtk/src/filters/tofu-init.toml +38 -0
  147. package/temp/rtk/src/filters/tofu-plan.toml +35 -0
  148. package/temp/rtk/src/filters/tofu-validate.toml +17 -0
  149. package/temp/rtk/src/filters/trunk-build.toml +39 -0
  150. package/temp/rtk/src/filters/ty.toml +50 -0
  151. package/temp/rtk/src/filters/uv-sync.toml +37 -0
  152. package/temp/rtk/src/filters/xcodebuild.toml +99 -0
  153. package/temp/rtk/src/filters/yamllint.toml +25 -0
  154. package/temp/rtk/src/find_cmd.rs +598 -0
  155. package/temp/rtk/src/format_cmd.rs +386 -0
  156. package/temp/rtk/src/gain.rs +723 -0
  157. package/temp/rtk/src/gh_cmd.rs +1651 -0
  158. package/temp/rtk/src/git.rs +2012 -0
  159. package/temp/rtk/src/go_cmd.rs +592 -0
  160. package/temp/rtk/src/golangci_cmd.rs +254 -0
  161. package/temp/rtk/src/grep_cmd.rs +288 -0
  162. package/temp/rtk/src/gt_cmd.rs +810 -0
  163. package/temp/rtk/src/hook_audit_cmd.rs +283 -0
  164. package/temp/rtk/src/hook_check.rs +171 -0
  165. package/temp/rtk/src/init.rs +1859 -0
  166. package/temp/rtk/src/integrity.rs +537 -0
  167. package/temp/rtk/src/json_cmd.rs +231 -0
  168. package/temp/rtk/src/learn/detector.rs +628 -0
  169. package/temp/rtk/src/learn/mod.rs +119 -0
  170. package/temp/rtk/src/learn/report.rs +184 -0
  171. package/temp/rtk/src/lint_cmd.rs +694 -0
  172. package/temp/rtk/src/local_llm.rs +316 -0
  173. package/temp/rtk/src/log_cmd.rs +248 -0
  174. package/temp/rtk/src/ls.rs +324 -0
  175. package/temp/rtk/src/main.rs +2482 -0
  176. package/temp/rtk/src/mypy_cmd.rs +389 -0
  177. package/temp/rtk/src/next_cmd.rs +241 -0
  178. package/temp/rtk/src/npm_cmd.rs +236 -0
  179. package/temp/rtk/src/parser/README.md +267 -0
  180. package/temp/rtk/src/parser/error.rs +46 -0
  181. package/temp/rtk/src/parser/formatter.rs +336 -0
  182. package/temp/rtk/src/parser/mod.rs +311 -0
  183. package/temp/rtk/src/parser/types.rs +119 -0
  184. package/temp/rtk/src/pip_cmd.rs +302 -0
  185. package/temp/rtk/src/playwright_cmd.rs +479 -0
  186. package/temp/rtk/src/pnpm_cmd.rs +573 -0
  187. package/temp/rtk/src/prettier_cmd.rs +221 -0
  188. package/temp/rtk/src/prisma_cmd.rs +482 -0
  189. package/temp/rtk/src/psql_cmd.rs +382 -0
  190. package/temp/rtk/src/pytest_cmd.rs +384 -0
  191. package/temp/rtk/src/read.rs +217 -0
  192. package/temp/rtk/src/rewrite_cmd.rs +50 -0
  193. package/temp/rtk/src/ruff_cmd.rs +402 -0
  194. package/temp/rtk/src/runner.rs +271 -0
  195. package/temp/rtk/src/summary.rs +297 -0
  196. package/temp/rtk/src/tee.rs +405 -0
  197. package/temp/rtk/src/telemetry.rs +248 -0
  198. package/temp/rtk/src/toml_filter.rs +1655 -0
  199. package/temp/rtk/src/tracking.rs +1416 -0
  200. package/temp/rtk/src/tree.rs +209 -0
  201. package/temp/rtk/src/tsc_cmd.rs +259 -0
  202. package/temp/rtk/src/utils.rs +432 -0
  203. package/temp/rtk/src/verify_cmd.rs +47 -0
  204. package/temp/rtk/src/vitest_cmd.rs +385 -0
  205. package/temp/rtk/src/wc_cmd.rs +401 -0
  206. package/temp/rtk/src/wget_cmd.rs +260 -0
  207. package/temp/rtk/tests/fixtures/dotnet/build_failed.txt +11 -0
  208. package/temp/rtk/tests/fixtures/dotnet/format_changes.json +31 -0
  209. package/temp/rtk/tests/fixtures/dotnet/format_empty.json +1 -0
  210. package/temp/rtk/tests/fixtures/dotnet/format_success.json +12 -0
  211. package/temp/rtk/tests/fixtures/dotnet/test_failed.txt +18 -0
  212. package/dist/App.js +0 -404
  213. package/dist/Browse.js +0 -79
  214. package/dist/FuzzyPicker.js +0 -47
  215. package/dist/Onboarding.js +0 -51
  216. package/dist/Spinner.js +0 -12
  217. package/dist/StatusBar.js +0 -49
  218. package/dist/ai.js +0 -368
  219. package/dist/cache.js +0 -41
  220. package/dist/command-rewriter.js +0 -64
  221. package/dist/command-validator.js +0 -77
  222. package/dist/compression.js +0 -107
  223. package/dist/diff-cache.js +0 -107
  224. package/dist/economy.js +0 -79
  225. package/dist/expand-store.js +0 -38
  226. package/dist/file-cache.js +0 -72
  227. package/dist/file-index.js +0 -62
  228. package/dist/history.js +0 -62
  229. package/dist/lazy-executor.js +0 -54
  230. package/dist/line-dedup.js +0 -59
  231. package/dist/loop-detector.js +0 -75
  232. package/dist/mcp/install.js +0 -98
  233. package/dist/mcp/server.js +0 -569
  234. package/dist/noise-filter.js +0 -86
  235. package/dist/output-processor.js +0 -136
  236. package/dist/output-router.js +0 -41
  237. package/dist/parsers/base.js +0 -2
  238. package/dist/parsers/build.js +0 -64
  239. package/dist/parsers/errors.js +0 -101
  240. package/dist/parsers/files.js +0 -78
  241. package/dist/parsers/git.js +0 -99
  242. package/dist/parsers/index.js +0 -48
  243. package/dist/parsers/tests.js +0 -89
  244. package/dist/providers/anthropic.js +0 -39
  245. package/dist/providers/base.js +0 -4
  246. package/dist/providers/cerebras.js +0 -95
  247. package/dist/providers/index.js +0 -49
  248. package/dist/recipes/model.js +0 -20
  249. package/dist/recipes/storage.js +0 -136
  250. package/dist/search/content-search.js +0 -68
  251. package/dist/search/file-search.js +0 -61
  252. package/dist/search/filters.js +0 -34
  253. package/dist/search/index.js +0 -5
  254. package/dist/search/semantic.js +0 -320
  255. package/dist/session-boot.js +0 -59
  256. package/dist/session-context.js +0 -55
  257. package/dist/sessions-db.js +0 -120
  258. package/dist/smart-display.js +0 -286
  259. package/dist/snapshots.js +0 -51
  260. package/dist/supervisor.js +0 -112
  261. package/dist/test-watchlist.js +0 -131
  262. package/dist/tree.js +0 -94
  263. package/dist/usage-cache.js +0 -65
@@ -0,0 +1,309 @@
1
+ # RTK Troubleshooting Guide
2
+
3
+ ## Problem: "rtk gain" command not found
4
+
5
+ ### Symptom
6
+ ```bash
7
+ $ rtk --version
8
+ rtk 1.0.0 # (or similar)
9
+
10
+ $ rtk gain
11
+ rtk: 'gain' is not a rtk command. See 'rtk --help'.
12
+ ```
13
+
14
+ ### Root Cause
15
+ You installed the **wrong rtk package**. You have **Rust Type Kit** (reachingforthejack/rtk) instead of **Rust Token Killer** (rtk-ai/rtk).
16
+
17
+ ### Solution
18
+
19
+ **1. Uninstall the wrong package:**
20
+ ```bash
21
+ cargo uninstall rtk
22
+ ```
23
+
24
+ **2. Install the correct one (Token Killer):**
25
+
26
+ #### Quick Install (Linux/macOS)
27
+ ```bash
28
+ curl -fsSL https://github.com/rtk-ai/rtk/blob/master/install.sh | sh
29
+ ```
30
+
31
+ #### Alternative: Manual Installation
32
+ ```bash
33
+ cargo install --git https://github.com/rtk-ai/rtk
34
+ ```
35
+
36
+ **3. Verify installation:**
37
+ ```bash
38
+ rtk --version
39
+ rtk gain # MUST show token savings stats, not error
40
+ ```
41
+
42
+ If `rtk gain` now works, installation is correct.
43
+
44
+ ---
45
+
46
+ ## Problem: Confusion Between Two "rtk" Projects
47
+
48
+ ### The Two Projects
49
+
50
+ | Project | Repository | Purpose | Key Command |
51
+ |---------|-----------|---------|-------------|
52
+ | **Rust Token Killer** ✅ | rtk-ai/rtk | LLM token optimizer for Claude Code | `rtk gain` |
53
+ | **Rust Type Kit** ❌ | reachingforthejack/rtk | Rust codebase query and type generator | `rtk query` |
54
+
55
+ ### How to Identify Which One You Have
56
+
57
+ ```bash
58
+ # Check if "gain" command exists
59
+ rtk gain
60
+
61
+ # Token Killer → Shows token savings stats
62
+ # Type Kit → Error: "gain is not a rtk command"
63
+ ```
64
+
65
+ ---
66
+
67
+ ## Problem: cargo install rtk installs wrong package
68
+
69
+ ### Why This Happens
70
+ If **Rust Type Kit** is published to crates.io under the name `rtk`, running `cargo install rtk` will install the wrong package.
71
+
72
+ ### Solution
73
+ **NEVER use** `cargo install rtk` without verifying.
74
+
75
+ **Always use explicit repository URLs:**
76
+
77
+ ```bash
78
+ # CORRECT - Token Killer
79
+ cargo install --git https://github.com/rtk-ai/rtk
80
+
81
+ # OR install from fork
82
+ git clone https://github.com/rtk-ai/rtk.git
83
+ cd rtk && git checkout feat/all-features
84
+ cargo install --path . --force
85
+ ```
86
+
87
+ **After any installation, ALWAYS verify:**
88
+ ```bash
89
+ rtk gain # Must work if you want Token Killer
90
+ ```
91
+
92
+ ---
93
+
94
+ ## Problem: RTK not working in Claude Code
95
+
96
+ ### Symptom
97
+ Claude Code doesn't seem to be using rtk, outputs are verbose.
98
+
99
+ ### Checklist
100
+
101
+ **1. Verify rtk is installed and correct:**
102
+ ```bash
103
+ rtk --version
104
+ rtk gain # Must show stats
105
+ ```
106
+
107
+ **2. Initialize rtk for Claude Code:**
108
+ ```bash
109
+ # Global (all projects)
110
+ rtk init --global
111
+
112
+ # Per-project
113
+ cd /your/project
114
+ rtk init
115
+ ```
116
+
117
+ **3. Verify CLAUDE.md file exists:**
118
+ ```bash
119
+ # Check global
120
+ cat ~/.claude/CLAUDE.md | grep rtk
121
+
122
+ # Check project
123
+ cat ./CLAUDE.md | grep rtk
124
+ ```
125
+
126
+ **4. Install auto-rewrite hook (recommended for automatic RTK usage):**
127
+
128
+ **Option A: Automatic (recommended)**
129
+ ```bash
130
+ rtk init -g
131
+ # → Installs hook + RTK.md automatically
132
+ # → Follow printed instructions to add hook to ~/.claude/settings.json
133
+ # → Restart Claude Code
134
+
135
+ # Verify installation
136
+ rtk init --show # Should show "✅ Hook: executable, with guards"
137
+ ```
138
+
139
+ **Option B: Manual (fallback)**
140
+ ```bash
141
+ # Copy hook to Claude Code hooks directory
142
+ mkdir -p ~/.claude/hooks
143
+ cp .claude/hooks/rtk-rewrite.sh ~/.claude/hooks/
144
+ chmod +x ~/.claude/hooks/rtk-rewrite.sh
145
+ ```
146
+
147
+ Then add to `~/.claude/settings.json` (replace `~` with full path):
148
+ ```json
149
+ {
150
+ "hooks": {
151
+ "PreToolUse": [
152
+ {
153
+ "matcher": "Bash",
154
+ "hooks": [
155
+ {
156
+ "type": "command",
157
+ "command": "/Users/yourname/.claude/hooks/rtk-rewrite.sh"
158
+ }
159
+ ]
160
+ }
161
+ ]
162
+ }
163
+ }
164
+ ```
165
+
166
+ **Note**: Use absolute path in `settings.json`, not `~/.claude/...`
167
+
168
+ ---
169
+
170
+ ## Problem: RTK not working in OpenCode
171
+
172
+ ### Symptom
173
+ OpenCode runs commands without rtk, outputs are verbose.
174
+
175
+ ### Checklist
176
+
177
+ **1. Verify rtk is installed and correct:**
178
+ ```bash
179
+ rtk --version
180
+ rtk gain # Must show stats
181
+ ```
182
+
183
+ **2. Install the OpenCode plugin (global only):**
184
+ ```bash
185
+ rtk init -g --opencode
186
+ ```
187
+
188
+ **3. Verify plugin file exists:**
189
+ ```bash
190
+ ls -la ~/.config/opencode/plugins/rtk.ts
191
+ ```
192
+
193
+ **4. Restart OpenCode**
194
+ OpenCode must be restarted to load the plugin.
195
+
196
+ **5. Verify status:**
197
+ ```bash
198
+ rtk init --show # Should show "OpenCode: plugin installed"
199
+ ```
200
+
201
+ ---
202
+
203
+ ## Problem: "command not found: rtk" after installation
204
+
205
+ ### Symptom
206
+ ```bash
207
+ $ cargo install --path . --force
208
+ Compiling rtk v0.7.1
209
+ Finished release [optimized] target(s)
210
+ Installing ~/.cargo/bin/rtk
211
+
212
+ $ rtk --version
213
+ zsh: command not found: rtk
214
+ ```
215
+
216
+ ### Root Cause
217
+ `~/.cargo/bin` is not in your PATH.
218
+
219
+ ### Solution
220
+
221
+ **1. Check if cargo bin is in PATH:**
222
+ ```bash
223
+ echo $PATH | grep -o '[^:]*\.cargo[^:]*'
224
+ ```
225
+
226
+ **2. If not found, add to PATH:**
227
+
228
+ For **bash** (`~/.bashrc`):
229
+ ```bash
230
+ export PATH="$HOME/.cargo/bin:$PATH"
231
+ ```
232
+
233
+ For **zsh** (`~/.zshrc`):
234
+ ```bash
235
+ export PATH="$HOME/.cargo/bin:$PATH"
236
+ ```
237
+
238
+ For **fish** (`~/.config/fish/config.fish`):
239
+ ```fish
240
+ set -gx PATH $HOME/.cargo/bin $PATH
241
+ ```
242
+
243
+ **3. Reload shell config:**
244
+ ```bash
245
+ source ~/.bashrc # or ~/.zshrc or restart terminal
246
+ ```
247
+
248
+ **4. Verify:**
249
+ ```bash
250
+ which rtk
251
+ rtk --version
252
+ rtk gain
253
+ ```
254
+
255
+ ---
256
+
257
+ ## Problem: Compilation errors during installation
258
+
259
+ ### Symptom
260
+ ```bash
261
+ $ cargo install --path .
262
+ error: failed to compile rtk v0.7.1
263
+ ```
264
+
265
+ ### Solutions
266
+
267
+ **1. Update Rust toolchain:**
268
+ ```bash
269
+ rustup update stable
270
+ rustup default stable
271
+ ```
272
+
273
+ **2. Clean and rebuild:**
274
+ ```bash
275
+ cargo clean
276
+ cargo build --release
277
+ cargo install --path . --force
278
+ ```
279
+
280
+ **3. Check Rust version (minimum required):**
281
+ ```bash
282
+ rustc --version # Should be 1.70+ for most features
283
+ ```
284
+
285
+ **4. If still fails, report issue:**
286
+ - GitHub: https://github.com/rtk-ai/rtk/issues
287
+
288
+ ---
289
+
290
+ ## Need More Help?
291
+
292
+ **Report issues:**
293
+ - Fork-specific: https://github.com/rtk-ai/rtk/issues
294
+ - Upstream: https://github.com/rtk-ai/rtk/issues
295
+
296
+ **Run the diagnostic script:**
297
+ ```bash
298
+ # From the rtk repository root
299
+ bash scripts/check-installation.sh
300
+ ```
301
+
302
+ This script will check:
303
+ - ✅ RTK installed and in PATH
304
+ - ✅ Correct version (Token Killer, not Type Kit)
305
+ - ✅ Available features (pnpm, vitest, next, etc.)
306
+ - ✅ Claude Code integration (CLAUDE.md files)
307
+ - ✅ Auto-rewrite hook status
308
+
309
+ The script provides specific fix commands for any issues found.
@@ -0,0 +1,102 @@
1
+ # How a TOML filter goes from file to execution
2
+
3
+ This document explains what happens between "I created `src/filters/my-tool.toml`" and "RTK filters the output of `my-tool`".
4
+
5
+ ## Build pipeline
6
+
7
+ ```mermaid
8
+ flowchart TD
9
+ A[["📄 src/filters/my-tool.toml\n(new file)"]] --> B
10
+
11
+ subgraph BUILD ["🔨 cargo build"]
12
+ B["build.rs\n① ls src/filters/*.toml\n② sort alphabetically\n③ concat → schema_version = 1 + all files"] --> C
13
+ C{"TOML valid?\nDuplicate names?"} -->|"❌ panic! (build fails)"| D[["🛑 Error message\npoints to bad file"]]
14
+ C -->|"✅ ok"| E[["OUT_DIR/builtin_filters.toml\n(generated file)"]]
15
+ E --> F["rustc\ninclude_str!(concat!(env!(OUT_DIR),\n'/builtin_filters.toml'))"]
16
+ F --> G[["🦀 rtk binary\nBUILTIN_TOML embedded"]]
17
+ end
18
+
19
+ subgraph TESTS ["🧪 cargo test"]
20
+ H["test_builtin_filter_count\nassert_eq!(filters.len(), N)"] -->|"❌ count wrong"| I[["FAIL\n'Expected N, got N+1'\nUpdate the count'"]]
21
+ J["test_builtin_all_expected_\nfilters_present\nassert!(names.contains('my-tool'))"] -->|"❌ name missing"| K[["FAIL\n'my-tool is missing—\nwas its .toml deleted?'"]]
22
+ L["test_builtin_all_filters_\nhave_inline_tests\nassert!(tested.contains(name))"] -->|"❌ no tests"| M[["FAIL\n'Add tests.my-tool\nentries'"]]
23
+ end
24
+
25
+ subgraph VERIFY ["✅ rtk verify"]
26
+ N["runs [[tests.my-tool]]\ninput → filter → compare expected"]
27
+ N -->|"❌ mismatch"| O[["FAIL\nshows actual vs expected"]]
28
+ N -->|"✅ pass"| P[["60/60 tests passed"]]
29
+ end
30
+
31
+ G --> H
32
+ G --> J
33
+ G --> L
34
+ G --> N
35
+
36
+ subgraph RUNTIME ["⚡ rtk my-tool --verbose"]
37
+ Q["Claude Code hook\nmy-tool ... → rtk my-tool ..."] --> R
38
+ R["TomlFilterRegistry::load()\n① .rtk/filters.toml (project)\n② ~/.config/rtk/filters.toml (user)\n③ BUILTIN_TOML (binary)\n④ passthrough"] --> S
39
+ S{"match_command\n'^my-tool\\b'\nmatches?"} -->|"No match"| T[["exec raw\n(passthrough)"]]
40
+ S -->|"✅ match"| U["exec command\ncapture stdout"]
41
+ U --> V
42
+
43
+ subgraph PIPELINE ["8-stage filter pipeline"]
44
+ V["strip_ansi"] --> W["replace"]
45
+ W --> X{"match_output\nshort-circuit?"}
46
+ X -->|"✅ pattern matched"| Y[["emit message\nstop pipeline"]]
47
+ X -->|"no match"| Z["strip/keep_lines"]
48
+ Z --> AA["truncate_lines_at"]
49
+ AA --> AB["tail_lines"]
50
+ AB --> AC["max_lines"]
51
+ AC --> AD{"output\nempty?"}
52
+ AD -->|"yes"| AE[["emit on_empty"]]
53
+ AD -->|"no"| AF[["print filtered\noutput + exit code"]]
54
+ end
55
+ end
56
+
57
+ G --> Q
58
+
59
+ style BUILD fill:#1e3a5f,color:#fff
60
+ style TESTS fill:#1a3a1a,color:#fff
61
+ style VERIFY fill:#2d1b69,color:#fff
62
+ style RUNTIME fill:#3a1a1a,color:#fff
63
+ style PIPELINE fill:#4a2a00,color:#fff
64
+ style D fill:#8b0000,color:#fff
65
+ style I fill:#8b0000,color:#fff
66
+ style K fill:#8b0000,color:#fff
67
+ style M fill:#8b0000,color:#fff
68
+ style O fill:#8b0000,color:#fff
69
+ ```
70
+
71
+ ## Step-by-step summary
72
+
73
+ | Step | Who | What happens | Fails if |
74
+ |------|-----|--------------|----------|
75
+ | 1 | Contributor | Creates `src/filters/my-tool.toml` | — |
76
+ | 2 | `build.rs` | Concatenates all `.toml` files alphabetically | TOML syntax error, duplicate filter name |
77
+ | 3 | `rustc` | Embeds result in binary via `BUILTIN_TOML` const | — |
78
+ | 4 | `cargo test` | 3 guards check count, names, inline test presence | Count not updated, name not in list, no `[[tests.*]]` |
79
+ | 5 | `rtk verify` | Runs each `[[tests.my-tool]]` entry | Filter logic doesn't match expected output |
80
+ | 6 | Runtime | Hook rewrites command, registry looks up filter, pipeline runs | No match → passthrough (not an error) |
81
+
82
+ ## Filter lookup priority at runtime
83
+
84
+ ```mermaid
85
+ flowchart LR
86
+ CMD["rtk my-tool args"] --> P1
87
+ P1{"1. .rtk/filters.toml\n(project-local)"}
88
+ P1 -->|"✅ match"| WIN["apply filter"]
89
+ P1 -->|"no match"| P2
90
+ P2{"2. ~/.config/rtk/filters.toml\n(user-global)\n(macOS alt: ~/Library/Application Support/rtk/filters.toml)"}
91
+ P2 -->|"✅ match"| WIN
92
+ P2 -->|"no match"| P3
93
+ P3{"3. BUILTIN_TOML\n(binary)"}
94
+ P3 -->|"✅ match"| WIN
95
+ P3 -->|"no match"| P4[["exec raw\n(passthrough)"]]
96
+ ```
97
+
98
+ First match wins. A project filter with the same name as a built-in shadows the built-in and triggers a warning:
99
+
100
+ ```
101
+ [rtk] warning: filter 'make' is shadowing a built-in filter
102
+ ```