@hasna/terminal 2.2.0 → 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 (205) hide show
  1. package/dist/cli.js +29 -12
  2. package/package.json +1 -1
  3. package/src/ai.ts +50 -36
  4. package/src/cli.tsx +29 -12
  5. package/src/context-hints.ts +89 -0
  6. package/src/discover.ts +238 -0
  7. package/src/economy.ts +53 -0
  8. package/src/output-store.ts +65 -0
  9. package/src/providers/index.ts +4 -4
  10. package/src/sessions-db.ts +81 -0
  11. package/temp/rtk/.claude/agents/code-reviewer.md +221 -0
  12. package/temp/rtk/.claude/agents/debugger.md +519 -0
  13. package/temp/rtk/.claude/agents/rtk-testing-specialist.md +461 -0
  14. package/temp/rtk/.claude/agents/rust-rtk.md +511 -0
  15. package/temp/rtk/.claude/agents/technical-writer.md +355 -0
  16. package/temp/rtk/.claude/commands/diagnose.md +352 -0
  17. package/temp/rtk/.claude/commands/test-routing.md +362 -0
  18. package/temp/rtk/.claude/hooks/bash/pre-commit-format.sh +16 -0
  19. package/temp/rtk/.claude/hooks/rtk-rewrite.sh +70 -0
  20. package/temp/rtk/.claude/hooks/rtk-suggest.sh +152 -0
  21. package/temp/rtk/.claude/rules/cli-testing.md +526 -0
  22. package/temp/rtk/.claude/skills/issue-triage/SKILL.md +348 -0
  23. package/temp/rtk/.claude/skills/issue-triage/templates/issue-comment.md +134 -0
  24. package/temp/rtk/.claude/skills/performance.md +435 -0
  25. package/temp/rtk/.claude/skills/pr-triage/SKILL.md +315 -0
  26. package/temp/rtk/.claude/skills/pr-triage/templates/review-comment.md +71 -0
  27. package/temp/rtk/.claude/skills/repo-recap.md +206 -0
  28. package/temp/rtk/.claude/skills/rtk-tdd/SKILL.md +78 -0
  29. package/temp/rtk/.claude/skills/rtk-tdd/references/testing-patterns.md +124 -0
  30. package/temp/rtk/.claude/skills/security-guardian.md +503 -0
  31. package/temp/rtk/.claude/skills/ship.md +404 -0
  32. package/temp/rtk/.github/workflows/benchmark.yml +34 -0
  33. package/temp/rtk/.github/workflows/dco-check.yaml +12 -0
  34. package/temp/rtk/.github/workflows/release-please.yml +51 -0
  35. package/temp/rtk/.github/workflows/release.yml +343 -0
  36. package/temp/rtk/.github/workflows/security-check.yml +135 -0
  37. package/temp/rtk/.github/workflows/validate-docs.yml +78 -0
  38. package/temp/rtk/.release-please-manifest.json +3 -0
  39. package/temp/rtk/ARCHITECTURE.md +1491 -0
  40. package/temp/rtk/CHANGELOG.md +640 -0
  41. package/temp/rtk/CLAUDE.md +605 -0
  42. package/temp/rtk/CONTRIBUTING.md +199 -0
  43. package/temp/rtk/Cargo.lock +1668 -0
  44. package/temp/rtk/Cargo.toml +64 -0
  45. package/temp/rtk/Formula/rtk.rb +43 -0
  46. package/temp/rtk/INSTALL.md +390 -0
  47. package/temp/rtk/LICENSE +21 -0
  48. package/temp/rtk/README.md +386 -0
  49. package/temp/rtk/README_es.md +159 -0
  50. package/temp/rtk/README_fr.md +197 -0
  51. package/temp/rtk/README_ja.md +159 -0
  52. package/temp/rtk/README_ko.md +159 -0
  53. package/temp/rtk/README_zh.md +167 -0
  54. package/temp/rtk/ROADMAP.md +15 -0
  55. package/temp/rtk/SECURITY.md +217 -0
  56. package/temp/rtk/TEST_EXEC_TIME.md +102 -0
  57. package/temp/rtk/build.rs +57 -0
  58. package/temp/rtk/docs/AUDIT_GUIDE.md +432 -0
  59. package/temp/rtk/docs/FEATURES.md +1410 -0
  60. package/temp/rtk/docs/TROUBLESHOOTING.md +309 -0
  61. package/temp/rtk/docs/filter-workflow.md +102 -0
  62. package/temp/rtk/docs/images/gain-dashboard.jpg +0 -0
  63. package/temp/rtk/docs/tracking.md +583 -0
  64. package/temp/rtk/hooks/opencode-rtk.ts +39 -0
  65. package/temp/rtk/hooks/rtk-awareness.md +29 -0
  66. package/temp/rtk/hooks/rtk-rewrite.sh +61 -0
  67. package/temp/rtk/hooks/test-rtk-rewrite.sh +442 -0
  68. package/temp/rtk/install.sh +124 -0
  69. package/temp/rtk/release-please-config.json +10 -0
  70. package/temp/rtk/scripts/benchmark.sh +592 -0
  71. package/temp/rtk/scripts/check-installation.sh +162 -0
  72. package/temp/rtk/scripts/install-local.sh +37 -0
  73. package/temp/rtk/scripts/rtk-economics.sh +137 -0
  74. package/temp/rtk/scripts/test-all.sh +561 -0
  75. package/temp/rtk/scripts/test-aristote.sh +227 -0
  76. package/temp/rtk/scripts/test-tracking.sh +79 -0
  77. package/temp/rtk/scripts/update-readme-metrics.sh +32 -0
  78. package/temp/rtk/scripts/validate-docs.sh +73 -0
  79. package/temp/rtk/src/aws_cmd.rs +880 -0
  80. package/temp/rtk/src/binlog.rs +1645 -0
  81. package/temp/rtk/src/cargo_cmd.rs +1727 -0
  82. package/temp/rtk/src/cc_economics.rs +1157 -0
  83. package/temp/rtk/src/ccusage.rs +340 -0
  84. package/temp/rtk/src/config.rs +187 -0
  85. package/temp/rtk/src/container.rs +855 -0
  86. package/temp/rtk/src/curl_cmd.rs +134 -0
  87. package/temp/rtk/src/deps.rs +268 -0
  88. package/temp/rtk/src/diff_cmd.rs +367 -0
  89. package/temp/rtk/src/discover/mod.rs +274 -0
  90. package/temp/rtk/src/discover/provider.rs +388 -0
  91. package/temp/rtk/src/discover/registry.rs +2022 -0
  92. package/temp/rtk/src/discover/report.rs +202 -0
  93. package/temp/rtk/src/discover/rules.rs +667 -0
  94. package/temp/rtk/src/display_helpers.rs +402 -0
  95. package/temp/rtk/src/dotnet_cmd.rs +1771 -0
  96. package/temp/rtk/src/dotnet_format_report.rs +133 -0
  97. package/temp/rtk/src/dotnet_trx.rs +593 -0
  98. package/temp/rtk/src/env_cmd.rs +204 -0
  99. package/temp/rtk/src/filter.rs +462 -0
  100. package/temp/rtk/src/filters/README.md +52 -0
  101. package/temp/rtk/src/filters/ansible-playbook.toml +34 -0
  102. package/temp/rtk/src/filters/basedpyright.toml +47 -0
  103. package/temp/rtk/src/filters/biome.toml +45 -0
  104. package/temp/rtk/src/filters/brew-install.toml +37 -0
  105. package/temp/rtk/src/filters/composer-install.toml +40 -0
  106. package/temp/rtk/src/filters/df.toml +16 -0
  107. package/temp/rtk/src/filters/dotnet-build.toml +64 -0
  108. package/temp/rtk/src/filters/du.toml +16 -0
  109. package/temp/rtk/src/filters/fail2ban-client.toml +15 -0
  110. package/temp/rtk/src/filters/gcc.toml +49 -0
  111. package/temp/rtk/src/filters/gcloud.toml +22 -0
  112. package/temp/rtk/src/filters/hadolint.toml +24 -0
  113. package/temp/rtk/src/filters/helm.toml +29 -0
  114. package/temp/rtk/src/filters/iptables.toml +27 -0
  115. package/temp/rtk/src/filters/jj.toml +28 -0
  116. package/temp/rtk/src/filters/jq.toml +24 -0
  117. package/temp/rtk/src/filters/make.toml +41 -0
  118. package/temp/rtk/src/filters/markdownlint.toml +24 -0
  119. package/temp/rtk/src/filters/mix-compile.toml +27 -0
  120. package/temp/rtk/src/filters/mix-format.toml +15 -0
  121. package/temp/rtk/src/filters/mvn-build.toml +44 -0
  122. package/temp/rtk/src/filters/oxlint.toml +43 -0
  123. package/temp/rtk/src/filters/ping.toml +63 -0
  124. package/temp/rtk/src/filters/pio-run.toml +40 -0
  125. package/temp/rtk/src/filters/poetry-install.toml +50 -0
  126. package/temp/rtk/src/filters/pre-commit.toml +35 -0
  127. package/temp/rtk/src/filters/ps.toml +16 -0
  128. package/temp/rtk/src/filters/quarto-render.toml +41 -0
  129. package/temp/rtk/src/filters/rsync.toml +48 -0
  130. package/temp/rtk/src/filters/shellcheck.toml +27 -0
  131. package/temp/rtk/src/filters/shopify-theme.toml +29 -0
  132. package/temp/rtk/src/filters/skopeo.toml +45 -0
  133. package/temp/rtk/src/filters/sops.toml +16 -0
  134. package/temp/rtk/src/filters/ssh.toml +44 -0
  135. package/temp/rtk/src/filters/stat.toml +34 -0
  136. package/temp/rtk/src/filters/swift-build.toml +41 -0
  137. package/temp/rtk/src/filters/systemctl-status.toml +33 -0
  138. package/temp/rtk/src/filters/terraform-plan.toml +35 -0
  139. package/temp/rtk/src/filters/tofu-fmt.toml +16 -0
  140. package/temp/rtk/src/filters/tofu-init.toml +38 -0
  141. package/temp/rtk/src/filters/tofu-plan.toml +35 -0
  142. package/temp/rtk/src/filters/tofu-validate.toml +17 -0
  143. package/temp/rtk/src/filters/trunk-build.toml +39 -0
  144. package/temp/rtk/src/filters/ty.toml +50 -0
  145. package/temp/rtk/src/filters/uv-sync.toml +37 -0
  146. package/temp/rtk/src/filters/xcodebuild.toml +99 -0
  147. package/temp/rtk/src/filters/yamllint.toml +25 -0
  148. package/temp/rtk/src/find_cmd.rs +598 -0
  149. package/temp/rtk/src/format_cmd.rs +386 -0
  150. package/temp/rtk/src/gain.rs +723 -0
  151. package/temp/rtk/src/gh_cmd.rs +1651 -0
  152. package/temp/rtk/src/git.rs +2012 -0
  153. package/temp/rtk/src/go_cmd.rs +592 -0
  154. package/temp/rtk/src/golangci_cmd.rs +254 -0
  155. package/temp/rtk/src/grep_cmd.rs +288 -0
  156. package/temp/rtk/src/gt_cmd.rs +810 -0
  157. package/temp/rtk/src/hook_audit_cmd.rs +283 -0
  158. package/temp/rtk/src/hook_check.rs +171 -0
  159. package/temp/rtk/src/init.rs +1859 -0
  160. package/temp/rtk/src/integrity.rs +537 -0
  161. package/temp/rtk/src/json_cmd.rs +231 -0
  162. package/temp/rtk/src/learn/detector.rs +628 -0
  163. package/temp/rtk/src/learn/mod.rs +119 -0
  164. package/temp/rtk/src/learn/report.rs +184 -0
  165. package/temp/rtk/src/lint_cmd.rs +694 -0
  166. package/temp/rtk/src/local_llm.rs +316 -0
  167. package/temp/rtk/src/log_cmd.rs +248 -0
  168. package/temp/rtk/src/ls.rs +324 -0
  169. package/temp/rtk/src/main.rs +2482 -0
  170. package/temp/rtk/src/mypy_cmd.rs +389 -0
  171. package/temp/rtk/src/next_cmd.rs +241 -0
  172. package/temp/rtk/src/npm_cmd.rs +236 -0
  173. package/temp/rtk/src/parser/README.md +267 -0
  174. package/temp/rtk/src/parser/error.rs +46 -0
  175. package/temp/rtk/src/parser/formatter.rs +336 -0
  176. package/temp/rtk/src/parser/mod.rs +311 -0
  177. package/temp/rtk/src/parser/types.rs +119 -0
  178. package/temp/rtk/src/pip_cmd.rs +302 -0
  179. package/temp/rtk/src/playwright_cmd.rs +479 -0
  180. package/temp/rtk/src/pnpm_cmd.rs +573 -0
  181. package/temp/rtk/src/prettier_cmd.rs +221 -0
  182. package/temp/rtk/src/prisma_cmd.rs +482 -0
  183. package/temp/rtk/src/psql_cmd.rs +382 -0
  184. package/temp/rtk/src/pytest_cmd.rs +384 -0
  185. package/temp/rtk/src/read.rs +217 -0
  186. package/temp/rtk/src/rewrite_cmd.rs +50 -0
  187. package/temp/rtk/src/ruff_cmd.rs +402 -0
  188. package/temp/rtk/src/runner.rs +271 -0
  189. package/temp/rtk/src/summary.rs +297 -0
  190. package/temp/rtk/src/tee.rs +405 -0
  191. package/temp/rtk/src/telemetry.rs +248 -0
  192. package/temp/rtk/src/toml_filter.rs +1655 -0
  193. package/temp/rtk/src/tracking.rs +1416 -0
  194. package/temp/rtk/src/tree.rs +209 -0
  195. package/temp/rtk/src/tsc_cmd.rs +259 -0
  196. package/temp/rtk/src/utils.rs +432 -0
  197. package/temp/rtk/src/verify_cmd.rs +47 -0
  198. package/temp/rtk/src/vitest_cmd.rs +385 -0
  199. package/temp/rtk/src/wc_cmd.rs +401 -0
  200. package/temp/rtk/src/wget_cmd.rs +260 -0
  201. package/temp/rtk/tests/fixtures/dotnet/build_failed.txt +11 -0
  202. package/temp/rtk/tests/fixtures/dotnet/format_changes.json +31 -0
  203. package/temp/rtk/tests/fixtures/dotnet/format_empty.json +1 -0
  204. package/temp/rtk/tests/fixtures/dotnet/format_success.json +12 -0
  205. package/temp/rtk/tests/fixtures/dotnet/test_failed.txt +18 -0
@@ -0,0 +1,199 @@
1
+ # Contributing to rtk
2
+
3
+ **Welcome!** We appreciate your interest in contributing to rtk.
4
+
5
+ ## Quick Links
6
+
7
+ - [Report an Issue](../../issues/new)
8
+ - [Open Pull Requests](../../pulls)
9
+ - [Start a Discussion](../../discussions)
10
+
11
+ ---
12
+
13
+ ## What is rtk?
14
+
15
+ **rtk (Rust Token Killer)** is a coding agent proxy that cuts noise from command outputs. It filters and compresses CLI output before it reaches your LLM context, saving 60-90% of tokens on common operations. The vision is to make AI-assisted development faster and cheaper by eliminating unnecessary token consumption.
16
+
17
+ ---
18
+
19
+ ## Ways to Contribute
20
+
21
+ | Type | Examples |
22
+ |------|----------|
23
+ | **Report** | File a clear issue with steps to reproduce, expected vs actual behavior |
24
+ | **Fix** | Bug fixes, broken filter repairs |
25
+ | **Build** | New filters, new command support, performance improvements |
26
+ | **Review** | Review open PRs, test changes locally, leave constructive feedback |
27
+ | **Document** | Improve docs, add usage examples, clarify existing docs |
28
+ ---
29
+
30
+ ## Branch Naming Convention
31
+
32
+ Every branch **must** follow one of these prefixes to identify the level of change:
33
+
34
+ | Prefix | Semver Impact | When to Use |
35
+ |--------|---------------|-------------|
36
+ | `fix(scope): ...` | Patch | Bug fixes, corrections, minor adjustments |
37
+ | `feat(scope): ...` | Minor | New features, new filters, new command support |
38
+ | `chore(scope): ...` | Major | Breaking changes, API changes, removed functionality |
39
+
40
+ The **scope** in parentheses indicates which part of the project is concerned (e.g. `git`, `kubectl`, `filter`, `tracking`, `config`).
41
+
42
+ **Branch title must clearly describe what is affected and the goal.**
43
+
44
+ Examples:
45
+ ```
46
+ fix(git): log-filter-drops-merge-commits
47
+ feat(kubectl): add-pod-list-filter
48
+ chore(proxy): remove-deprecated-flags
49
+ ```
50
+
51
+ ---
52
+
53
+ ## Pull Request Process
54
+
55
+ ### 1. Create Your Branch
56
+
57
+ ```bash
58
+ git checkout develop
59
+ git pull origin develop
60
+ git checkout -b "feat(scope): your-clear-description"
61
+ ```
62
+
63
+ ### 2. Make Your Changes
64
+
65
+ **Respect the existing folder structure.** Place new files where similar files already live. Do not reorganize without prior discussion.
66
+
67
+ **Keep functions short and focused.** Each function should do one thing. If it needs a comment to explain what it does, it's probably too long -- split it.
68
+
69
+ **No obvious comments.** Don't comment what the code already says. Comments should explain *why*, never *what* to avoid noise.
70
+
71
+ **Large command files are expected.** Command modules (`*_cmd.rs`) contain the implementation, tests, and fixture in the same file. A big file is fine when it's self-contained for one command.
72
+
73
+ ### 3. Add Tests
74
+
75
+ Every change **must** include tests. See [Testing](#testing) below.
76
+
77
+ ### 4. Add Documentation
78
+
79
+ Every change **must** include documentation updates. See [Documentation](#documentation) below.
80
+
81
+ ### Developer Certificate of Origin (DCO)
82
+
83
+ All contributions must be signed off (git commit -s) to certify
84
+ you have the right to submit the code under the project's license.
85
+
86
+ Expected format: Signed-off-by: Your Name your@email.com
87
+ https://developercertificate.org/
88
+
89
+ By signing off, you agree to the DCO.
90
+
91
+ ### 5. Merge into `develop`
92
+
93
+ Once your work is ready, open a Pull Request targeting the **`develop`** branch.
94
+
95
+ ### 6. Review Process
96
+
97
+ 1. **Maintainer review** -- A maintainer reviews your code for quality and alignment with the project
98
+ 2. **CI/CD checks** -- Automated tests and linting must pass
99
+ 3. **Resolution** -- Address any feedback from review or CI failures
100
+
101
+ ### 7. Integration & Release
102
+
103
+ Once merged, your changes are tested on the `develop` branch alongside other features. When the maintainer is satisfied with the state of `develop`, they release to `master` under a specific version.
104
+
105
+ ```
106
+ your branch --> develop (review + CI + integration testing) --> version branch --> master (versioned release)
107
+ ```
108
+
109
+ ---
110
+
111
+ ## Testing
112
+
113
+ Every change **must** include tests. We follow **TDD (Red-Green-Refactor)**: write a failing test first, implement the minimum to pass, then refactor.
114
+
115
+ ### Test Types
116
+
117
+ | Type | Where | Run With |
118
+ |------|-------|----------|
119
+ | **Unit tests** | `#[cfg(test)] mod tests` in each module | `cargo test` |
120
+ | **Snapshot tests** | `assert_snapshot!()` via `insta` crate | `cargo test` + `cargo insta review` |
121
+ | **Smoke tests** | `scripts/test-all.sh` (69 assertions) | `bash scripts/test-all.sh` |
122
+ | **Integration tests** | `#[ignore]` tests requiring installed binary | `cargo test --ignored` |
123
+
124
+ ### How to Write Tests
125
+
126
+ Tests for new commands live **in the module file itself** inside a `#[cfg(test)] mod tests` block (e.g. tests for `src/kubectl_cmd.rs` go at the bottom of that same file).
127
+
128
+ **1. Create a fixture from real command output** (not synthetic data):
129
+ ```bash
130
+ kubectl get pods > tests/fixtures/kubectl_pods_raw.txt
131
+ ```
132
+
133
+ **2. Write your test in the same module file** (`#[cfg(test)] mod tests`):
134
+ ```rust
135
+ #[test]
136
+ fn test_my_filter() {
137
+ let input = include_str!("../tests/fixtures/my_cmd_raw.txt");
138
+ let output = filter_my_cmd(input);
139
+ assert_snapshot!(output);
140
+ }
141
+ ```
142
+
143
+ **3. Verify token savings**:
144
+ ```rust
145
+ #[test]
146
+ fn test_my_filter_savings() {
147
+ let input = include_str!("../tests/fixtures/my_cmd_raw.txt");
148
+ let output = filter_my_cmd(input);
149
+ let savings = 100.0 - (count_tokens(&output) as f64 / count_tokens(input) as f64 * 100.0);
150
+ assert!(savings >= 60.0, "Expected >=60% savings, got {:.1}%", savings);
151
+ }
152
+ ```
153
+
154
+ ### Pre-Commit Gate (mandatory)
155
+
156
+ All three must pass before any PR:
157
+
158
+ ```bash
159
+ cargo fmt --all --check && cargo clippy --all-targets && cargo test
160
+ ```
161
+
162
+ ### PR Testing Checklist
163
+
164
+ - [ ] Unit tests added/updated for changed code
165
+ - [ ] Snapshot tests reviewed (`cargo insta review`)
166
+ - [ ] Token savings >=60% verified
167
+ - [ ] Edge cases covered
168
+ - [ ] `cargo fmt --all --check && cargo clippy --all-targets && cargo test` passes
169
+ - [ ] Manual test: run `rtk <cmd>` and inspect output
170
+
171
+ ---
172
+
173
+ ## Documentation
174
+
175
+ Every change **must** include documentation updates. Update the relevant file(s) depending on what you changed:
176
+
177
+ | What you changed | Update |
178
+ |------------------|--------|
179
+ | New command or filter | [README.md](README.md) (command list + examples) and [CHANGELOG.md](CHANGELOG.md) |
180
+ | Architecture or internal design | [ARCHITECTURE.md](ARCHITECTURE.md) |
181
+ | Installation or setup | [INSTALL.md](INSTALL.md) |
182
+ | Bug fix or breaking change | [CHANGELOG.md](CHANGELOG.md) |
183
+ | Tracking / analytics | [docs/tracking.md](docs/tracking.md) |
184
+
185
+ Keep documentation concise and practical -- examples over explanations.
186
+
187
+ ---
188
+
189
+ ## Questions?
190
+
191
+ - **Bug reports & features**: [Issues](../../issues)
192
+ - **Discussions**: [GitHub Discussions](../../discussions)
193
+
194
+ **For external contributors**: Your PR will undergo automated security review (see [SECURITY.md](SECURITY.md)).
195
+ This protects RTK's shell execution capabilities against injection attacks and supply chain vulnerabilities.
196
+
197
+ ---
198
+
199
+ **Thank you for contributing to rtk!**